Keeping an assisted build small enough to finish

Building is fast now, which makes scope the expensive part. Most of these never reach an address.

When building is cheap, scope is the whole cost. The projects that reach an address are the ones that cut early.

A single-sentence scope beside a feature list that grew past publishable.
A single-sentence scope beside a feature list that grew past publishable.

Publish first, then add

The strongest habit available: get the smallest working version to a real address before adding anything.

A published tool that does one thing is used. An unpublished tool that does six is a folder.

Publishing early also surfaces every publishing problem while the project is small, rather than at the end when it is tangled into everything else.

What one page can do

More than people assume, and the boundary is memory rather than complexity.

Calculators, converters, quizzes, checklists, dashboards over data written into the page, interactive charts, timers, generators, small games, teaching tools. All of it runs in a browser with nothing behind it.

Wants Needs
Calculate, convert, display Nothing
Remember for this person, this device Browser storage
Remember across devices A server
Two people see the same state A server
A key that must stay private A server
Accounts A server, and more besides

The line that actually matters

Shared state.

If one visitor's action has to be visible to another visitor, you need a server. Everything else has a cheaper answer.

If it only has to persist for the same person on the same device, browser storage handles it in about a line, and it covers a surprising share of what people ask a server for: saved preferences, a draft in progress, a list they are building, where they got to.

Where scope grows

Always the same three: accounts, saving, and permissions.

Each is easy to request and each changes the shape of the project. Accounts bring password resets, verification, sessions and the obligation to hold personal data properly.

For version one, ask whether the thing is useful without them. Usually it is. A calculator that does not know who you are is still a calculator, and the version that knows who you are is a different project with a launch date.

A decision path from calculate only, through browser storage, to shared state needing a server.
A decision path from calculate only, through browser storage, to shared state needing a server.

Assisted editors will say yes

Ask for accounts and you get accounts. The editor does not push back on scope, and it does not tell you that this version cannot be published by uploading a folder.

That is the one judgement you have to supply yourself, and it is the difference between a published tool and a local folder.

For the surrounding ground, see Publishing something built with coding assistance and Publishing what you built in a browser IDE.

file:// on your own disk ✗ Only you can open it ✗ Path breaks when moved ✗ No preview card when shared ✗ Some browser features stay switched off https:// on a hosted page ✓ Anyone with the link opens it ✓ Address is stable ✓ Preview card in chat apps ✓ Full browser features
A page on your own machine against the same page served to others.

Put it at an address

Write the purpose in one sentence, cut anything needing memory from version one, publish before adding anything, use browser storage before reaching for a server, and add a server only when two people must see the same thing.

Questions people ask

Why do these projects stall?

Scope. Accounts, storage and permissions get added because they are easy to ask for, and each one moves the project further from publishable.

What can a single page do?

Calculators, converters, quizzes, checklists, dashboards over fixed data, interactive explanations. Anything that does not have to remember.

When do I actually need a server?

Storage between visits, accounts, anything shared between two people, and anything involving a key that cannot be public.

What is the cheapest way to add memory?

Browser storage, if it only has to persist for that person on that device. It is one line and covers more cases than people expect.

How do I keep it finishable?

Publish the smallest version first, at a real address, and add to it from there.

Keep reading