👉 Open the link⬇ Download the PDF
Umami is a privacy-first web analytics tool and an alternative to Google Analytics. Licence: MIT. Repo: https://github.com/umami-software/umami
What I tested
- Built the tracker from source in a sandbox with an empty environment (pnpm install, then the rollup tracker build).
- Build time: about 1.5 seconds. Output
public/script.js: 4,773 bytes. - Searching the built script for
document.cookie: 0 matches. - The only browser storage it reads is a
umami.disabledopt-out flag in localStorage. - It can respect Do Not Track when you enable the
data-do-not-trackoption on the script tag.
Run it (Docker Compose, from the repo)
- Clone the repo:
git clone https://github.com/umami-software/umami.git - In
docker-compose.yml, replace theAPP_SECRETplaceholder with a long random string. - Start it:
docker compose up -d - Open http://localhost:3000, log in, add your website and copy the tracking snippet into your page.
From source
- Needs Node.js 18.18+ and PostgreSQL 12.14+.
- Create
.envwithDATABASE_URL=postgresql://user:password@localhost:5432/db, thenpnpm installandpnpm run build.
3 uses
- Traffic and top pages for a personal site or blog.
- Campaign links and conversions for a small shop.
- A privacy-friendly stats page for client projects.
Sources
- Umami README and source: https://github.com/umami-software/umami (tracker:
src/tracker/index.ts) - This is a demo of one build, not a legal opinion: check your local privacy rules yourself.