Forest

forestapp.cccontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

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.

Promptfree, for everyone, and the only version there is
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

PlanBilled monthlyBilled yearlyLast 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

$0

Open task management with a built-in focus timer and time tracking.

super-productivity/super-productivityfree · open source

Habitica

$0

Turns 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

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

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

All 12 in Wellness & personal finance

Not sending yet

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

Esc