Polish and ship (the 20% that makes 80% of the difference)
The build was 50%. Polish is the other 50%.
The polish checklist
Before you ship: 1) Test the full user flow on mobile (most users come from phones). 2) Add a clear page title and description. 3) Make sure the favicon and OG image are set so the link looks legitimate when shared. 4) Test what happens when a user submits invalid data — error messages should be human. 5) Test in a private/incognito window — if it breaks for you fresh, it'll break for users.
Edge cases the AI won't catch
AI tools default to happy-path. You need to test: empty submissions, very long text submissions, special characters in names, slow internet, broken images. Ask the AI explicitly: 'add error handling for [specific case]'. Each unhandled edge case is a future support ticket.
The 'ship-it' threshold
Don't aim for perfect. Aim for 'I would not be embarrassed to give this URL to a friend'. Most vibe-coded apps die in the polish phase because the builder keeps polishing instead of getting it in front of users. Set a 90-minute polish timer. When it goes off, ship.
1. Why test in a private/incognito window before shipping?
Polish and ship the app from lesson 4
Run the 5-item polish checklist on your app. Test on your phone. Test in incognito. Set a 90-minute timer. When it goes off, you ship — even if not perfect. Send the URL to one friend or post it publicly.
You have a public URL. You sent it to at least one real person. The full flow works on mobile in incognito.
Set a 90-minute polish timer — when it goes off, ship even if not perfect.
Get the next course before anyone else
Subscribers get new courses a week early and a monthly rate-change report on the catalog.