← all SaaS
Self-host Google Analytics
Web analytics ·
Category: observability & analytics
GA4 is free for most sites, but the self-host alternatives win on simplicity, GDPR posture, and not feeding Google. The privacy-focused options are the closest fit; Matomo is the most-features-comparable.
Google Analytics pricing anchor: Free (GA4); $150k+/yr for GA360 / Analytics 360.
- GitHub
- ★ 24.8k · last commit 2d ago · 71 open issues
- License
-
AGPL-3.0 - Setup time
- 10min docker-compose
- Monthly cost
- $5 VPS for sites under ~100k pageviews/mo (Plausible + Postgres + ClickHouse).
Migration sketch. GA does not export raw events for free, so historical-data migration is impractical. Practical path: install both side-by-side, drop the GA snippet after a 30-day overlap. Plausible imports GA4 metadata (property → site mapping) via Settings → Import from Google Analytics if you connect the GA API once.
Good fit forMarketing sites and SaaS landing pages that want pageviews + sources + UTM tracking with no cookie banner.
Weak atNo funnels-as-deep as GA4; not built for ecommerce attribution out of the box.
- GitHub
- ★ 36.6k · last commit 5d ago · 143 open issues
- License
-
MIT - Setup time
- 10min docker-compose
- Monthly cost
- $5 VPS — Next.js + Postgres or MySQL.
Migration sketch. Same constraint as Plausible — GA's free tier doesn't release raw event data. Run Umami in parallel with GA for an overlap, then cut over. Umami v2 exposes a `/api/send` endpoint compatible with simple custom-event reporting if you migrate event scripts.
Good fit forDevs who want a single-binary-feel analytics stack and a clean dashboard.
Weak atNo funnel builder in OSS edition; cohort analysis is shallow.
- GitHub
- ★ 21.5k · last commit today · 2550 open issues
- License
-
GPL-3.0 - Setup time
- 30min (PHP + MySQL stack)
- Monthly cost
- $10 VPS for moderate-traffic sites; MySQL is the tightest constraint.
Migration sketch. Matomo includes the only credible GA importer in the OSS space — Settings → System → Import from Google Analytics. It uses the GA4 Data API to backfill aggregated daily reports (not raw events). Real-time data requires running both pixels in parallel during cutover.
Good fit forTeams that need the closest-to-GA feature parity (heatmaps, funnels, ecommerce attribution).
Weak atPHP/MySQL feels dated; default dashboard is busier than Plausible/Umami.
In a terminal? npx os-alt google-analytics prints this table —
how the CLI works →