Identify the Minimal Domain Object
Start with three essential fields—such as title, source, and status. Clear domain objects prevent feature creep.
Key points
- Who uses it?
- What core record is stored?
- What is the primary action?
Exercise Define your personal tool’s core entity using only the three fields needed on day one.
Derive Screens From User Flow
Design screens around user tasks rather than UI kit demos. Map before-input, after-submit, and error-recovery states first.
Key points
- Before input
- After success
- Error & preserves input
Exercise Diagram create, list, and toggle states with labeled user triggers between them.
Assign Clear Ownership to State
Keep UI state, validation rules, and durable storage cleanly separated—and always be transparent about local-only vs account-synced data.
Key points
- UI state vs persisted state
- Clear storage boundary
- Confirm writes from real responses
Exercise Mark where each piece of state lives and which values must survive a browser refresh.
Verify With One Unassisted Walkthrough
Run a full cycle—create, view, update, refresh—and test empty states and long strings before adding extra bells and whistles.
Key points
- Happy path works end to end
- Persistence matches promise
- Graceful recovery on error
Exercise Have someone test your tool without verbal hints and note every moment of hesitation.