App Critique · Issue No. 01

PROD 65 · Spring 2026

Design Review

Bricks&
Breaths

Source URL producingtechnology.com/65-apps/chengjennifer_184757_15200470_dreamapp_mock_corrected.html
Type Single-file HTML · JSON-powered
Category Mental Wellness Dashboard

BricksAndBreaths arrives as a gentle mental health companion — using LEGO-style building metaphors to encourage grounding, reflection, and reasons to stay. The aesthetic is warm and considered. The emotional copywriting is genuinely moving. But beneath the cozy surface, almost nothing is actually interactive.

When the external JSON file loads successfully, the dashboard populates with personal data: a preferred name, a current mood, a streak counter, and five deeply human "reasons to stay." When it fails — silently, with no error state — every field collapses to a dash.

Preferred name

Jennifer

Current mood

overwhelmed

Streak

3d

Check-in date

Feb 25

LEGO color system
01

Sections visible in the app

Header card

App name, tagline, and four LEGO-colored brick icons establishing the color system.

Today's snapshot

Preferred name, current mood, streak counter, and check-in date — the daily anchor.

Daily check-in

A 5-dot mood scale and a journal-style text area with a pre-filled reflection entry.

Reasons to stay

Five personal anchor statements with diamond bullets — the emotional heart of the app.

LEGO-inspired builds

Partially visible below the fold; content unclear from loaded state.

Grounding rituals

Sub-labeled "Grounding" with steps cut off — unclear if populated or stub.

02

What works well

Visual design

The warm gradient, LEGO brick palette, and rounded card layout feel deliberate and emotionally fitting — not generic wellness-app beige.

Copywriting

"A future version of me who is proud I stayed." The reasons-to-stay entries are specific, personal, and exactly right for the app's intent.

Daily rhythm

The snapshot card — name, mood, streak, date — sets up the expectation of a returnable daily habit before a single interaction occurs.

03

Things that didn't work

"A beautiful static poster masquerading as an app."

Critical
No error or fallback state

A failed JSON fetch leaves the page permanently stuck on "Loading…" with dashes everywhere. No error message, no retry button, no fallback data. Any visitor who hits a failed fetch sees nothing at all.

Critical
Mood scale is non-interactive

The 5 dots are purely decorative. For an app centered on daily check-ins, not being able to set your mood is a fundamental gap — the core action of the product is missing.

High
Journal entry is read-only

The reflection text is a static string from JSON. There is no editable textarea, no save button, no way to write or persist a user's own entry.

Medium
Streak and date are hardcoded

"3d" and "Feb 25" are static JSON values. They don't reflect the real current date and won't auto-increment on return visits.

Medium
No persistence between sessions

Nothing is saved to localStorage. No user state, no memory of past check-ins, no continuity between visits.

Low
Mood label has no visual register

"Overwhelmed" is styled identically to any other mood. No color, icon, or emphasis signals emotional weight at a glance.

Low
No navigation

Single static view. No history, no settings, no way to move between days or revisit past entries.

04

Prompt to improve the app

Rebuild BricksAndBreaths as a fully interactive single-file HTML app with all mock data embedded inline as JavaScript — remove the external JSON dependency entirely. Preserve the warm gradient background, LEGO brick color palette, rounded card layout, and the emotional tone of the copy. Then add:

  1. A clickable 1–10 mood dot scale. The selected dot highlights in a contextual color (warm tones for high-stress moods, cool for calm). Selection saves to localStorage and updates the snapshot card.
  2. An editable textarea for the daily journal entry with a "Save entry" button. Entry persists to localStorage and shows a subtle "Saved" confirmation.
  3. A live streak counter that compares today's date to the last check-in in localStorage, increments if it is a new day, resets if a day was missed, and shows "Day 1 starts today!" for first-time users.
  4. Expand/collapse interactions on LEGO build cards and grounding ritual cards, revealing numbered steps on click.
  5. An "Add a reason to stay" input that appends new entries to the list and saves them to localStorage.
  6. A graceful error banner with a retry button if any fetch fails, with automatic fallback to embedded demo data.
  7. A "Welcome back" nudge banner when localStorage shows the user has not checked in for more than one day.