Two weeks ago I wrote here that I killed my SaaS subscription 7 days after launch and rebuilt it as a buy-once product. I ended that post with a promise written down before I could talk myself out of it: 3 real purchases in 14 days of relaunch, or I move on and leave UIPrompt in maintenance mode. Either way I would post the numbers.
The 14 days are up. Here are the numbers.
Purchases: 0.
New organic signups during the window: 0. The last real signup was a free account three days before the relaunch even went live. They looked once and never came back.
So by my own written bar, this is a move-on. UIPrompt goes to maintenance mode today. I want to be useful about why, because "it didn't sell" is a result, not a lesson.
What I did in those 14 days
Quite a lot. That turns out to be part of the problem.
I shipped a real product. The buy-once model was clean: a free playground with no signup, one $39 price, and an AI Design System Pack export that survives a blind test (a fresh AI session got only the exported files and matched 34 of 34 specced properties, inventing zero colors). I bought a custom domain. I launched on Product Hunt with a video, posted a Show HN, cross-posted the pivot article, made a 20-second promo video in Remotion with licensed music, put it on YouTube and X, and submitted to Peerlist, Dev Hunt, Indie Hackers, SaaSHub, and a stack of directories.
None of it produced a single sale. Not one.
The lesson I did not want
On the first launch I blamed pricing. I killed the subscription, and I was right that a burst-usage tool should not bill monthly. But here is the uncomfortable part: fixing the pricing changed nothing, because pricing was never the binding constraint. Demand was.
Two different pricing models, same zero, should have told me the problem lived upstream of the checkout page the whole time. I was tuning the part of the funnel I could see and control (the offer) while the actual leak was at the top: not enough of the right people, with pain acute enough to pull out a card, ever arrived.
The tell, in hindsight, is that I cannot even give you a clean "traffic versus conversion" breakdown, because I never instrumented the funnel well enough for a zero to be diagnostic. When the result is 0, the only question that teaches you anything is "0 out of how many visitors, dropping off where?" I built the beautiful product before I built the ability to answer that.
Three things I am taking with me
A pre-committed number is the best gift you can give your future self. Writing "3 sales in 14 days or I stop" before I was emotionally invested is the only reason I can close this cleanly instead of sinking another month into it. The bet failed. The bet also worked exactly as designed: it made the decision for me, on time, without drama.
Polish is not traction. The promo video is genuinely nice. The blind test is genuinely impressive. Neither moved the number, because when the top of the funnel is empty, every hour spent on the asset instead of the audience is motion dressed up as progress. I made a lot of motion.
Instrument the null result. Ship the analytics that let a zero tell you where it died, before you ship the thing you are measuring. A zero with a funnel is a lesson. A zero without one is just a bruise.
What happens to UIPrompt
It stays live. The playground is free forever, the domain is paid up, and it costs me almost nothing to leave running. If you build UI with Claude Code, Cursor, or v0, go use it. It genuinely works: https://uiprompt.co
I am not announcing the next thing today, because I do not have it yet and I would rather not fake conviction I have not earned. I said I would post the numbers, win or lose. They lost. Onward.
Top comments (1)
The line that hits hardest is "two different pricing models, same zero, should have told me the problem lived upstream of the checkout page the whole time." That's such a clean diagnostic in hindsight, if changing the variable you can control produces the identical result twice, the bottleneck was never that variable. Most postmortems don't get to that clarity because people keep tuning the thing they can see instead of questioning whether they're even looking at the right layer of the funnel.
"A zero without a funnel is just a bruise" is the one I'll actually remember. It reframes failed launches in a way I hadn't considered, the value of a null result depends entirely on whether you built the instrumentation before you needed it, and shipping the analytics after the fact means you can't even properly grieve the failure into a lesson.
Respect for actually setting the number down in writing before the emotional investment kicked in, and then honoring it instead of finding a reason to extend the deadline once the sunk cost started to hurt. That's the harder discipline than the technical build, honestly.