A year ago this codebase was one commit and a strong opinion about how Shopify discounts should work.
Discount Prime is one year old this week, counting from the first commit in April 2023, not from the public launch. Those are two different anniversaries, and the gap between them is most of the story. Roughly six months went into building before anyone could install the app, and roughly six months have passed since it went live on the Shopify App Store. This is a short, honest look at both halves.
The first six months: building toward one bet
The whole app rests on a single early decision: build on Shopify Functions, not Shopify Scripts.
Scripts was the established way to write custom discount logic, but it was limited to Shopify Plus and it was clearly on borrowed time. Functions was newer, thinner on documentation, and worked on every plan. We bet that a discount app most merchants could actually install was worth more than one that only Plus stores could run. Six months of building went into making volume discounts and quantity breaks apply natively in cart and checkout through that engine, without duplicate variants and without a Plus requirement.
That first version did two things and did them properly. It was tempting to launch with more. Shipping less turned out to be the right call, because it meant the surface we had to support at launch was small.
The launch: six weeks before BFCM
We went live on the App Store about six weeks before our first BFCM, which was either brave or careless depending on the week you asked. We wrote the honest version of that decision in we launched a discount app six weeks before BFCM, and the short summary is that it worked, but we would not casually recommend the timing. Peak traffic is a bad time to discover your edges.
The launch itself is documented in Discount Prime is live on the Shopify App Store. The more interesting part is what happened after.
The live six months: the roadmap wrote itself
We did not launch with a fixed feature roadmap, and that turned out to be a feature, not a bug. Every release since came from the same source: merchants describing the same workaround enough times that it stopped being a request and started being obvious.
- Free shipping discounts with a progress bar shipped in December, because merchants running volume deals kept asking how to pair them with a shipping threshold.
- Buy X Get Y shipped in February, because BOGO requests were the most common thing in our inbox that the app could not yet do.
- Tiered pricing shipped in March, because merchants who had outgrown a single quantity break wanted a real price ladder, and wholesale sellers wanted depth.
None of these was on a whiteboard a year ago. They came from support conversations, which we now treat as the most reliable product signal we have.
What a year taught us
Three things stand out.
Narrow scope is a moat, not a limitation. The app does discounts and pricing. It does not try to be an email tool or an analytics suite or a page builder. Every time we were tempted to widen, staying narrow kept the app understandable, and understandable is what gets kept after install.
Support is the roadmap. The features that landed best were the ones we did not think of first. Merchants did. Our job was mostly to notice the pattern and resist the urge to build the clever version of a problem nobody actually had.
The platform bet compounds. Building on Functions meant the year's platform shifts toward checkout extensibility mostly happened to other apps, not to us. A good foundational decision keeps paying quietly, long after you have stopped congratulating yourself for it.
What year two looks like
The theme for the coming year is measurement and margin. Merchants can now run sophisticated campaigns, but knowing which ones actually made money is a different problem, and it is the one we want to solve next. If year one was about giving stores more ways to discount, year two is about making sure each discount can prove it earned its place.
To everyone who installed the app, filed a bug, or told us plainly that something was confusing: thank you. A year in, the app is shaped more by your messages than by our original plan, and that is exactly how it should be.




