finds.dev← search

// the find

umami-software/umami

★ 37,147 · TypeScript · MIT · updated Jun 2026

Umami is a modern, privacy-focused analytics platform. An open-source alternative to Google Analytics, Mixpanel and Amplitude.

Umami is a self-hosted web analytics tool built on Next.js and PostgreSQL, designed as a drop-in replacement for Google Analytics without the tracking baggage. It supports multiple websites, teams, and has grown well beyond pageview counting into funnels, cohorts, and revenue tracking. The target is anyone running their own server who wants analytics data they actually own.

1. Dual-database architecture is genuinely interesting: PostgreSQL handles the relational data (users, websites, reports) while ClickHouse is available for high-volume event ingestion — most self-hosted analytics tools make you pick one. 2. The Prisma migration history is clean and well-paced across 19 migrations; you can read the product roadmap just by scanning the migration names. 3. Cypress e2e coverage for the API layer (users, teams, websites) means upgrades are less of a gamble than with most self-hosted tools. 4. The tracking script is tiny and loads async, so it does not meaningfully affect your page's performance budget.

1. Running both PostgreSQL and ClickHouse in production is real operational overhead — the docker-compose only shows Postgres, so the ClickHouse path is underdocumented for self-hosters who actually need it. 2. First-run setup auto-creates an admin account with username 'admin' and password 'umami'; anyone who forgets to change it is one port-scan away from a problem. 3. The cloud-managed version and the self-hosted version share a codebase but diverge on features; it is not always obvious which capabilities require the paid cloud tier. 4. No built-in alerting — if traffic drops to zero because your tracking script broke, Umami will not tell you.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →