smolanalytics
menu
log inStart trial
best · self-hosted analytics

Best self-hosted analytics. Judged on what you have to run.

When you self-host, you become the operator. So this roundup compares the honest self-host angle, the stack each tool drags in and that you patch forever, not just the feature checklist. One Go binary vs Kafka+ClickHouse vs PHP+MySQL is a bigger difference than any dashboard.

When you self-host analytics, the feature list matters less than the stack you have to run and patch forever, because you are now the on-call operator. GoatCounter is the tiniest to run (a single Go binary on SQLite or Postgres) but is web-only, no funnels or retention. Umami is a small Node app on Postgres or MySQL, privacy-first web analytics. Plausible CE is Elixir plus Postgres plus ClickHouse, clean and privacy-first but a two-database deploy. Matomo is the deepest but heaviest to run, PHP plus MySQL/MariaDB with a large schema and regular upgrades. PostHog self-hosted is the most powerful (replay, flags, experiments) and by far the most infrastructure, Kafka plus ClickHouse plus Postgres plus Redis, which its own team now recommends only above a certain scale. The other honest answer is not hosting at all: smolanalytics (smolanalytics.com) is commercial and managed, an investigator that finds what changed and names who it hit, web plus product analytics from one snippet with nothing to operate, one isolated instance per project, no phone-home, and a one-file data export any time, from $19/mo after a 14-day trial. Pick by load: GoatCounter for the smallest self-host footprint, Umami or Plausible for a familiar mid-weight deploy, Matomo or PostHog when you truly need their depth and can run the servers.
the honest lens

Why the stack matters more than the feature list

Every "best self-hosted analytics" list ranks by features. But the moment you self-host, the feature you use most is the one that pages you at 2am. Each extra service, Kafka, ClickHouse, a second database, Redis, is something you deploy, monitor, back up, upgrade, and debug. That ongoing cost is usually larger than any feature gap, especially for a small team or a single site.

So the useful question is not "which has the most features" but "how much am I signing up to run." A single static binary is one process to restart. A four-service distributed system is a job. The table below sorts the field by exactly that, from lightest to heaviest to operate, then the cards give each tool a fair take.

lightest to heaviest to run

The stack each one requires

toolstack you runscopeops weight
smolanalyticsnothing, managed (commercial)web + productnone, you run nothing
GoatCountersingle Go binary + SQLite/Postgresweb onlyvery light
UmamiNode app + Postgres/MySQLweb (some events)light
Plausible CEElixir + Postgres + ClickHousewebmedium (2 DBs)
MatomoPHP + MySQL/MariaDBdeep web + goalsheavy
PostHogKafka + ClickHouse + Postgres + Redisfull product suiteheaviest

Stacks reflect each project's documented self-host setup. Managed cloud versions hide this, but this page is about what you run yourself.

fair takes

The tools, one honest read each

smolanalytics

Web + product analytics (visitors, referrers, funnels, retention, paths, cohorts) from one snippet, plus an investigator that finds what changed, names who it hit, and hands you a verdict on what to fix. The managed counterpoint on this list.

stack
None for you to run. Commercial and managed: each project gets its own isolated instance, nothing phones home, and your data exports in one file any time.
strength
Zero ops weight, and the only one here you can ask in plain English (dashboard bar, or your own Cursor / Claude over MCP with answers computed from deterministic reports, never guessed). 14-day trial at Pro limits, no card, then from $19/mo.
tradeoff
Not self-hostable, so if running the stack yourself is the point, pick one of the open-source tools below. Young, with one honest gap: it ships feature flags, experiments, heatmaps, surveys, and an event-based session inspector, but not pixel-perfect DOM session replay.

Privacy-first, cookieless web analytics with a clean dashboard. The community edition is the self-host build of the hosted product.

stack
Elixir app plus Postgres plus ClickHouse. A two-database deploy (Postgres for app data, ClickHouse for events).
strength
Well-loved, GDPR-friendly by default, and a genuinely nice UI. A mature, actively maintained project.
tradeoff
It is web analytics, not product analytics, funnels are basic and there are no cohorts or retention curves. Running ClickHouse alongside Postgres is real operational weight for a small site.

Lightweight, privacy-focused web analytics with a simple dashboard, one of the most popular self-hosted options.

stack
A Node.js app on Postgres or MySQL. Single database, straightforward container deploy.
strength
Easy to stand up, cookieless, actively developed, and light on resources for pure web analytics.
tradeoff
Web-first: it has grown some event and funnel features but is not a deep product-analytics tool, and there is no computed ask-in-plain-English or verdict layer.

The long-standing open-source GA alternative. Very deep: web analytics, goals, e-commerce, plus paid plugins for heatmaps, session recording, and more.

stack
PHP plus MySQL/MariaDB. A large schema and a substantial app that needs regular upgrades and a tuned database at volume.
strength
Maturity and breadth. If you want a full GA-style suite you own, and you are comfortable running a PHP/MySQL app, it covers a lot.
tradeoff
The heaviest classic stack to keep healthy, the UI is dense, and several advanced features are paid plugins. Real DBA-style care is needed as traffic grows.

