Project and task management decision

Session

A competent developer can reimplement a useful subset (web timer, analytics, browser-based blocking) in about a week, but reproducing Session's native macOS/iOS app integrations, OS-level app blocking, and seamless cloud-backed device sync would require more engineering and platform access, so keeping the paid product is reasonable if you need those features.

Visit website
You pay

$4.99/mo

$60/yr

Read off the official pricing page.

You’d pay instead

$50one-off30 h to build

$30/mo4 h/mo upkeep

On cash alone, building overtakes the subscription at 7 seats.

Open-source builds that already do this

Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need - the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship. All Session alternatives, with the arithmetic →

What a replacement has to do

  • Start a timed focus session, optionally block distracting websites while the timer runs, record session metadata and duration, and show aggregated analytics/history.

What it still won’t have

  • Native macOS and iOS apps and OS-level app blocking
  • Seamless device sync backed by Session's cloud
  • Built-in AppleScript/Shortcuts automation and deep Apple Calendar automation
  • Official support and updates from the Session developer

What remains hard

  • Product polish and ongoing maintenance
Read the build prompt

First-year cost

Keep paying

Paying is—cheaper in year one.

On cash alone, building overtakes the subscription at 7 seats.

Paid seatsseats

Money you would actually spend

Keep paying
—

Subscription price × seats × 12

Build it
—

AI build —APIs + hosting —

Time you would spend

—

—

What you would spend

What we assumed

The verdict above measures whether you could build it. This one is only about money.

Runnable build prompt

Not run yet
Build a self-hosted Pomodoro web app and browser extension using React (Vite), Node.js (Express), and Postgres. In scope: user signup/login (email+password), a web UI to start/stop configurable timers, a browser extension to block configured websites while a timer is active, a REST API and Postgres schema to record session start/end and metadata, background aggregation jobs to compute daily/weekly analytics, and a simple analytics dashboard. Out of scope: native macOS/iOS apps and OS-level app blocking. Include Slack status integration (opt-in) via Slack Web API. Provide error handling, input validation, JWT auth, automated tests (unit for API, integration test for core flows), Dockerfiles for app + extension build, and deployment instructions for a small VPS (systemd) or PaaS. Ensure privacy: secure storage of user data and clear backup/restore steps.
How we checked4 sources · 3/3 runs agreed · evidence score 67

How the score was reached

  • Partly verdict base52
  • An open-source build was found+5
  • 4 cited sources+3
  • Price verified on pricing page+3
  • 3/3 assessment runs agreed+4
  • Evidence score67

The base comes from the verdict. Everything under it is a check that either happened or did not, and each one is a fact frozen in this record rather than a judgement made at render time - so the same evidence always produces the same number.

How scoring works →

Cited sources · 4

Every page the run actually retrieved.

Integrity checks

What held up, and what did not.

✓ Price read off the page✓ 3 independent runs, one answer✓ Citations limited to fetched pages! 1 moat recorded