Skip to content

Supermetry

Find the bottleneck. Own every event.

Open-source, privacy-first web and product analytics.
One Go binary + PostgreSQL. No cookies.

Latest release License: Apache-2.0 Go and PostgreSQL Tracker about 1.2 KB gzipped GitHub stars

Self-host Docs Website Compare EU Cloud early access Download

The Supermetry dashboard showing visitors, visits, pageviews, bounce rate, visit duration, a 30-day traffic chart, top pages and traffic sources for a sample website

Supermetry is an open-source, self-hosted web analytics platform and a privacy-friendly alternative to Google Analytics. It counts visitors, pageviews, traffic sources, goals and conversions without cookies, and keeps every number in your own PostgreSQL database. Funnels, retention, user journeys, Web Vitals, heatmaps and session replay are included in the open-source release.


Why Supermetry

Most analytics tools make you pick two: privacy, depth, or easy hosting. Supermetry gives you all three.

🪶 Simple to run One Go binary and a PostgreSQL database. Redis is not needed. Installers for Linux, macOS and Windows, plus backup and restore commands.
🔒 Private by design No cookies, no fingerprinting, no raw IP addresses stored. Visitors are counted with a random daily salt that is deleted after about 48 hours. Do Not Track and Global Privacy Control are honoured.
⚡ Light on servers and pages The tracker is about 1.2 KB gzipped. In a 4-hour test one process ingested 200 events per second, 2.88 million events in all, with no loss, no errors, a worst-case p99 latency of 23 ms and under 190 MiB of memory (details).
✅ Numbers you can check Side by side with Plausible Community Edition on identical real-browser traffic, every metric and breakdown matched, in both products and against hand-computed truth (details).
🧭 More than pageviews Goals, funnels, revenue, retention, user journeys, Web Vitals, heatmaps and session replay, all in the open-source release. No feature locks.
🔓 Yours to leave Apache-2.0, a REST API, an MCP endpoint for AI assistants, CSV export and imports from Google Analytics 4, Plausible, Umami, Mixpanel and Amplitude.

A quick tour

A short tour of the Supermetry dashboard: overview, realtime, user journeys, sessions, revenue and Web Vitals

Realtime view with live visitors, visitors per minute and top pages

Realtime

Who is on the site right now, visitors per minute, and the pages, sources and countries they come from. Updates every 5 seconds.
User journeys diagram showing how visitors move between pages

User journeys

See the paths people take from any start page, step by step, and where they leave.
Revenue report with total revenue, revenue over time and revenue by source, channel and campaign

Revenue

Revenue over time, attributed to the sources, channels and campaigns that brought it in.
Web Vitals report with LCP, CLS, INP, FCP and TTFB at the 75th percentile and a daily trend

Web Vitals

LCP, CLS, INP, FCP and TTFB from real visitors, with a daily trend and a breakdown by page, device and country.

Screenshots show the built-in demo project. Every report works the same on your own data.

Features

Analytics

  • Visitors, visits, pageviews, bounce rate, visit duration and time on page, with a realtime view and comparison with the previous period or year.
  • Breakdowns by page, entry and exit page, source, channel, UTM parameters, country, region, city, language, browser, operating system and device. Filters on any dimension, and saved segments.
  • Custom events and properties, goals, funnels, revenue, retention cohorts, user journeys and annotations on the chart.

Product analytics

  • Web Vitals (LCP, CLS, INP, FCP, TTFB), heatmaps with click and scroll maps, and session replay, each opt-in per project.
  • A sessions explorer, an events explorer and user profiles with identify (opt-in per project).

Teams and integrations

  • Organizations and projects, roles, two-factor sign-in, shareable links and API keys.
  • Alerts with email, webhook, Slack, Discord and Telegram delivery, and scheduled email reports.
  • A REST API and an MCP endpoint, CSV export, and imports from Google Analytics 4, Plausible, Umami, Mixpanel and Amplitude.

Operations

  • PostgreSQL only, with time partitions that are dropped for retention instead of bulk deletes.
  • Backup and restore commands, a protected metrics endpoint and a data health page.
  • Country lookups from a bundled DB-IP database, with optional region and city detail from MaxMind GeoLite.

Quick start

Linux and macOS:

curl -fsSL https://github.com/velixio/supermetry/releases/latest/download/install.sh | sh

Windows PowerShell:

irm https://github.com/velixio/supermetry/releases/latest/download/install.ps1 | iex

To see what the installer would do first, add --dry-run, for example curl -fsSL https://github.com/velixio/supermetry/releases/latest/download/install.sh | sh -s -- --dry-run. Docker Compose, with a bundled PostgreSQL:

git clone https://github.com/velixio/supermetry.git && cd supermetry
cp .env.example .env    # set SUPERMETRY_SECRET_KEY and POSTGRES_PASSWORD
docker compose -f deploy/docker-compose.yml --profile bundled-db up -d --build

Docker serves the dashboard on http://localhost:8787/app; see Docker Compose for an external database.

Open <your URL>/app and create your admin account. Then add the tracking script to your site. Copy the exact snippet from Settings, Installation in the dashboard. It looks like this:

