Scoping: the app you can actually ship
Version one is embarrassingly small on purpose: the walking skeleton, the cut list, and the scoping instincts that separate shippers from starters.
Apps die of ambition far more often than difficulty. The graveyard is full of 90%-done projects whose builders added accounts, teams, notifications, and dark mode before the core loop worked. This course's scope discipline — the same one the iOS course drills — is your inheritance from everyone who didn't ship:
- Find the core loop — the one repeated action that IS the app. Replyable's: a message comes in → you read it → you send a good reply, fast. Everything that serves the loop is candidate scope; everything else is not. If your app has no single loop, it's two apps; pick one.
- Build the walking skeleton first — the thinnest end-to-end version where every piece exists but nothing is fancy: messages appear in a list (typed in by hand at first!), clicking shows detail, replies get saved. Skeleton-first beats feature-first because integration problems — the ones that actually block beginners — surface in week two instead of week seven.
- Keep a cut list with pride. Everything tempting goes on it: user accounts (v2 — you're the only user of v1), email integration (v2 — paste messages in for now), tags, search, teams, mobile app. The cut list isn't failure; it's your roadmap, pre-sorted. Shipping v1 earns you the right to reconsider it.
Your variant (make it yours without changing the skeleton)
Everyone builds Replyable's shape — inbox of things, detail view, AI-assisted response — but you're encouraged to reskin the domain to something you care about: customer feedback (the default), Airbnb-host guest messages, a freelancer's inquiry inbox, a community-manager's mod queue. Same tables, same screens, same AI feature, different words. Caring about the domain is worth a month of motivation, and the constraint (same skeleton) is what keeps caring from becoming scope creep. Declare your variant in this module's lab and hold it.
'It's basically the same feature' (it never is — accounts touch every table and every screen). 'It'll be harder to add later' (occasionally true, usually false, and later-you will have skills current-you lacks). 'Nobody will use it without X' (nobody's using it now — shipping is how you find out what X actually is). The counter-move is always the same: write it on the cut list, out loud, and return to the loop.