A full analytics suite you can host yourself: page views, goals, funnels, heatmaps and a visitor log, with the data staying on your own server. The paid tier is the hosted version.
Build me the analytics I actually need instead of a hosted Matomo — and note what the verdict means. Matomo is open source and self-hosting it is free, so the fee is hosting. The reason this is ALMOST rather than YES is different: **fifteen years of accumulated reports** — cohorts, funnels, site search, campaign attribution, e-commerce — is a lot of reporting nobody wants to rewrite. If you need all of it, self-host the original. If you need six numbers you can defend, build. STACK - Node 20+ with Fastify - SQLite through better-sqlite3, WAL mode - A tracking script under 3KB gzipped, from my own domain - Server-rendered dashboard, charts as inline SVG - Caddy in front THE DATA MODEL - sites: id, domain, name, timezone, salt, is_public - pageviews: id, site_id, path, query, referrer_host, referrer_url, utm_json, country, region, lang, device, browser, os, screen_bucket, status, duration_ms, visitor_hash, session_id, is_entry, is_exit, bot, prefetch, created_at - events: id, site_id, name, category, action, label, value_num, path, visitor_hash, bot, created_at - searches: id, site_id, keyword, result_count, path, at — site search, which is one of the most useful reports in the original and costs nothing to record - goals, conversions, and for e-commerce: orders, order_items, with the currency - Record more than you publish. A signal not captured today starts from zero the day somebody wants it IDENTITY WITHOUT A COOKIE - visitor_hash is HMAC-SHA256 of address, user agent and a per-site salt rotating daily; the inputs are discarded immediately - Nothing written to the visitor's browser - Daily rotation means 'visitors today' is exact and 'visitors this month' is an estimate, and the dashboard says so beside the number - Carry the previous salt for a grace period so a session across the rotation is not counted twice - Matomo can run with cookies for longer-horizon identity; doing without is a deliberate trade and the honest one for most sites THE VISITOR LOG, WHICH IS THE FEATURE PEOPLE MISS - A chronological list of sessions with the pages, referrer, country, device and goals for each - It is what people open when a number looks wrong, and it is simply a query over the rows you already have - It is also the most personal thing this stores, so it is behind authentication, retained for a stated window, and never published WHAT TO BUILD, IN ORDER - Views, visitors, sessions, bounce rate, time on page — each with its definition written beside it - Top pages, referrers with the full URL kept, countries, devices, browsers, operating systems, languages - Entry and exit pages, and campaign parameters parsed into their own columns - Goals with conversion rates - Site search: what people looked for and what returned nothing. That second list is a content backlog - Funnels as an ordered set of paths or events with a window, computed at query time. Strict or loose ordering, stated - Cohorts and retention only if you will actually use them - Everything filterable by everything, with a comparison against the previous period BOTS - Flag, never drop, and exclude through a SQL view so the filtering lives in one place - User agent list, whether the script executed at all, behavioural signals, and referrer spam counted separately rather than let into 'top sources' - Prefetches excluded from views, redirects not counted, and only a 2xx GET is a page view OPERATIONS - .env: DATABASE_PATH, BASE_URL, HASH_SALT, GEOIP_DB_PATH, SESSION_SECRET - Migrations on boot, each once; country from a local database file, never an external API - Nightly backup off the machine, restore script - Health endpoint WHAT MATTERS MOST Bot flagging and written definitions. Build collection and the excluding view before the dashboard, then reconcile a week against the access log. Six numbers you can explain beat sixty you cannot.
What you lose
- Reports that took fifteen years to accumulate — cohorts, funnels, site search, campaign attribution, e-commerce
- A visitor log detailed enough to satisfy an audit, which most privacy-first tools deliberately do not keep
- Import from other analytics products, including server log files
- A plugin ecosystem, and someone maintaining the upgrade path between major versions
If you would rather not build
- Google Analytics, if the privacy position is not the reason you are here
What it costs
as published on their pricing page
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| — | $26/mo | — | — |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
Umami
$0A small analytics server that runs beside an existing database.
umami-software/umamifree · open source
Why this verdict
our own opinion · changed only by a person
52/100
Verdict kinda at 52: the collection is easy, the reporting surface is enormous. If you need more than four reports, self-hosting Matomo beats writing them.
History
tracked since 10 Aug 2026 · nothing is ever overwritten
Questions about Matomo
answered from the record above
Is Matomo free?
No — the plan we track is $26 a month. Matomo Cloud from around $26/month for 50,000 hits; the on-premise version is free and is the point of the project.
Can you replace Matomo by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 52 out of 100, build time a weekend. Read what you lose before you decide.
How much does Matomo cost?
$26 a month on Cloud Essentials — $312 a year. Recorded 9 Aug 2026.
What do you lose by replacing Matomo?
Reports that took fifteen years to accumulate — cohorts, funnels, site search, campaign attribution, e-commerce; A visitor log detailed enough to satisfy an audit, which most privacy-first tools deliberately do not keep; Import from other analytics products, including server log files; A plugin ecosystem, and someone maintaining the upgrade path between major versions. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Matomo?
Yes: Matomo, Umami. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

