A focus timer that grows a tree while you stay off your phone, and kills it if you leave the app — with real trees planted from the proceeds.
Build me a focus timer that replaces Forest: a session I do not want to break, a record of what I did, and something growing. Read this first, because it is the honest part: the money paid for the original plants real trees through a forestry partner. No home-made version replaces that. If that is why you bought it, keep buying it — or build this and set up a standing donation, which will plant more trees than the app ever did. STACK - A PWA that works offline, or a native app if you want the screen-time integration properly - Local storage first: IndexedDB on device, or SQLite if native - An optional server for sync and shared sessions: Node 20+ with Fastify, SQLite through better-sqlite3 - Caddy in front THE DATA MODEL - sessions: id, planned_minutes, actual_minutes, started_at, ended_at, outcome, tag_id, note, device — outcome is completed, abandoned or interrupted - tags: id, name, colour, icon - settings: session length, break length, long-break interval, sounds, strictness - streaks and totals computed from sessions at query time, never stored - rooms: id, code, host_id, planned_minutes, starts_at, status — for a shared session - room_members: room_id, user_id, joined_at, outcome - Every session recorded, including the abandoned ones. A tool that only logs successes is a tool that tells you nothing THE TIMER - Pick a length, pick a tag, start. Two taps, no configuration in the way - A visible representation that grows — a tree, a bar, a circle filling. It must be legible at a glance from across a desk - Runs correctly in the background: compute from timestamps, never from a counter that ticks. A timer that loses ten minutes because the phone slept is a timer nobody trusts - Continues across a reload, a lock screen and a browser restart, because the state is two instants and not an interval - A gentle sound and a notification at the end, both optional - Break timer afterwards, and a longer break every few sessions THE COMMITMENT, WHICH IS THE MECHANIC - Leaving the session should cost something, and the cost has to be real without being punitive - On a phone, detect leaving the app where the platform allows it and end the session as abandoned, with the reason recorded - On a desktop, use the page visibility and focus events — and be honest that this is easily circumvented. The point is friction and a record, not enforcement - A strict mode that cannot be stopped early, and a normal mode that can with a reason. Offer both; the strict one is the reason the mechanic works and the lenient one is why people keep using it - Never shame the user. An abandoned session is data, not a failure, and the interface treats it that way WHAT IT SHOWS - Today: sessions, focused minutes, by tag - The week and the month as a heatmap of focused minutes per day - Time by tag over any period, so 'where did the week go' is answerable - Best hours of day, computed from your own completed sessions - Streaks, with an honest definition written next to them and a rest day that does not break one — a streak that punishes a Sunday is a streak that gets abandoned in week three - Everything computed at query time from sessions TOGETHER, WHICH IS WHAT MAKES IT STICK - A room with a short code: everyone joins, the host starts, and everyone's timer runs together - If one person leaves, the others see it. That is the whole social mechanic and it is enough - No leaderboard, no points, no competition. Shared attention, not a game - Works with two people and with twenty, over the same simple polling endpoint BLOCKING, IF YOU WANT IT - A browser extension blocking a list of sites during a session, with a plain page saying how long is left - The list is yours, editable, and there is a way out that takes three deliberate clicks WHAT NOT TO BUILD - No account required. The app works entirely offline, forever - No analytics inside a focus app. Not one event — what somebody is concentrating on is nobody's business - No streak notification designed to make somebody feel bad. That is a dark pattern with a plant on it OPERATIONS - If there is a server: .env with DATABASE_PATH, BASE_URL, SESSION_SECRET; migrations on boot; nightly backup - On device: export every session as CSV in two taps WHAT MATTERS MOST Timestamp-based timing and the honest record. Get the background behaviour right first — start a session, lock the phone for twenty minutes, and confirm the count is exact — then log abandoned sessions as carefully as completed ones. And go and set up that donation. Give me the app, the sync server if you want one, and a README with build steps and the note about real trees kept at the top.
What you lose
- Real forestry funded by the purchase, which no home-made version replaces
- Screen-time detection that notices you left the app
- A shared forest with friends, which is what makes it stick
If you would rather not build
- Any Pomodoro timer, of which there are hundreds
- A kitchen timer, which works
- Focus modes built into the phone
What it costs
as published on their pricing page
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| — | $0.33/mo | — | — |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
Super Productivity
$0Open task management with a built-in focus timer and time tracking.
super-productivity/super-productivityfree · open source
Habitica
$0Turns focus and habits into a game with shared accountability.
HabitRPG/habiticafree · open source
Why this verdict
our own opinion · changed only by a person
90/100
Verdict yes at 90. Computing from the clock rather than counting down is the one bug to avoid. The trees are the part you genuinely cannot copy.
History
tracked since 10 Aug 2026 · nothing is ever overwritten
Questions about Forest
answered from the record above
Is Forest free?
No — the plan we track is $0.33 a month. A one-off purchase of around $3.99 on iOS; the figure shown spreads that over a year.
Can you replace Forest by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 90 out of 100, build time one session. Read what you lose before you decide.
How much does Forest cost?
$0.33 a month on One-off purchase — $3.96 a year. Recorded 10 Aug 2026.
What do you lose by replacing Forest?
Real forestry funded by the purchase, which no home-made version replaces; Screen-time detection that notices you left the app; A shared forest with friends, which is what makes it stick. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Forest?
Yes: Super Productivity, Habitica. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

