Umami
Privacy-first web analytics
What is Umami?
Umami is a simple, privacy-first analytics platform that tracks page views, referrers, campaigns and events without cookies. It is lightweight, easy to self-host, and a common replacement for Google Analytics when you want visitor data kept private.
Best for
Site owners who want analytics without cookie banners or vendor lock-in
Why choose Umami
Umami gives you the numbers you actually use — visitors, page views, referrers, top pages, simple events — without cookies, without a consent banner, and without a heavyweight script slowing your site down. Because it aggregates rather than tracking individuals, it sidesteps most of the privacy rules that make analytics a legal chore, and because you host it, the data never leaves your server. For someone who wants to know whether a page is being read, it is the right amount of analytics.
Replaces
- Google Analytics
- Plausible
- Fathom Analytics
Key features
- Cookieless tracking
- Events, campaigns and funnels
- Multi-site and team sharing
- Small script, fast loading
What to watch out for
It does not try to be a full analytics suite, and teams used to the big platforms will miss things: multi-step funnels, deep user journeys, audience segmentation and integrations are limited or absent. Data collected before you configure something properly is gone — there is no backfill, so decide your events and goals before launch. Historical retention depends on your database, and as data grows, query performance is something you will want to watch. Self-hosting also means you are responsible for the tracking endpoint's availability.
How to deploy
- Docker
- Vercel
- Node.js
Getting started
Deploy with an external Postgres database and enable the website entry before adding the script to any site. Install the tracking script directly in your site's template rather than via a tag manager, so a third-party failure cannot silently kill your analytics. Define your events — signups, downloads, outbound clicks — before you launch, because retroactive reporting is not possible. Turn on the built-in bot filtering and check the dashboard after a day of real traffic to confirm it is recording what you expect.
Typical setup
It is normally deployed on a small VPS with an external Postgres database, serving the tracking script to one or more sites. Event and goal definitions are configured per site before launch, since data is never backfilled. Self-hosters often put the dashboard on a separate hostname from the sites being measured, so an analytics outage never affects the site itself, and they keep the dashboard behind authentication.
Who should look elsewhere
Not a replacement for a full analytics platform. There are no deep funnels, no user-journey analysis and no audience segmentation, and data collected before you configure a goal is simply gone. Anyone whose business depends on granular attribution should keep a heavier tool alongside it rather than replacing it.
Project health
- GitHub stars: 39,104
- Last code push: 2026-09-29
- Open issues: 127
- Status: actively developed
Figures pulled from the GitHub API and refreshed periodically.