Last week I launched UIPrompt, a visual component editor that writes exact prompts for AI coding tools. Product Hunt went fine. People said nice things. Signups: a handful. Paid conversions at $12/mo: zero.
I spent a few days blaming traffic. Traffic was part of it. But when I sat down and pretended to be my own customer, the pricing model fell apart on its own.
The usage curve is wrong for a subscription. You use UIPrompt hard for the two weeks you are building out a design system, then you ship, and you do not touch it until the next project. Paying monthly for a tool you use in bursts feels bad even at $12. Nobody churns politely; they just never subscribe.
What buyers actually wanted was an asset. The most-used feature request from launch feedback was "can I export the whole system". That is not a service. That is a file you own. Tailwind UI figured this out years ago: pay once, own the output forever.
So I rebuilt the model in three days:
- One price: $39 launch (goes to $59). No renewals, ever.
- Free tier got MORE generous: full playground without signup, free accounts keep 3 saved components.
- The paid unlock is the thing that behaves like property: unlimited components plus an AI Design System Pack export. One zip: SKILL.md for Claude Code, .cursorrules for Cursor, AGENTS.md for everything else, tokens.css, and per-component specs with exact values and state diffs.
The pack is the part I am proudest of. I blind-tested it: a fresh AI session that had never seen my design got only the exported files and built a settings page. 34 of 34 specced properties matched. It invented zero colors. It derived the entire dark mode from two token values. That is what "your design system speaks AI" means in practice.
Some honest notes for anyone considering the same pivot:
- Killing a subscription you already wired up (Paddle, webhooks, trial emails, dunning) feels like burning work. It is actually deleting risk. My codebase lost 108 lines of trial machinery and gained one webhook case.
- Buy-once forces the free/paid line to be sharp. "Trial expires" is a deadline; "you hit 3 components and want the pack" is a decision. I prefer selling to people making decisions.
- The refund promise got simpler too: 14 days, no questions. There is no proration math when there is nothing recurring.
Maybe this fails too. My success bar is written down: 3 real purchases in 14 days of relaunch, or I move on to the next bet and leave UIPrompt in maintenance mode. Either way I will post the numbers.
Try the playground (no signup): https://uiprompt.co
Top comments (5)
This is a solid example of pricing following user behavior, not the other way around. I've seen one-time purchases convert much better than subscriptions when usage naturally comes in bursts.
The "asset you own" framing gets even sharper when the tool runs fully local. I priced my dictation app one-time at 9 CAD instead of following the category, which is all monthly subscriptions (the closest competitor is 15 a month). A subscription on something that runs entirely on your own machine, no server, no cloud call, quietly feels like paying rent for a key you already hold, so buy-once matches the trust story: you own the binary and your data never leaves. Same instinct as yours, different reason. For you it's burst usage, for me it's that recurring billing contradicts the local promise.
The honest counter I keep circling, and where I'd like your read: one-time kills recurring revenue, so how do you fund support and updates over a few years at 39 a head? I'm at 0 sales so far, so I can't claim the model converts better yet, only that a subscription would have been a non-starter for a local tool. What's your maintenance-funding plan once the launch bump fades?
3 real purchases in 14 days is a cleaner test than it looks.
The pricing pivot does not just change how the money is collected. It makes the buying moment easier to see.
If people want the exported pack, they should understand the reason pretty quickly: I am building a system now, and I want the files I can reuse.
If the 14-day test misses, I would separate two questions:
did people not value the pack, or did they not hit the moment where owning it felt urgent?
Those lead to different next moves. The new model should make that easier to read.
"I prefer selling to people making decisions" is the best line in this. Trial expiry pressures people, a limit they hit while actually using the thing informs them. Different sale entirely.
The 108 lines of trial machinery deleted is the underrated win. I went one step further on my own stuff since it's buy-once anyway: no billing code at all, just a stripe payment link and a scheduled github action doing delivery, the whole "backend" is a cron job. Engine's MIT if the shape is ever useful: github.com/Honorboxx/honorbox
Written-down kill criteria before the relaunch instead of after is the discipline most of us fake. Post the numbers either way, those posts are worth more than the wins.
killing the subscription 7 days after launch and showing the math instead of hiding it. that takes more nerve than launching did. i'm not there yet but i think i'd freeze on that call