Back to course overview
Module 7Polish & readiness 16 min
Lab: The polish pass
Run the full readiness sweep: design critique rounds, the accessibility pass, empty and error states everywhere, the privacy note, and the pre-deploy regression.
The last lab before deployment — everything in it is the difference between 'a project' and 'a product someone else could use without you standing next to it.'
- 1Design critique, two rounds per screen: screenshot → assistant critique → implement #1 → re-screenshot. Keep the before/afters. Typical first-round catches: inbox spacing inconsistency, thread hierarchy (the reply box should dominate; it usually doesn't yet), settings looking like an afterthought (because it was — now it can't look it).
- 2The accessibility pass: full tab-through of all three screens (fix unreachables and invisible focus), labels on every input and icon button, contrast check on your grays and your StatusBadge colors (amber-on-white fails more often than you'd think), semantic audit of the main components. Verify with the tab key and a screen-reader spot check (VoiceOver on a Mac: Cmd-F5; Narrator on Windows: Win-Ctrl-Enter — listen to your inbox announce itself).
- 3States, everywhere, on purpose: every screen gets a designed empty state (new user with zero messages — what do they see and what does it tell them to do?), every async action its loading state (you built most in Module 5 — audit for stragglers), every failure its human-language error. The empty-inbox state is your app's first impression for every new user; spend real minutes on it.
- 4The readiness set: privacy note written and footer-linked; access decision implemented (private URL / shared passcode / consciously-deferred auth documented in the README); SAFETY.md's four paragraphs; a README that lets a stranger run the project (three commands and an env example — test it by following your own instructions in a fresh folder; this is also exactly what a portfolio reviewer will do).
- 5Full regression, then the freeze: TESTING.md script + door tests, green, committed:
v1 ready to ship. Feature freeze until deployed — every 'one more thing' from here is the ambition that kills the ship date, and your cut list is where it lives now. Module 8 is deployment week; arrive with nothing half-open.
Lab 7 problem set
Polish-eye training: rank four screenshots of the same inbox (from cramped-chaos to shipped-product) and name specifically what changed between each pair; fix three planted accessibility failures in a component; and rewrite five real error messages from developer-speak to product copy ('Error: ECONNREFUSED' is not a sentence you show a human). Taste is trainable; this trains it.