CoThe Co Lab
Back to Brain Dump

How it was built

A place to put things down, fast.

I didn't want another task app. I wanted the fastest way to say a job out loud and trust it was caught, and nothing more. Here are the sorts of things I asked for.

Step 1 · Let the phone do the listening

The obvious idea was to build voice recognition. The better idea was to build none at all, and lean on the excellent dictation already in the keyboard.

claude code, the-co-lab
A

Build me a task app where I capture by voice. Don't touch the microphone or any speech API, I'll just tap the mic on the iOS keyboard and let its dictation type into a text box. As the text arrives, parse it into a title, due date, priority and repeat.

Set up the capture sheet as a single focused text field, no microphone permission anywhere. Added a parser that reads recurrence, priority and dates from the dictated text on a short debounce and shows each as an editable chip.

components/BrainDumpApp.tsxlib/brainDump/parse.ts

Step 2 · Read the details, keep the exact words

A parser that's wrong and hides what you said is worse than no parser. So the rule was: read dates and repeats with plain, predictable logic, and always keep the raw dictation underneath as a safety net.

claude code, the-co-lab
A

Parse recurrence first (every Monday, on the 1st, every 3 days), then priority words (urgent, no rush), then dates with chrono using forwardDate so a bare 'Friday' means the coming Friday, then whatever's left is the title. Never edit the raw text, show it greyed in the edit sheet.

Built the pipeline in that order, each step removing what it recognised so the leftover is a clean title. Kept rawText untouched on every task and surfaced it in the edit sheet. Recurring tasks roll their date forward when ticked, so they never pile up.

lib/brainDump/parse.tslib/brainDump/recurrence.ts

Step 3 · Calm to look at, and always there

It's opened at the point of overwhelm, so it had to feel like a clean sheet of paper, not a dashboard. And it had to open on a plane, which meant working offline from the home screen.

claude code, the-co-lab
A

Make it near-monochrome and generous, no scores or streaks or notifications ever. Priority is just a small accent. Make each task a little pill: a circle to tick it off, a handle to drag and reorder, tap to edit, everything undoable with a toast. Follow the system into dark mode, and make it work fully offline once it's on the home screen.

Built a quiet, single-column list of draggable pills, each with a tap-to-complete circle and a grip handle, one saturated accent used sparingly, spring-settled motion that respects reduced-motion, and a system-driven dark mode. Added float-based reordering, undo toasts, on-device storage in IndexedDB and a service worker so it opens in aeroplane mode.

components/BrainDumpApp.tsxpublic/braindump-sw.jsapp/globals.css

The build log

And it keeps evolving.

Every change since launch, newest first. Tap any entry to read the thinking behind it.

  1. LaunchThe first betaCapture a task by voice, it reads out the due date, priority and repeat, then you drag, tick and snooze it by hand. Offline, on your device, no account.

    This one is for the moment your head fills up faster than you can write anything down. You tap the mic on your own keyboard, say the task, and it quietly parses a due date (a bare 'Friday' means the coming Friday), a priority ('urgent', 'no rush') and a repeat ('every Monday', 'on the 1st') out of what you said, while keeping the exact words you dictated as a safety net. Then it's a calm, flat list of little pills: tap a circle to tick one off, drag its handle to reorder, tap it to edit or snooze. Recurring tasks roll forward when you tick them, so there's never a pile-up, and it all works added to the home screen with no signal. No reminders, no accounts, nothing to maintain, that's the whole point.

Fancy building your own?

If you've ever wished a tool existed, you're closer to making it than you think.