A three-part focus system — todo list, pomodoro timer, and browser extension — that tracks where your attention actually goes and renders it as a river map.
The Problem
Students and knowledge workers lose hours to tab-hopping and distraction every day — not because they lack discipline, but because there's no feedback loop. You open a tab to work on something, and forty minutes later you're somewhere else entirely with no memory of how you got there. Existing tools either block everything aggressively, or show guilt-inducing totals like "3 hours on YouTube" long after it's too late to act. Neither addresses the actual moment distraction begins.
The Solution
Drift is a three-part, fully local focus system — a web app, a browser extension, and a landing page — that closes the loop between what you meant to do and what you actually did. It works across three flexible modes depending on how the user wants to engage:
Use just the extension — open a new tab, type your intention, and Drift silently tracks where your attention goes. Use the web app alongside it — manage your tasks, run a focused pomodoro session, and let Drift automatically carry your intention into every new tab you open. Or use all three together for a complete focus workflow, from planning to reflection.
How It Works
The web app is a clean, distraction-free todo and pomodoro companion. Add your tasks for the day, pick one to focus on, and start a session — with the default 25/5 minute work-break rhythm or fully custom durations. The moment you start, Drift bridges your intention to the browser extension through shared localStorage — no server, no sync, just the browser talking to itself.
The extension takes over from there. It replaces the new tab page with a calm intention prompt. If a session is already running from the web app, it picks it up automatically and shows your current task. It then silently tracks your attention across tabs using the Page Visibility API and BroadcastChannel — watching which domains you visit and for how long. If you start drifting — opening too many tabs too quickly, or spending significant time on something unrelated to your intention — a gentle, non-blocking overlay appears. Not an alarm, not a block. Just a quiet mirror: "You meant to write your essay. You've opened 5 tabs in 30 seconds." Two options: keep going, or refocus. No streaks broken, no judgment.
When your session ends — whether the pomodoro timer finishes, you manually close it, or the browser detects you've been idle — Drift renders a river map. A full-canvas visualisation of your attention over time, where each domain is a coloured stream and time flows left to right. The river shows you, honestly and beautifully, what your last session actually looked like. Export it as a PNG or SVG. Browse your session history. See patterns across days.
Technical Approach
Drift is built entirely on browser-native APIs with no backend, no server, and no account required. The extension uses Manifest V3 for the new tab override, BroadcastChannel API for real-time cross-tab communication, Page Visibility API for attention tracking, and IndexedDB for persistent session history. The web app uses the Web Audio API for completion sounds, Canvas API for the pomodoro ring and river visualisation, and localStorage as the communication bridge between the web app and extension. The landing page is hosted on Vercel. All data stays on the user's device permanently. Fully open source.