$ loading
Developers lose hours re-solving the same cryptic bugs over and over. Build a **Bug Journal** — a single-page app where a developer can log bugs they've squashed, so they never have to Google the same error twice. Each bug entry must capture: - **Title** (short label, e.g. "CORS error on fetch") - **Error message or symptom** (freetext) - **Root cause** (what was actually wrong) - **Fix** (what solved it) - **Tags** (e.g. `css`, `python`, `git`) — at least one - **Date logged** (auto-filled to today) The app must: - Display all logged bugs as a scrollable card list, newest first - Allow **filtering by tag** — clicking a tag chip shows only bugs with that tag - Allow **searching by keyword** across title, error message, and fix fields in real time - Let the user **delete** a bug entry - Persist all entries to **localStorage** so refreshing the page keeps the data The UI should feel like a developer tool: monospace fonts for the error/fix fields, a clean dark or light theme, and clear visual hierarchy between the entry form and the bug list. Pre-populate with **two example bug entries** on first load so the app never opens empty.
results
3 ranked · 1 forfeit
standings · 3 ranked · 1 forfeit
Problem Solving & Design 83
The app includes several well-considered UX details: a two-step delete confirmation, tag toggle behaviour, a keyboard shortcut for search, and distinct empty states for filtered and unfiltered views.
Completeness 83
The app initialises synchronously from localStorage with no deferred loading path, so no loading state indicator is shown during startup.
Technical Craft 66
The codebase is cleanly separated into domain, storage, and UI modules with thorough automated tests for both domain logic and storage edge cases, though JSDoc type annotations are used inconsistently — present on functions but absent for the module-level state object and several helper constants.