33 Days
42+ Commits
773 Tests
4 App Versions
1 LLC
🎲

Product

🚀
Brush Quest

App

v7 shipped — feature-complete and kid-tested
Three major versions in six days. Rewrote every screen so a 7-year-old who can't read can play independently. 10 worlds, 70 monsters, 6 heroes, 6 weapons, cumulative star economy.
  • 30-point UX overhaul: icons replaced text, voice guides every action
  • Dual narrator system: "Classic" adult voice + "BQ Buddy" kid-friend voice with parent toggle
  • 193 voice scripts rewritten in 6-year-old language, 2 voice profiles (battle vs. descriptive)
  • COPPA P1 complete: camera off by default, consent dialogs, privacy policy rewrite
🌐
Brush Quest

Landing Page

brushquest.app is live — domain, site, and email capture in one day
Bought the domain, built the site, iterated 5 times, and shipped — all on March 14. Platform-aware forms detect Android, iOS, and desktop visitors with tailored CTAs. QR code lets desktop visitors open the page on their phone.
  • Buttondown email capture with iOS interest tags and segmentation
  • Outcome-driven copy, fresh screenshots, video carousel
  • GitHub Pages deployment with custom domain and HTTPS
🎤
Brush Quest

Voice & Audio

193 voiced scripts — the app talks to kids like a friend
Voice is the UI for non-readers. Designed "BQ Buddy" from scratch with 5 rounds of ElevenLabs Voice Design (~20 previews) to nail the "excited best friend" tone. Replaced disconnected random clips with connected 3-beat story arcs so encouragements feel like a real narrator.
  • 70 monster card descriptions, 12 shop unlock intros, 18 brushing arcs, 12 victory arcs
  • Batch generation script: 5 concurrent workers with auto-retry on rate limits
  • Music health-check every 5s recovers stuck AudioPlayer on Android
🎨
Brush Quest

Graphics

Shaders, hit juice, and a brand-new 3D app icon
Transparent hero and monster PNGs, fragment shaders (dissolve, shockwave), hit juice combos, slow-motion boss kills. New 3D battle scene app icon generated with gpt-image-1, installed to all Android densities + website favicon.
  • Effect rebalancing: learned not to stack too many effects (characters disappear)
  • Rive animation brief written for post-launch polish
👕
Brush Quest

Merch

Print-ready assets — t-shirts and stickers designed for Oliver & Theo
Shadow action pose (Oliver's hero), Blaze action pose (Theo's hero), Monster Squad group, and logo badges. All 4x upscaled via Real-ESRGAN to print-ready 4096px+. T-shirt layouts on black tees, shield die-cut stickers with transparent backgrounds.
🏯
Brush Quest

Play Store

Cycle 13 shipped to Play Store — v1.0.0+10 built on real kid feedback
Oliver played the app for 22 days straight. His feedback drove Cycle 13: 12 commits overhauling the home screen, trophy wall, shop UX, victory flow, audio, and COPPA compliance. Version 1.0.0+10 deployed to Play Store internal testing.
  • Home screen redesign: badge icon, greeting popup, animated stat counters
  • Trophy wall: monster silhouettes for uncaught, voice on locked taps
  • Shop UX: icon-only snackbars, evolution arrows; victory flow: auto-open chest, route exits through _goHome
  • COPPA: delete cloud data button; audio: crossfade, K.O. voice variety, legendary first-only
Brush Quest

Google Play Approved

First app through real store review — approved and live for testers
Brush Quest passed Google Play review on the first submission. The app is now live for internal testers with completed release status. CI upgraded to Flutter 3.41.4 and the manual Play Console rollout step was removed from the dev cycle workflow — fastlane now handles end-to-end deployment.
  • First real store review cleared — COPPA compliance, content rating, and all policies passed
  • Release status flipped from draft to completed — testers can now install directly from Play Store
💼

Business

📜
Brush Quest

LLC