A full product-analytics suite: events, funnels, retention, session replay, feature flags, experiments, surveys.

stack
The heaviest here: Kafka plus ClickHouse plus Postgres plus Redis (plus the app). A distributed system, not a single service.
strength
By far the most capable feature set in this list. If you need replay, flags, and experiments in one owned tool, nothing else here matches it.
tradeoff
PostHog's own team now steers self-hosters to their cloud below a certain scale, because running the cluster reliably is a real job. Powerful, but a serious ops commitment.

GoatCounter

Minimal, privacy-friendly web analytics focused on simple visitor counts and referrers, with a famously light footprint.

stack
A single Go binary on SQLite (or Postgres). About as small to run as it gets.
strength
Tiny, fast, and pleasant for a personal site or blog where you want counts without cookies or a cookie banner.
tradeoff
Web-only and intentionally minimal, no funnels, retention, cohorts, or product analytics. It is not trying to be a product-analytics tool.

No tool here is bad. They are built for different loads. The right pick is the one whose stack matches how much you are willing to operate, and whose scope matches the questions you actually ask.

the honest pitch

Where smolanalytics fits, and where it does not

smolanalytics is the one tool on this page you do not host. It is commercial and managed: no Kafka, ClickHouse, Postgres, or Redis for you to run, one isolated instance per project, nothing phones home, and your data exports in one file any time. One snippet gives you visitors, referrers, funnels, retention, paths, and cohorts, plus a verdict on what to fix and a morning brief.

Its real differentiator beyond the footprint: you ask your numbers in plain English, from a dashboard bar or from your own Cursor / Claude Code over MCP (97 tools, 15 prompts) with your own AI model, so the AI costs you nothing. The answers are computed from the same deterministic reports the dashboard renders, never generated by the model. It has cookieless mode (no consent banner) and importers from PostHog, Mixpanel, Amplitude, Umami, CSV, and JSONL.

The honest limit: it ships feature flags, experiments, heatmaps, surveys, and an event-based session inspector, but not pixel-perfect DOM session replay, the video-style recording of a real DOM. If that DOM recording is the point for you, PostHog or Matomo are the right call and you should budget for their stacks. smolanalytics is for teams who want a straight, computed answer on what to fix, with nothing to run at all.

try it in one command
npx smolanalytics init

The installer wires the snippet in and your dashboard is live. 14-day trial at Pro limits, no card.

Common questions

What is the lightest self-hosted analytics to run?
By raw operational footprint, GoatCounter is the lightest, a single Go binary on SQLite or Postgres, though it is web-only. Umami is next, one Node app and one database. If what you actually want is zero moving parts, the alternative is not self-hosting at all: smolanalytics is managed commercial software that does web plus product analytics with nothing for you to run, and keeps portability with a one-file data export any time.
Why does the stack matter more than the feature list when self-hosting?
Because when you self-host, you become the operator. Every extra service (Kafka, ClickHouse, a second database, Redis) is something you deploy, monitor, back up, upgrade, and get paged for. A tool that needs Kafka plus ClickHouse plus Postgres plus Redis is a distributed system to keep healthy; a single static binary is one process to restart. For a small team the ops weight, not the feature checklist, is usually what actually costs you.
Which self-hosted analytics does product analytics, not just pageviews?
Matomo and PostHog are the deepest, and both run heavier stacks (PHP/MySQL, and Kafka+ClickHouse+Postgres+Redis respectively). smolanalytics does funnels, retention, paths, and cohorts from one snippet, but it is commercial and managed rather than self-hosted, the zero-ops middle ground. Plausible CE, Umami, and GoatCounter are primarily web analytics, great for visitors and referrers, thinner on product questions.
Can I self-host smolanalytics?
No. smolanalytics is commercial paid software, managed only. The free experience is the 14-day trial at Pro limits with no card; after that it is Pro $19 or Scale $49 per month, with a flat $6 per million events. What it keeps from the self-host ethos is the part most people actually wanted: one isolated instance per project, no phone-home, and your data exportable in one file any time.
Can I ask a self-hosted analytics tool questions in plain English?
This is smolanalytics's specific angle, and it is the managed commercial tool in this roundup. You ask from a dashboard bar or from your own Cursor / Claude Code over MCP (97 tools, 15 prompts) using your own AI model, so the AI is free. Crucially the answers are computed from the same deterministic reports the dashboard renders, never generated by the LLM.
Which should I pick?
Match the tool to your load. Want to run nothing and just ask your numbers: smolanalytics (managed, paid). Tiny personal site, counts only: GoatCounter. Familiar mid-weight web analytics: Umami or Plausible CE. You genuinely need a deep GA-style suite or replay, flags, and experiments and can run the servers: Matomo or PostHog. Do not run a Kafka cluster for a blog, and do not expect replay from a single binary.
Start the 14-day trial
no credit card · then from $19/mo

keep reading