<script defer src="https://analytics.example.com/js/YOUR_SITE_ID.js"></script>

Just want to look around? After you sign up, choose Explore with demo data. Supermetry creates a project with 90 days of realistic sample traffic and keeps it moving while you explore. It deletes itself after 24 hours, and you can remove it earlier.

See deploy/README.md for unattended installs, manual deployment, service management, upgrades, backups and reverse proxies, and docs/guide/configuration.md for every setting.

Requirements

  • PostgreSQL (18 is what CI runs). Redis is not needed; a single instance runs without it.
  • Release binaries for Linux, macOS and Windows on amd64 and arm64, plus 32-bit Linux armv6/armv7 for Raspberry Pi.

Supermetry vs Plausible, Umami and Google Analytics

Supermetry Plausible CE (self-hosted) Umami Google Analytics
Self-hosted Yes Yes Yes No
License Apache-2.0 AGPL-3.0 MIT Proprietary
What you run One Go binary + PostgreSQL Elixir app + PostgreSQL + ClickHouse Node.js app + PostgreSQL Nothing; Google hosts it
Cookies None None None Yes
Funnels, journeys and revenue Yes No (Plausible Cloud only) Yes Yes
Session replay and heatmaps Yes No Yes No

Checked against the Plausible Community Edition and Umami 3.4 source code in October 2026. Corrections are welcome in an issue.

Privacy modes

Supermetry collects page paths, referrers and campaigns by default, and never uses cookies or stores raw IP addresses. For the strictest setup, switch the whole server to anonymous mode.

anonymous identified (default)
Visitors, visits, pageviews and charts over time yes yes
Country, device, browser, operating system and channel yes yes
Page paths replaced by a placeholder unless you list public paths yes (query strings are always dropped)
Sessions and events explorers, imports no yes
Referrers, UTM campaigns, event properties, user profiles no yes, in projects with profiles on (the default for new projects)

Set SUPERMETRY_TRACKING_MODE=anonymous on the server to choose the strictest mode, and turn profiles off in a project's settings to stop keeping referrers, campaigns and event properties for that project. Session replay and heatmaps are separate opt-ins. See Tracking and privacy for exactly what each setting records.

FAQ

Is Supermetry a Google Analytics alternative?

Yes. It measures visitors, pageviews, sources, goals and conversions without cookies, and the data stays in your own PostgreSQL database.

How is it different from Plausible or Umami?

Plausible's self-hosted edition needs ClickHouse next to PostgreSQL, and Umami runs on Node.js. Supermetry is a single Go binary and PostgreSQL only, and it includes funnels, revenue, retention, session replay and heatmaps in the open-source release.

Does it use cookies or store IP addresses?

It sets no cookies. IP addresses are used to look up the country (and city, if you add MaxMind data) and to derive a daily-salted visitor ID, and are not stored. See Tracking and privacy.

Do I need a cookie banner?

That depends on the laws that apply to you and on what else your site runs, so ask your own counsel. Supermetry is designed to need as little consent as possible: no cookies, no raw IPs and no cross-site tracking, and it honours Do Not Track and Global Privacy Control.

Can I move my existing data in?

Yes. Import from Google Analytics 4, Plausible, Umami, Mixpanel or Amplitude in the project settings, then export to CSV whenever you like.

What does it need to run?

A small server and PostgreSQL. In the 4-hour test above, a single process used under 190 MiB of memory at a sustained 200 events per second.

Is there a hosted version?

An EU-hosted Cloud is on the way. Join early access. Self-hosting stays free and complete.

Documentation

Build from source

You need Go and Bun.

make build                       # builds the dashboard, then the binary in bin/
export SUPERMETRY_DATABASE_URL=postgres://user:pass@127.0.0.1:5432/supermetry
export SUPERMETRY_SECRET_KEY=$(openssl rand -base64 32)
export SUPERMETRY_BASE_URL=http://localhost:8787
./bin/supermetry

Migrations run at startup. bin/supermetry --help lists the other commands (backup, restore, migrate, close-days, geoip).

Development

You need Go, Bun and Docker. No database settings are needed: unless .env sets SUPERMETRY_DATABASE_URL (or SUPERMETRY_TEST_DSN for tests), make starts PostgreSQL in Docker on port 5433 and uses it. make dev-db-down stops it; its data is kept.

make dev     # watch mode: open http://localhost:8787 (UI hot reload, Go restarts on change; listens on 127.0.0.1 only)
make run     # embedded build served on :8787
make dev-embedded  # one-shot embedded UI build and run, no watching
make test    # Go tests
make lint    # go vet and gofmt

Dashboard code is in web/ and uses Bun (bun install --frozen-lockfile, bun run test).

Contributing and security

Issues and pull requests are welcome. See CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md.

If Supermetry is useful to you, a ⭐ helps other people find it.

License

Apache-2.0. Third-party notices are in NOTICE and THIRD_PARTY.md. Wallpapers behind the screenshots are credited in docs/assets/readme/CREDITS.md.

views