Here is how a first project usually dies: it works, you keep improving it, and one day you stop opening it.
Nothing broke. There was simply never a moment where it was done, because nobody had said what done meant.
You wrote that definition in level 1. Now you use it.
Done is the list, not the feeling
Go back to your finish line:
Done means:
- I paste a URL, click Save, and it appears in the list
- Refreshing the page does not lose the list
- I can delete an item
- It does not look broken on my phone
Four lines. Check them one at a time, by actually doing them. Not “I think that works” — do it and watch.
Everything you notice along the way that is not on this list goes on the Later list. Not into this build. That is the entire discipline, and it is harder than it sounds because the things you notice will be genuinely good ideas.
Quick check
While checking your finish line you spot a small design flaw that is not on the list. What do you do?
Test from a clean state
This is where most “done” projects fail, and the reason is always the same: your machine knows things a fresh one does not.
You have data in your browser from testing. You have a file sitting in the right folder because you put it there an hour ago. You know that you have to click one thing before another.
So test clean:
- A new browser profile or a private window. No saved data, no cache.
- A fresh copy of the project folder, if there is anything to set up.
- Empty state. What does the page look like with zero saved links? A blank white rectangle is a real bug, and it is the first thing every new user sees.
- A different device. Your phone, at minimum.
Important
Empty state and error state are the two screens nobody tests and every user meets. Zero items, and something going wrong. Look at both deliberately.
Quick check
Which screen is most likely to be broken in a small project?
Watch one other person use it
Fifteen minutes, one person, no help from you.
You will want to explain. Do not. The moment they hesitate is information, and your explanation destroys it.
You will learn things like:
- They did not know what the box was for.
- They clicked the wrong thing first.
- They pasted something that was not a URL and the thing broke.
- They expected pressing Enter to save, and it did not.
Every one of those is a real finding that no amount of self-testing produces, because you cannot forget how your own thing works.
Tip
Ask them to say out loud what they are trying to do as they do it. It feels awkward for about thirty seconds and then it is the most useful feedback channel you have.
Try it yourself
The thing works. Decide whether that means done.
The done checklist
- Every line of my finish line passes, checked by doing it
- Works from a clean state: new browser, no saved data
- Empty state looks intentional
- Bad input does not break it
- Works on my phone
- One other person used it without me explaining anything
- The review checklist from level 3 passed
If all seven pass, it is done. Not perfect — done. Those are different words and only one of them is achievable.
Quick check
What is the difference between done and perfect?
Version one is allowed to be small
Readlist saves links and shows them. It has no tags, no search, no sync, no accounts.
That is a complete version one. Small and finished beats large and abandoned, every single time — and only one of those two teaches you what happens after you ship, which is the next lesson.
The Later list does not go away. It becomes version two, if there is one. Plenty of good version ones never get a version two, and that is not a failure.