← all SaaS

Self-host Fathom Analytics

Privacy-first web analytics · Category: observability & analytics

Fathom Analytics is a paid Google-Analytics replacement that doesn't use cookies, doesn't fingerprint, and reports a small set of useful metrics (pageviews, referrers, devices, top pages). The self-hostable replacements all hit the same target — privacy-first, single-page dashboard, light tag — and differ mostly on data backend and event-tracking depth.

Fathom Analytics pricing anchor: $15/mo for 100k pageviews; $44/mo for 400k; $80/mo for 1M.

Plausible Analytics plausible/analytics alive

GitHub
★ 24.8k · last commit 2d ago · 71 open issues
License
AGPL-3.0
Setup time
15min docker-compose (Elixir app + ClickHouse + Postgres)
Monthly cost
$10/mo VPS; ClickHouse is the heaviest piece, fine on a single 2GB instance for a few sites.
Migration sketch. Use the official compose at github.com/plausible/community-edition. Replace the Fathom snippet with Plausible's `<script defer data-domain="yoursite.com" src="https://plausible.example.com/js/script.js">`. There's no first-party Fathom importer (Fathom doesn't expose historical pageview data via API) — accept the calendar reset and start clean. Goals and custom events port one-for-one with the same hash-based event API.
Good fit forTeams that want the closest Fathom-shaped UX and dashboard without leaving open source.
Weak atClickHouse is overkill for tiny sites and adds to the ops surface vs SQLite-backed alternatives.

Umami umami-software/umami alive

GitHub
★ 36.6k · last commit 5d ago · 143 open issues
License
MIT
Setup time
10min docker-compose (Next.js + Postgres or MySQL)
Monthly cost
$5/mo VPS — Postgres-based, very light.
Migration sketch. Pull `ghcr.io/umami-software/umami:postgresql-latest` plus `postgres:16` via compose. Replace Fathom snippet with `<script defer src="https://umami.example.com/script.js" data-website-id="..."></script>`. Umami's UI is the closest spiritual match to Fathom — single-page, beautiful, fast. Custom events via `umami.track('event-name')`.
Good fit forMost teams — Umami is the easiest to install and the cheapest to run.
Weak atFunnel/cohort analysis — Umami stays focused on top-of-funnel reporting, no deep funnel exploration.

GoatCounter arp242/goatcounter alive

GitHub
★ 5.68k · last commit 2d ago · 36 open issues
License
EUPL-1.2
Setup time
5min single-binary
Monthly cost
$3/mo VPS — Go binary + SQLite, runs anywhere.
Migration sketch. Download the GoatCounter binary from arp242.net/goatcounter, run `goatcounter serve -listen :443 -tls letsencrypt`. Add `<script data-goatcounter="https://yourcode.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>` to your site (or self-host the script). GoatCounter is the lightest of the three — single binary, embeds SQLite, almost zero ops.
Good fit forPersonal sites and small projects that want analytics with the least operational footprint.
Weak atMulti-site dashboards and team accounts are thinner than Plausible/Umami; default UI is functional rather than pretty.

In a terminal? npx os-alt fathom-analytics prints this table — how the CLI works →