Foreground: the work you keep putting off, surfaced
Foreground applies the frameworks and rituals of professional product work to my own daily workload, and shipping it was itself an exercise of those same skills. It is a single-person prioritization tool that treats the tasks you keep skipping as a signal, ranks everything by a transparent score, and manages its own development the way it manages my work. These are the same frameworks I use in professional product work, pointed at my own workload in a tool I specced and shipped. It is not a replacement for enterprise tooling or process, just the same thinking at personal scale.
The problem
Every to-do list has the same failure mode: important work sinks to the bottom and stays there. The loudest, newest, or easiest items get done first, and the ones that actually matter get postponed until they turn into emergencies. I wanted a tool that noticed when something had sat untouched and pushed it back up, without letting neglect alone manufacture false urgency.
The professional practices it mirrors, and how I use them daily
- A prioritization framework. A WSJF adaptation, cost of delay over job size, applied to real work, with a deliberate addition: a staleness multiplier, because avoided work is the actual failure mode in a personal workflow. The model is written up in FRAMEWORK.md as a standalone artifact with its weights and rationale, and its central claim was math-checked and corrected when a boundary case disproved it.
- Backlog grooming. Raw captures become well-formed user stories with acceptance criteria before they become work.
- Dependency management. Work is modeled as a graph, so blocked items sink and the work that unblocks them is boosted, the same reasoning behind sequencing a real roadmap.
- Explicit tradeoffs over gut feel. Every ranking shows its arithmetic, so a priority is defensible rather than intuitive.
- Roadmap discipline. The app's own development is managed as a groomed backlog inside the app, so the tool prioritizes its own roadmap using the framework it applies to everything else.
The features that make practicing those workflows possible
- What Now. The ranked queue, with a full factor breakdown on every card.
- The Product module. A kanban board of user stories with acceptance criteria and WSJF inputs, where the app's own roadmap lives.
- The grooming assistant. An LLM drafts a user story with proposed acceptance criteria and scores; I accept or edit it, and nothing auto-applies. Drafting is assisted; the judgment stays mine.
- Dependency chains. Waits-on and would-unblock views that follow the chain to its actionable root.
- Stuff I've Put Off. A staleness-ranked view that surfaces avoided work instead of letting it sink.
- A morning check-in ritual. Built to be skippable, so daily alignment never becomes a nag.
Built and verified
Foreground is a React and TypeScript app on a Supabase data layer, with a localStorage mode for local and demo use. A grooming assistant turns raw captures into structured user stories through the Anthropic API. Claude Code built it autonomously from the spec, a Playwright end-to-end suite drives every screen, and the whole thing was independently audited. The prioritization model and the judgment behind each weight are written up in FRAMEWORK.md and DECISIONS.md, so the framework can be read and challenged, not just used.
Where it stands
- Live as a browser demo on seed data, and open source under the MIT license.
- Every ranking factor is documented and every framework weight is defended in writing rather than hand-waved.
- Built and audited end to end, with an automated test covering each screen.
Shipping Foreground drew on the same practices it models: a written spec, a defined prioritization framework, a prioritized backlog, an independent audit, triaged remediation of what the audit surfaced, and a documented decision log.