I’m building QuickCart — Shopify made for African merchants.
One seller got early access.
Less than a month later, they did ₦6.1M in sales through the platform.
That’s the only proof that matters right now.
I’m sharing the full journey here:
the wins, the ugly parts, the decisions, and everything in between.
Early access waitlist is live.
Follow along if you want to see how this unfolds.
@cdmather Thanks, Chris. How does Elements handle a migration failing halfway through when transactions are disabled? Does the next build retry it, or stop for manual recovery?
I'm honestly shocked by how useful @boardyai is.
I explained who I'm trying to reach with QuickCart. It found relevant people, explained why they fit, and requested introductions.
Still waiting to see where those lead, but this is already one of the coolest tools I've tried.
@antdke Thanks, Anthony! Still early, but merchant calls have been useful. A recurring ask is help getting customers, so I'm working out where QuickCart can help beyond giving them a storefront.
@themccodes One easy trap remains: timestamptz keeps the instant, but doesn't retain 'Asia/Kolkata' for you. I'd keep that zone in a separate field, especially if '9am every Monday' has to stay at 9am across daylight-saving changes elsewhere.
@noelkimx For #9, I'd also compare the confirmed amount and currency with the order saved on your server. A real payment for a cheaper order shouldn't be enough to mark a different order as paid.
@Spekta_maxwell How are you handling refunded orders after the points have already been redeemed? I'd keep the original award and a reversal linked to the Paystack reference so retries can't award points twice.
@valsopi For merchant software, would you count repeat orders through a store as early pull, or wait for merchants to refer other merchants? I'm finding those are two different tests of demand.
@jakewilsonecom Calls with prospective QuickCart merchants pulled me away from storefront polish. They kept asking how we'd bring customers to the store; a cleaner theme wouldn't answer that.
Thanks, Carlos. I didn’t separate those clearly enough in the calls. I’ll use the last five orders in the next round to trace where buyers came from and what got them to buy.Thanks, Carlos. That’s insightful. Walking through their last five orders gives me a much clearer way to approach the next calls. I’ll use that.
I spoke with people who could become QuickCart merchants and came away with a clear lesson:
They don’t just need another tool to manage their store. They need help bringing customers to it.
That changes what we should focus on. A great storefront matters, but it only solves part of the problem.
We’re building QuickCart with that in mind. The product has to help merchants sell, not just give them more software to manage.
@preshing@Love2Code I’d put a payment webhook handler in the foundation bucket even if it’s high-level application code. A retry path that records the same payment twice can survive a clean-looking implementation and a happy-path test.
@Love2Code I’d review how the generated tests calculate their expected values. If they call the same helper as the implementation, both can agree on the same wrong result and leave the next refactor with a misleading safety net.
@aaronjmars@brian_armstrong Does ingestion fail closed if the redactor throws? I’d test that path too, because a fallback logger that prints the rejected payload could put the credentials straight back into logs.
@fxn QuickCart once tried to hard-delete products referenced by order_items. Postgres refused it; I’d want an agent’s tests to exercise that relationship before trusting a green suite.