Burnout, stress, and the flatness people carry home from their feeds. Baloo is a companion for that: he notices, he asks little, and he has somewhere for you to go when talking is not the thing.
Two halves, deliberately:
The second half is what people will open on a bad Tuesday. The first half is what makes it more than a toy.
A room must be able to end. An endless tap loop with a rising score is the same shape as the feed these are meant to be a refuge from — building that would be the joke writing itself. So: rooms go quiet and offer to let you go, there is always a plain way out, nothing autoplays next, and tallies stay private totals rather than scores, streaks, or anything comparable to another person. Hush had this instinct already (“Fades out on its own. No autoplay next.”); it is now a hard rule.
Stack: React Native + Expo (SDK 57, RN 0.86), expo-router, expo-sqlite, react-native-svg, Reanimated 4. Android first.
Design sources of truth: design/Baloo App.dc.html, design/Baloo.dc.html,
and the Hush bundle at ../hush-asmr-for-burnout/. Tokens live in
lib/theme.ts — change them there, not inline.
Tide Under Glass.mp3 is 3.5 MB. Bundling audio blows the under-25 MB
install budget the plan sets. Keep synthesising on the device, or fetch
recorded tracks on demand once there is a reason to.One small thing a day, shipped and pushed. Not big phases landing at once — each item below is meant to fit a single sitting, be usable when it lands, and leave the app working if the next day never comes.
| Day | What landed |
|---|---|
| 1 | The eight screens, on a real local-only database |
| 2 | Voice, the closing ritual, night watch, the one-shot sounds |
| 3 | The ambient bed — drone pad and four-chord music, ported from sound.js |
| 3 | The icon set; Care and Ground redrawn after seeing them rendered |
| 4 | Hush merged in. The relief rooms, and the first one built: bubbles |
| 5 | The lake — a dusk scene in SVG, stones that arc in, rings that pass through |
| 6 | What Baloo remembers: the facts store, derived and tested. Nothing shown yet |
| 7 | The wind chimes — six pentatonic tubes, struck by a clapper the wind swings |
| 8 | He says one remembered thing. Once a day, aloud, and you can make him drop it |
| 9 | The six-layer mixer, and a dev-only seeder so history-based features can be seen |
| 10 | Longer pieces — a shelf for recordings you bring in. Still nothing downloaded |
| 11 | Where it has hurt — thirty days of marks over one body. Tide Under Glass bundled |
| 12 | Grounding — the 5-4-3-2-1 and four cards, read aloud, one instruction at a time |
| 13 | PHQ-9 — nine items, scored, with the self-harm item outranking the total |
| 14 | Fix: Baloo’s thumbs up. It was dropped in the day-1 port and nobody had noticed |
| 15 | The dandelion — forty-two seeds, fourteen per breath. The one room that finishes |
| 16 | Paper boats — rain overhead, and near boats genuinely outrun far ones |
| 17 | Say the pattern — the pain-and-mood pairing, and he reads the body map aloud |
| 18 | The penguin. Six of Hush’s seven playable rooms are now built |
| 19 | GAD-7, and the two questionnaires refactored onto one shared implementation |
| 20 | The weekly letter — prose from local data, and the same week always reads the same |
| 21 | Gaps that cost nothing, and a fix: the Today card was reporting stale entries as today |
Each of these is one sitting. Take the top one. The list now alternates between the two halves, so neither stalls while the other is built.
On recorded audio. Exactly one piece is bundled — Tide Under Glass, at 5.7 MB, which is close to a fifth of the install budget for three minutes of audio. It should be re-encoded before release: it is 256 kbps stereo, and ambient material at 96 kbps mono is indistinguishable here and costs about 1.4 MB. That list must not grow; fifteen sleep pieces at this rate would be 85 MB. Nothing is fetched, which is what keeps the app working with no signal. Synthesis cannot compose, though, so wind-down pieces have to be recordings — they are therefore brought in rather than shipped, on the Longer pieces shelf.
Download-on-demand is deliberately not built yet: it needs a host and a track, neither of which exists, and it would be the first thing in the app to open a socket. When it comes it adds a source to the same shelf and must stay opt-in, with the synthesised bed remaining the offline default.
For the relief-room textures, the Hush design’s own answer stands and is shown to users on that screen — real objects, real microphones, not generated sound. Generated audio is a fine way to work out what a piece should sound like, and a poor thing to ship in its place.
Six of the seven rooms Hush marked playable are built: bubbles, the lake, the chimes, the dandelion, the boats and the penguin. Only the smoke is left, and it needs real pixels. The five Hush had not built either — the aquarium, soft toys, blowing bubbles, ants and the sandcastle — are still just names and gradients on the list, honestly labelled as such.
Needing a dev build, so grouped and done together later: smoke, sandcastle, speech-to-text, the home-screen widget, Wear OS.
The section closest to the stated intention: remove tasks, don’t add them.
Ads · data sale · social feed · leaderboards · punishing streaks · engagement-optimised notifications · confident medical answers · anything that reads as a diagnosis · silent background monitoring · paid crisis support.
The character’s resemblance to protected trade dress needs a real IP review of the silhouette, the name and the closing line before any marketing spend. Flagged in the product review; not a code problem.