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
Subscription$4.99/month ✓ verified
Initial build30 hours
Monthly upkeep4 hours + $30
Evidence3/3 runs agree

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.

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 ischeaper 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