AnemosGP LLC filed in California — a real company now
From "indie dev hobby" to "legal entity with a registered agent." Articles of Organization filed (Doc# B20260127451), Northwest Registered Agent hired. Business address secured. Next: EIN → D-U-N-S → bank account → Google Play organization account.
  • Chose California (cheapest since the $800/yr franchise tax applies regardless of state)
  • COPPA requires a physical address in the privacy policy — LLC solves that
💰
Brush Quest

Pricing

Space Ranger Pass approved — $4.99/mo or $39.99/yr
Six research reports (~25K words) covering every competitor, monetization model, and pricing benchmark in the kids' health app space. Parent subscription rejected. Content-led freemium approved: free Worlds 1-2, premium unlocks all 10 worlds + heroes + weapons.
  • "$2.99 signals cheap and doesn't reflect the health value" — raised to $4.99
  • Free parent activity log + weekly email as conversion funnel
  • Monster card collection gap (21/70 free) as kid-driven conversion engine
📚
Brush Quest

Accounting

Books clean from day one — 69 transactions logged, all receipts filed
Scanned Gmail for every transaction since September 2025. 69 transactions ($5,702) imported to QuickBooks, 82 Stripe receipt PDFs downloaded and filed. Identified ~$320/mo recurring burn across 14 SaaS subscriptions. Tax calendar set for franchise tax (July 15) and annual return (April 2027).
  • Stack: Mercury (bank) + QuickBooks Simple Start ($15/mo)
  • Built /accounting command: 4-step pipeline (scan, review, import, close)
🛡
Brush Quest

Compliance

COPPA-complete — camera off, consent dialogs, honest privacy policy
Full COPPA audit. Camera defaults to OFF. Parental consent dialogs added. Privacy policy rewritten in parent-friendly language. Killed the "brushing verification" feature because camera motion detection cannot prove a child is actually brushing — staying honest matters more than a bullet point.
🎯
Brush Quest

Strategy

5-phase master plan — from pre-launch to scale
Built a full operational system: STRATEGY.md (5-phase plan), STATUS.md (live status board), PLAYBOOK.md (weekly rhythm). Cross-session coordination so every Claude Code session reads and updates the same status board. CEO mode (/ceo) for strategic decisions.

Ops

🧪
Brush Quest

Testing

618 tests from zero — every service covered, CI on every push
Wrote 618 tests in a single day covering every core service, audio system, and UI flow. GitHub Actions CI runs dart analyze + flutter test on every push and PR. Security scanning (semgrep) and secret detection (gitleaks) added. 122-item manual audio checklist for pre-upload verification.
  • Audio alone: 370 tests (logic, asset verification for 164 files, regression, integration)
  • Core services: streak, hero, weapon, world, card, achievement, sync
🔄
Brush Quest

Dev Cycle

4-agent QA framework — automated audit before every release
Built a structured dev loop: CONTEXT → ANALYZE → PLAN → APPROVE → IMPLEMENT → VERIFY → SHIP → LEARN. Four parallel analysis agents: UX Design Critic, Code Health, Voice & Audio Experience, Kid Experience + Parent Trust. Synthesizer de-duplicates and ranks findings.
  • Modes: /cycle (full audit), /cycle ship (verify+ship), /cycle quick
  • Operational dashboard: STATUS.md parser with workstreams by category and metrics trends
🛠
Brush Quest

Tooling

7 slash commands — a custom operating system for solo development
/cycle, /ceo, /llc, /accounting, /status, /weekly, /retro. Global playbook with structured decision-making (3+1 agents), task-matched context loading, and automatic quality gates. Claude Code hooks auto-run dart analyze on every file edit.

The Timeline

Day by day, how it all came together

March 10
Brush Quest

v6 Engagement Features + Shop Voices

Two major drops in one day: the engagement system that keeps kids coming back, and the voice-overs that make every unlock feel special.

  • Monster card collection system: 70 cards across 10 worlds with rarity tiers
  • Daily login rewards and card album
  • 12 ElevenLabs voice-overs for hero and weapon shop unlocks
  • Kid feedback round: richer voices, cleaner battle UI, scrollable victory screen
game design audio kid testing
March 12
Brush Quest

v6.5: Doubled the Content + Production Hardening

Five new worlds, 35 new monsters, weapon art, 70 voiced card descriptions, and production hardening to make it Play Store-ready.

  • 5 new worlds: Frozen Tundra, Toxic Jungle, Crystal Cave, Storm Citadel, Dark Dimension
  • 35 new monster cards with battle backgrounds and planet art
  • 6 weapon art images (gpt-image-1, replaced Flutter icons)
  • 70 monster card voice descriptions (ElevenLabs TTS)
  • Removed morning/evening 2-brush-per-day restriction
  • Production hardening: error handling, edge cases, Play Store prep
content audio art
March 14
Brush Quest

v7: The Non-Reader Overhaul + Landing Page Launch

The biggest UX overhaul yet. Rewrote every screen for a 7-year-old who can't read. Then built a full marketing site from nothing and shipped it.

  • v7 (30-point UX overhaul): Icons instead of text, voice guidance everywhere, simplified flows, no-text companion bubbles, mouth guide improvements
  • Landing page live at brushquest.app: 5 iterations in one day. Outcome-driven copy, fresh screenshots, video carousel, family photo
  • Custom domain: Bought brushquest.app, configured DNS, GitHub Pages, HTTPS
  • COPPA compliance (all P1 done): Camera default OFF, consent dialogs, privacy policy rewrite, "Delete child's data" relabel
ux marketing compliance infra
March 15
Brush Quest

Business Foundations: Research, LLC, Pricing, CI

Went from "indie dev project" to "real company with a strategy" in a single day.

  • Business research (6 reports, ~25K words): Every competitor analyzed, monetization models evaluated, pricing benchmarked
  • Pricing approved: Space Ranger Pass at $4.99/mo or $39.99/yr
  • AnemosGP LLC filed: California LLC, Articles of Organization (Doc# B20260127451), registered agent hired
  • Dev Cycle framework: New repo, /cycle command, 3 analysis agents, 3 personas, benchmark rotation
  • GitHub Actions CI: dart analyze + flutter test on every push and PR
  • Key finding: camera motion detection cannot verify brushing — killed the feature to stay honest
business legal strategy ci/cd tooling
March 16 — The Mega Day
Brush Quest

Five Workstreams in One Day

The biggest single day of the project. Test bench, graphics, merch, accounting, and a dashboard — all from scratch.

618 Tests from Zero

  • Core services: 107 tests (streak, hero, weapon, world)
  • Supporting services: 98 tests (card, achievement, sync)
  • Audio: 370 tests (logic, asset verification for 164 files, regression guards, integration)
  • Security scanning (semgrep) + secret detection (gitleaks)
  • Global playbook created: structured decision-making, automatic quality gates

Graphics Overhaul

  • Transparent hero and monster PNGs
  • Hit juice, combos, Lottie effects
  • Fragment shaders: dissolve, shockwave, slow-motion, boss shield, weapon trail
  • Learned: don't stack too many effects — characters disappear

App Icon + Merch Assets

  • New 3D battle scene app icon (gpt-image-1), all Android densities
  • Merch: Shadow & Blaze action poses, Monster Squad group, logo badges
  • T-shirt layouts, die-cut stickers, all upscaled 4x via Real-ESRGAN

Accounting: Zero to Clean Books

  • Gmail scan: 69 transactions identified ($5,702, Sep 2025 – Mar 2026)
  • Built /accounting command: 4-step pipeline (scan, review, import, close)
  • 70 transactions imported to QuickBooks, 82 Stripe receipt PDFs downloaded
  • ~$320/mo recurring burn identified across 14 SaaS subscriptions

Dev Cycle v2 + Dashboard

  • 4-agent analysis: UX Critic, Code Health, Voice Experience, Kid + Parent Trust
  • New modes: /cycle quick and /cycle resume
  • 21 UX fixes from real playtest feedback
  • Operational dashboard: STATUS.md parser, workstreams by category, metrics
testing graphics art accounting tooling ux
March 18
Brush Quest

Dual Narrator: Kid Voice System

What if the app talked to kids like a friend, not an adult? Designed a custom voice from scratch, wrote 193 scripts in 6-year-old language, and shipped a parent-facing toggle to switch narrators.

  • 5 rounds of ElevenLabs Voice Design (~20 previews) to find the right "excited best friend" voice
  • 193 voice scripts rewritten for 6yo: "oh my gosh", "look look", "yay" — pure wonder, zero cool-kid attitude
  • Two voice profiles: high-energy for battle, warmer for descriptions
  • Batch generation script with 5 concurrent workers, auto-retry on rate limits
  • Parent settings toggle: "Classic" (adult narrator) vs "Buddy" (kid friend)
  • Architecture: assets/audio/voices/{classic,buddy}/ with AudioService routing
audio ux tooling
March 20
Brush Quest

Memory Management System: Three-Layer Architecture

Claude Code now has structured, scalable memory across all projects. A 394-line design spec, an 8-task implementation plan, and a full migration — all in two sessions.

  • Three-layer hierarchy: global rules, cross-project orchestration, per-project tiered memory
  • Four-tier model per project: HOT (index), WARM (topic files), COLD (archive), CACHE (session handoff)
  • Cross-project brain: routing rules, write gate, staleness protocol, size limits — all codified
  • Knowledge graph seeded: 11 entities + 12 relationships via MCP server for cross-project queries
  • All 6 projects migrated to the new structure with proper frontmatter and size compliance
  • D-U-N-S application submitted (expedited) — unblocks Play Store org account ~April 1
tooling infrastructure business

Built by Jim Chabas + Claude Code

Solo founder. One AI partner. Zero excuses.