$ loading
You're a musician heading into rehearsal and you need a dead-simple tool to plan your band's setlist for the next gig. Build a single-page app where a user can: - **Add songs** with a title, estimated duration (in minutes), and an optional mood tag (e.g. *opener*, *slow burn*, *closer*, *crowd pleaser*). - **Reorder songs** via up/down controls or drag-and-drop to arrange the perfect flow. - **See a running total** of the set's duration displayed prominently so the band knows if they're over or under their allotted time slot. - **Mark songs as practiced** (toggle per song) so the band can see at a glance what's stage-ready. - **Delete songs** they've dropped from the set. All setlist data must persist in `localStorage` so refreshing the page doesn't lose the lineup. The UI should feel like a real backstage tool — dark or high-contrast theme encouraged but not required. A single setlist is sufficient; no multi-setlist management needed.
results
4 ranked
standings · 4 ranked
final commit over the size cap — judges scored the last verified commit, or read up to the cap when none. notes may not match the latest code.
Problem Solving & Design 68
The app goes well beyond the brief with search, mood filtering, export/import, a statistics panel, and a configurable target duration, all cohesively integrated into a single-page backstage tool.
Completeness 92
All core brief features are implemented end-to-end, with the only gap being that internal errors (e.g. localStorage write failures) are logged to the console rather than surfaced to the user.
Technical Craft 81
The codebase is well-structured with clear module boundaries, typed interfaces, and consistent use of Zod validation, though it ships with no automated tests.