Most abandoned projects were not abandoned because the code got too hard. They were abandoned because nobody ever decided what "done" meant, so every session added surface area and none of them finished anything.

Write the one sentence

"A tool that lets <who> <do one thing>." No "and". No "also". If your sentence needs a comma, you have two projects.

This is harder than it sounds and worth the ten minutes. Everything downstream — the stack, the screens, the prompts — gets easier once this sentence exists, because you can hold every decision up against it and ask whether it serves that sentence or something else.

Find the payoff moment

Somewhere in your tool there is a single moment where a stranger goes "oh, I see". The list appears. The file converts. The message sends. Name it.

Now the whole of version one is: the shortest possible path from arriving to that moment. Everything else — accounts, settings, history, sharing, themes — is version two, and version two is allowed to never happen.

Turn it into a spec

idea-to-spec.txt
My one sentence: <sentence>
The payoff moment: <moment>

Write me a one-page spec. Include:
- The screens or steps between arriving and the payoff, in order.
- For each, what's on it and what the user does next.
- What data I need to store, if any. If the answer is "none", say so
  loudly — I'd rather not add a database I don't need.
- A "not in version one" list of at least five things.

Then tell me the riskiest assumption in this plan.

Cut it once more

Read the spec back and cross out the most expensive item. Genuinely — the one that would take longest. Nine times out of ten the tool still works without it, and you have just bought back a week.

Accounts and login are the usual candidate. A tool that works instantly with no sign-up gets tried. A tool with a registration form in front of it mostly does not.

Then stop planning

A spec is a tool for making the first hour productive, not a document to perfect. When you can name the first file you need to create, planning is over. Go and build the first version.