← All work  ·  Case 08 of 08 · Personal build

The to-do tool I built because ADO isn't for one person's Tuesday.

A single-file, offline-first workspace that unifies tasks, follow-ups, and links across a multi-product portfolio, built because no enterprise tool treats "who am I waiting on" as a first-class thing.

Context
Personal buildInternal Productivity ToolSolo · Product + Eng2026 · In daily use
Impact · Command Center
<5 sec
To capture a task
Was ~20 sec
0
Approvals or infra needed
Zero backend, browser-only
~10 min
Daily overhead recovered
Self-reported estimate
0
Dependencies
Vanilla JS, no build step
Chapter 01Problem space

Four products, four boards, no single place to think.

Running a multi-product portfolio means a different work-item board, doc space, and stakeholder cast for every product. None of it aggregates at the personal level. Follow-ups mostly lived in email flags and memory instead, and some went stale. I also had about 70 bookmarks I'd stopped using.

Chapter 02Discovery

"Waiting on someone" is a different job than "I owe this."

Two weeks of structured self-observation surfaced the clearest finding: follow-up work has a distinct mental model from task work. It needs an owner and a source, and its own review cadence. No tool at the personal level modeled that.

✦ On capture friction
"Capture friction is the whole ballgame. If the tool of record demands too many fields, the thought just doesn't get captured."
Chapter 03Approach

The boring, approval-free path was the one that would ship.

I made follow-ups a first-class type, with an owner, a source, and its own board, rather than a tag bolted onto a task. And I built the whole thing as a single-file, offline, browser-storage app with zero backend, specifically so it needed no security review, no hosting, and no approval to start using immediately.

The trade-off, stated honestly: no cross-device sync, a hard storage ceiling, and no framework, in exchange for a tool that got used starting day one instead of never shipping at all.

Chapter 04Outcome

Replaced the bookmark bar and the sticky notes outright.

Command Center

Before vs after

Capture a task
~20 sec
Estimated
→
<5 sec
Natural-language quick-add
Check my status
5 tools
Switching between apps
→
1 dashboard
One view
Stale follow-ups / mo
3–5
Estimated
→
0–1
Estimated
Chapter 06Lessons

Constraints are a design input, not an obstacle.

The cheapest tool that ships beats the ideal tool that doesn't. Zero-approval, zero-infra architecture was the actual reason this exists in daily use.

Model the user's mental model, not the domain's vocabulary. "Blocker" and "dependency" felt like statuses but were really reasons.

Watch your own behavior for a week before designing the data model. A proper browser database from day one would have avoided the storage ceiling.

Next case

Quote Automation

Parsing supplier PDFs with LLMs and business rules.

→

Let's build what actually ships.