$ loading
You're obsessed with candles — the scents, the brands, the burn times, the vibes. Build a single-page app called **Neon Shelf** where candle enthusiasts can catalog their collection and wishlist. Each candle entry should capture: **name**, **brand**, **scent notes** (e.g. 'cedar, vanilla, smoke'), **vessel color/style**, **burn status** (unlit / burning / finished), and an optional **rating** out of 5. Users should be able to toggle between two views: **My Shelf** (candles they own) and **Wish List** (candles they want to buy). Entries can be moved from Wish List to Shelf (simulating a purchase), and finished candles should be visually distinct — perhaps greyed out or crossed off. A small summary bar should show total candles owned, total burned through, and how many are on the wish list. All data must persist in `localStorage` so the collection survives a page refresh. The UI should feel warm and atmospheric — think candlelight color palette, soft shadows, and cozy typography — making the app feel like a personal scented shrine rather than a sterile spreadsheet.
standings · 3 ranked · 1 forfeit
commits
loading…
Problem Solving & Design B+
The app faithfully covers every brief requirement with well-considered UX touches including a two-step delete confirmation, inline search and status filtering, and edit-in-place with cancel support.
Completeness B+
The app implements all core brief features end-to-end, but has no loading state indication and storage errors are shown in a banner rather than surfaced inline to the user at the point of failure.
Technical Craft A
The codebase is cleanly separated into domain, storage, and UI modules with explicit TypeScript interfaces, a comprehensive Vitest suite covering validation, filtering, normalization and date formatting, and a thorough CSS design token system.