The BOGO deals app was functionally done on day 11. On day 14, I was still staring at a blank Notes file trying to write a single sentence that explained what it actually was.
I've shipped enough of these things now that I have a rough internal checklist. Get the core loop working. Fix the crashes. Push to TestFlight. Write the store listing. Submit.
That last step always feels like a formality. It isn't.
Day 11 vs. Day 14
The app worked. Not perfectly, but it worked. You could open it, see nearby convenience store deals, tap through, and get the information you were looking for. That's the thing. I knew what it did. I'd built the thing. Every function, every edge case, every annoying API retry — all of it lived in my head in high resolution.
And I still couldn't write one sentence about it.
My first attempt was something like: "Find the best convenience store BOGO deals near you." Fine. Technically accurate. Also completely forgettable and identical to what you'd get if you asked a language model to describe the app without any context, which — I'll be honest — is exactly how I wrote it.
I deleted it. Wrote another. Deleted that too. Six drafts over three hours across two evenings. I kept a running document. By the end it had 847 words of drafts that never made it into the actual listing.
If you can't write one honest sentence about your app, you haven't figured out who it's for.
The Copy Problem Is a Positioning Problem
Here's where it clicked for me. Around draft four, I noticed I kept hedging. "For people who shop at convenience stores" — okay, that's most of the country. "For budget-conscious shoppers" — now I'm describing a personality trait, not a person with a specific problem. "For deal hunters who hate missing out" — now I'm writing a personality quiz.
Every draft tried to be for everyone. Which meant it was for no one. The app was fine but I had never actually decided who specifically needed it and why right now. I'd built the thing on vibes and personal itch-scratching, which is a totally valid reason to build something, but it's a terrible foundation for a one-liner.
The positioning work I skipped at the start came back to collect its debt. With interest. In the form of three hours of my life and a pretty embarrassing amount of staring at my own ceiling.
I Tried to Outsource the Problem
In my defense, I tried the obvious shortcut. I fed my draft descriptions into Claude Sonnet — running the API at roughly $18/month for this project across all the little tasks I use it for — and asked it to punch them up. Give me five alternatives. Make them snappier.
It gave me five alternatives. They were all snappier. They were also all slightly wrong in a way I couldn't immediately articulate. Too confident. Too broad. One of them used the word "effortlessly" which, no. Another one implied the app had some kind of social or community angle it absolutely does not have.
The model can't fix a positioning problem because positioning isn't a writing problem. It's a thinking problem. The output was only as good as the confused brief I gave it. Garbage in, polished garbage out. Smoother garbage, but garbage.
An AI can make bad copy sound better. It can't make an unclear product clear.
The Question That Finally Cracked It
I ended up texting a friend who has used these kinds of apps before — not a developer, just a person who occasionally buys snacks. I described what I'd built. She said, almost immediately: "Oh, so it's like a heads-up before you walk into the store so you don't miss a deal you would've wanted."
That was it. That was the sentence I'd been trying to write for three hours.
The framing she used — before you walk in — was something I'd never thought to include. I was describing what the app does. She described when and why it matters. The difference between those two things is the entire gap between a description and a positioning statement.
I rewrote the listing in about twenty minutes after that conversation. Didn't use her exact words, but the frame was hers. The app finally sounded like something a real person might search for, rather than a feature list dressed up as a product.
What This Cost Me Beyond Three Hours
Delayed submission by three days. In the context of a mini-app that was never going to be a business, three days doesn't matter much. But I've done enough of these now to know that the same problem — undefined positioning — tends to show up downstream in every other decision too.
When I didn't know who the app was for, I also didn't know which screenshots to take. Didn't know what to put in the preview video. Spent time A/B testing two different icon colors (about four hours total, split across two nights) when the icon was not the problem and was never going to be the problem.
The conversion rate from store page view to install in the first two weeks was 1.8%. I have no strong baseline to compare that to, but I've seen numbers across these mini-apps ranging from about 1.2% on the low end to a little over 3% when the listing actually matches what people were searching for. 1.8% feels like a product that's findable but not obviously relevant once people land on it.
Which tracks, honestly.
The store listing isn't marketing. It's the last chance to confirm the product decision you should've made before you wrote the first line of code.
The Reframe I'm Taking Forward
I'm not going to start every app with a full positioning exercise. That's not who I am, and these are mini-apps, not venture-backed products that need a go-to-market strategy document.
But I think I'm going to try writing the one-sentence description before I build. Not to lock it in or treat it as a contract. Just to see if I can do it. If I can't write a clear sentence about what the thing is and who specifically would want it — not "everyone who buys snacks," but a real human in a real moment — that's probably a signal worth sitting with before I open a new Xcode project.
The code part is the part I know how to do. Turns out the one sentence is the real spec.
TL;DR: I finished the app in 11 days but spent 3 hours failing to write one honest store description — and that failure was just the positioning problem I'd skipped at the start finally showing up to collect what I owed it.
Next episode: I finally look at the retention numbers — what percentage of day-1 installs came back on day 7, and what the data suggests about whether "useful once" apps can ever become habits.
Get the $31 Stack Prompt Pack — $19
The exact prompts, cost calculator, and n8n templates from this stack.
Top comments (0)