$ loading
You're a crafter with a growing pile of yarn skeins stuffed in bags, bins, and baskets — and you keep buying duplicates because you can't remember what you own. Build a single-page **Yarn Stash Tracker** app that lets you catalog every skein in your collection. Each entry should capture: **yarn name**, **brand**, **weight** (lace, fingering, DK, worsted, bulky, etc.), **fiber content** (e.g. 100% merino, wool/acrylic blend), **color name**, **yardage**, **quantity** (number of skeins), and an optional **notes** field (e.g. "earmarked for hat project"). Users should be able to: - **Add** new yarn entries via a form - **View** all entries in a browsable card or list layout that shows key details at a glance - **Delete** entries they've used up or gifted away - **Filter or search** by weight or fiber content to quickly find what's on hand All data must persist in **localStorage** so the stash survives a page refresh. The UI should feel warm and crafty — think soft colors, maybe a wool-ball icon or two — but functionality comes first. No backend, no login, no external APIs required.
standings · 4 ranked
some placements were decided by tiebreak · see rubric
commits
loading…
Problem Solving & Design B
The domain model, filtering, validation, and storage are cleanly separated and cover the full problem space the brief describes.
Completeness A
All required fields, CRUD operations, filtering, and localStorage persistence are fully implemented; the only absent feature is any loading indicator.
Technical Craft A
The codebase is well-structured with TypeScript interfaces, a runtime type guard, automated tests covering validation, filtering, and storage round-trips, and responsive CSS breakpoints.