Deep Focus

An offline Pomodoro timer, task tracker and focus log that runs entirely in your browser. No account, no server, no sign-in.

Focus

Session progress ring

25:00

Ready to start

Session 1 of 4 before the long break No task selected

Space start or pause · S skip · R reset · F fullscreen · T theme

Session queue

The next session runs when the current one ends. Reorder with the arrow buttons or by dragging.

    Add a session

    Tasks

    0 open

      No tasks yet. Add one above to track estimated against actual pomodoros.

      Today's log

        Nothing logged yet today. Completed sessions and finished tasks appear here.

        Stats

        All computed locally

        • 0 Day streak
        • 0.0 Total focused hours
        • 0m Focused today
        • 0 Focus sessions

        Last 12 weeks

        Contribution-style heatmap of focused minutes for the last 12 weeks. A text summary follows.

        Less More

        No focused minutes recorded in the last 12 weeks.

        Focused minutes, last 14 days

        Bar chart of focused minutes for each of the last 14 days. A text summary follows.

        No focused minutes recorded in the last 14 days.

        Days roll over at midnight America/New_York.

        Settings

        Cycle lengths
        Behavior

        Your browser is asked for permission the first time you press Start, never on page load.

        Sound
        Appearance

        The T key switches themes from anywhere on the page.

        Your data

        Sessions, tasks and settings live in this browser's localStorage. Export them to move to another device.

        About Deep Focus

        Deep Focus is a Pomodoro timer for people who want the technique without the subscription. It is a single web page — one HTML file, one stylesheet and one script — and a first load transfers about 38 KB compressed, of which under 15 KB is JavaScript gzipped. It runs offline after that first load, because a service worker caches the whole app, and no account is required. Every control is documented: Space starts or pauses, S skips the session, R resets it, F toggles distraction-free fullscreen and T switches themes. The three ambient soundscapes are synthesized in your browser with the Web Audio API, so there are zero audio files to download. Sessions, tasks and settings persist in localStorage, roll over at midnight America/New_York, and can be exported to JSON at any time.

        How to use Deep Focus

        1. Add a task (optional). Type what you plan to work on and estimate how many pomodoros it will take, then select it so completed focus sessions are counted against it.
        2. Press Start, or hit the Space bar. The first time you start a session your browser asks whether Deep Focus may show notifications. Permission is never requested on page load, only on that first Start.
        3. Work until the ring closes. The countdown is derived from the timestamp the session will end at, so it stays exact even if you switch tabs or your laptop throttles the page.
        4. Take the break. A gentle chime plays and a notification appears. By default the short break starts on its own; after four focus sessions you get the 15 minute long break instead.
        5. Shape the queue. The session queue shows what is coming next. Reorder it with the arrow buttons or by dragging, add extra focus blocks, or rebuild it from your settings.
        6. Turn on ambience if it helps. Pick brown noise, rain or cafe from Settings and set its volume independently of the chime.
        7. Review your stats. The heatmap, the 14-day bar chart, your current streak and your total focused hours are all computed from the sessions stored in this browser.
        8. Export before you switch devices. Settings has a JSON export and import so your history travels with you.

        Features

        Frequently asked questions

        Does Deep Focus work offline?

        Yes. Deep Focus registers a service worker on your first visit and caches the whole app: one HTML page, one stylesheet, one script, the icons and the manifest. After that first load it opens and runs with no network connection at all. Because every timer, task and statistic is computed in your browser from data in localStorage, there is nothing to fetch from a server. You can also install it from your browser's address bar and launch it like a native app.

        Does the timer stay accurate if I switch to another tab?

        Yes. Deep Focus stores the exact timestamp at which a session will end and derives the countdown from the current clock on every repaint, so it never accumulates drift from throttled timers. If your browser suspends background tabs, the display re-synchronizes the instant you come back and any session that finished while you were away is recorded with its real end time. Browsers may still delay the completion notification for a tab that has been hidden for a long time, but the recorded session length is unaffected.

        What data does Deep Focus store, and where?

        Everything stays in your browser's localStorage on this device: your settings, your session queue, your task list and the history of completed sessions. Nothing is sent to a server, there is no account, no sign-in and no cookie that identifies you. You can export all of it to a JSON file at any time from the Settings panel and import it into another browser, and clearing your browser data for this site erases it permanently.

        How do the three soundscapes work if there are no audio files?

        Brown noise, rain and cafe are synthesized live with the Web Audio API. Brown noise is an integrated noise buffer played on a loop, rain is filtered noise driven by a slow-moving band-pass filter plus randomized droplet transients, and cafe layers a low rumble with band-passed chatter bursts and occasional cup clinks. Because the browser generates the sound mathematically, there is no audio to download and the soundscapes keep working offline like the rest of the app.

        Can I customize the Pomodoro lengths and the session order?

        Yes. The Settings panel lets you set the focus length, the short break, the long break and how many focus sessions happen before a long break; the default is 25 minutes of focus, a 5 minute short break and a 15 minute long break every 4 sessions. The session queue below the timer shows what is coming next, and you can reorder, add or remove entries with the arrow buttons or by dragging, so a single long stretch or an unusual pattern is easy to set up.

        How was this game made?

        Deep Focus was generated from a single written prompt on Quodara, an AI agent platform that turns a prompt into a deployed web app, and it was deployed straight from that prompt with no hand-written code afterwards. The full write-up, including the exact prompt, is published on the Quodara case page at https://quodara-ai.com/showcase/deep-focus/.

        About this build

        This version of Deep Focus was generated from a single prompt on Quodara on August 24, 2026, and deployed without any hand-written code afterwards. A first load transfers about 38 KB compressed in total, of which under 15 KB is JavaScript gzipped, and every subsequent visit is served from the service worker cache. There are no third-party frameworks, no web fonts and no blocking third-party scripts on the critical path. The full write-up of how it was built lives at https://quodara-ai.com/showcase/deep-focus/.