Analytics and monitoring decision

Umami Cloud

A small team or single competent developer can build a useful, privacy-first analytics replacement covering core pageview/event collection and basic dashboards in about a week; richer features and hosted convenience are the main reasons to pay.

Visit website
Subscription$9/month
Initial build30 hours
Monthly upkeep5 hours + $35
Evidence2/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

  • Collect anonymous pageview and event hits from a tiny tracking script, store them in a relational DB, and display aggregated metrics in a simple dashboard.

What it still won’t have

  • Advanced insights: funnels, retention cohorts, journeys
  • Session replays and heatmaps
  • Teams/collaboration features and role management
  • Managed cloud convenience and hosted backups
  • Polish, integrations, and extensive tracking config

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 5 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 minimal privacy-first web analytics service using Node.js (Express) + Postgres and a vanilla JS tracking snippet. In scope: (1) produce a <2KB tracking script that sends anonymous pageview and custom-event POSTs to /collect, (2) implement an Express collector that validates payloads and writes raw events and daily aggregates into Postgres, (3) implement REST endpoints to return aggregated metrics (pageviews, visitors, bounce rate) for a single site, (4) build a simple React single-page dashboard that displays metrics and time-series charts, (5) provide Docker Compose for local deployment and a managed-Postgres-ready env var config. Out of scope: funnels, session replay, heatmaps, teams, advanced attribution, and managed hosting. Include input validation, error handling, basic unit tests for collector and aggregation logic, and a short README with deployment steps.
How we checked4 sources · 2/3 runs agreed · evidence score 86

How the score was reached

  • Build verdict base78
  • An open-source build was found+5
  • 4 cited sources+3
  • Evidence score86

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 not confirmed on the page — this pricing page renders its price in the browser! 2 of 3 runs agreed; the verdict is the majority✓ Citations limited to fetched pages! 1 moat recorded