Self-Hosted Analytics: Plausible vs Umami vs Matomo — Honest Comparison
Compare the top three self-hosted web analytics platforms. Covers features, resource usage, GDPR compliance, accuracy, and which one fits your use case best.
Why Self-Host Analytics?
Google Analytics 4 is a privacy nightmare. It sends your visitors' data to Google, requires cookie consent banners in the EU, and its interface is overwhelming for most teams. Self-hosted analytics give you accurate data, full privacy compliance, and zero dependency on third parties.
Server infrastructure: production and staging environments connected via VLAN with offsite backups.
The Three Contenders
Umami
Umami is the minimalist choice. A single Docker container with a PostgreSQL or MySQL backend. It tracks page views, events, referrers, and basic device info — nothing more.
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
environment:
DATABASE_URL: postgresql://umami:password@postgres:5432/umami
DATABASE_TYPE: postgresql
HASH_SALT: your-random-salt-here
ports:
- "3000:3000"
depends_on:
- postgres
restart: unless-stopped
Resource usage: ~50MB RAM, ~180MB Docker image.
Tracking script: 2KB gzipped.
Database growth: ~1MB per 10,000 pageviews.
Get more insights on Self-Hosted
Join 2,000+ engineers who get our weekly deep-dives. No spam, unsubscribe anytime.
Plausible
Plausible is privacy-focused with a beautiful dashboard. It uses ClickHouse for analytics storage, making it extremely fast for queries over large datasets.
services:
plausible:
image: ghcr.io/plausible/community-edition:latest
environment:
DATABASE_URL: postgres://plausible:password@postgres:5432/plausible
CLICKHOUSE_DATABASE_URL: http://clickhouse:8123/plausible
SECRET_KEY_BASE: your-64-char-secret-here
BASE_URL: https://analytics.example.com
DISABLE_REGISTRATION: invite_only
depends_on:
- postgres
- clickhouse
ports:
- "8000:8000"
clickhouse:
image: clickhouse/clickhouse-server:latest
volumes:
- clickhouse_data:/var/lib/clickhouse
Resource usage: ~200MB RAM (Plausible) + ~500MB RAM (ClickHouse).
Tracking script: under 1KB gzipped.
Database growth: ~500KB per 10,000 pageviews thanks to ClickHouse compression.
Matomo
Matomo (formerly Piwik) is the feature-complete option. It matches Google Analytics feature-for-feature — funnels, cohorts, custom dimensions, A/B testing, heatmaps, session recordings.
services:
matomo:
image: matomo:latest
environment:
MATOMO_DATABASE_HOST: mariadb
MATOMO_DATABASE_USERNAME: matomo
MATOMO_DATABASE_PASSWORD: password
MATOMO_DATABASE_DBNAME: matomo
volumes:
- matomo_data:/var/www/html
ports:
- "8080:80"
mariadb:
image: mariadb:11
environment:
MYSQL_ROOT_PASSWORD: root-password
MYSQL_DATABASE: matomo
MYSQL_USER: matomo
MYSQL_PASSWORD: password
Resource usage: ~150MB RAM (PHP-FPM) + ~200MB (MariaDB).
Tracking script: ~22KB gzipped.
Database growth: ~5MB per 10,000 pageviews.
Cloud to self-hosted migration can dramatically reduce infrastructure costs while maintaining full control.
Feature Comparison
| Feature | Umami | Plausible | Matomo |
|---|---|---|---|
| Page views | Yes | Yes | Yes |
| Custom events | Yes | Yes | Yes |
| Funnels | No | Yes (paid) | Yes |
| Goals/Conversions | Basic | Yes | Yes |
| E-commerce tracking | No | Revenue goals | Full |
| Heatmaps | No | No | Plugin |
| Session recording | No | No | Plugin |
| Cookie-free | Yes | Yes | Optional |
| GDPR compliant | Yes | Yes | Yes (with config) |
| Real-time dashboard | Yes | Yes | Yes |
Custom Event Tracking
Umami
// Track a custom event
umami.track("signup-click", { plan: "pro", source: "landing-page" });
Plausible
Free Resource
Free Cloud Architecture Checklist
A 47-point checklist covering security, scalability, cost optimization, and disaster recovery for production cloud environments.
// Track a custom event
plausible("Signup", { props: { plan: "pro", source: "landing-page" } });
Matomo
// Track a custom event
_paq.push(["trackEvent", "Signup", "Click", "Pro Plan"]);
Docker Compose defines your entire application stack in a single YAML file.
Our Recommendation
- Choose Umami if you want simple, lightweight analytics with minimal resource usage. Best for blogs, documentation sites, and small SaaS apps.
- Choose Plausible if you want beautiful dashboards, goal tracking, and can handle the ClickHouse dependency. Best for marketing teams and content sites.
- Choose Matomo if you need full GA4 replacement with funnels, cohorts, and e-commerce tracking. Best for large applications and enterprises.
At TechSaaS, we run Umami (analytics.techsaas.cloud) because it fits our philosophy — minimal, fast, privacy-respecting. For clients who need more features, we deploy Plausible.
Need help choosing and deploying analytics? Contact [email protected].
Related Service
Cloud Solutions
Let our experts help you build the right technology strategy for your business.
Need help with self-hosted?
TechSaaS provides expert consulting and managed services for cloud infrastructure, DevOps, and AI/ML operations.
We Will Build You a Demo Site — For Free
Like it? Pay us. Do not like it? Walk away, zero complaints. You will spend way less than hiring developers or any agency.
No spam. No contracts. Just a free demo.