blog · Jul 4, 2026

why i built smolanalytics

Arjun Varma · maker of smolanalytics

i ship products constantly. web apps, a trading bot, a billing engine, side bets that live or die in a month. every one of them needs the same boring answer: is anyone using this, and did the thing i shipped yesterday actually work.

for years my answer was GA4, because it was free and it was the default. GA4 is also the reason i quit analytics entirely.

the ga4 breakup

i would open GA4 to answer something simple, like "how many people hit the pricing page this week." twenty minutes later i'd be three menus deep in explorations and dimensions, looking at thresholded numbers i didn't trust, still without the answer. so i did what a lot of people quietly do: i stopped opening it. then i stopped adding it to new projects at all. i shipped blind for months and told myself i'd feel product-market fit in my gut.

shipping blind is worse. i just didn't want to admit that the fix was "spend more time inside an analytics dashboard," because every tool i tried had the same shape: the data lives over there, in their app, and you are expected to come visit, learn their UI, and dig. i live in my editor. that's where i build, that's where i want the answer.

so i built the thing i wanted.

what is smolanalytics

smolanalytics is an open source (MIT) web and product analytics tool that runs as a single Go binary you can self-host for free, with a hosted cloud from $9/month. it does web analytics (visitors, referrers, UTM, live view) and product analytics (funnels, retention, trends, paths, cohorts) from the same events, in one tool. it is also an MCP server, so coding assistants like Claude Code and Cursor answer analytics questions right in your editor with exact computed numbers, using the model you already pay for; smolanalytics itself runs no AI, so that part costs nothing. the dashboard opens with a verdict that says what changed and what to fix instead of a wall of charts, and a morning brief digests every site on the instance. answers come from deterministic reports, never AI-generated SQL, and a CI test asserts the editor's answer always equals the dashboard's. it deliberately never does session replay, feature flags, or A/B testing, and your data never leaves your box.

analytics that comes to you

the core inversion is simple. every tool wants you to come to the data. smolanalytics sends the data to where you already are:

the verdict. the dashboard doesn't open with charts, it opens with a sentence: what dropped, where the leak is, what to look at. the charts are underneath as evidence. whats_notable is the same thing as an MCP tool, so your agent can run the morning check for you.

your editor. run smolanalytics connect once and your coding assistant gets 47 tools and 13 prompts. then you just ask, in the same window you write code:

you ▸ did signups improve this week?
ai  ▸ signups: 212 this week vs 180 last week, up 18%.
      the lift is /pricing traffic from news.ycombinator.com.
      the funnel after signup is unchanged: 62% reach activate.
      want the breakdown by plan?

those numbers are example output, the shape of a real answer. they are not my traffic. i launched this month; i don't have traffic worth quoting yet.

the morning email. smolanalytics brief prints a digest across every site on the instance: what grew, what broke, what to look at, split per product. self-hosted, you cron it and pipe it to email or slack. on cloud it just arrives every morning. i point all my projects at one instance and read one digest instead of opening a tab per dashboard.

the number can't be made up

this is the part i'd be most skeptical of if someone else wrote this post. AI assistants bolted onto analytics tools mostly work by generating queries: PostHog's MCP, for example, lets the model write HogQL. a generated query is a second path to your data, and a second path can disagree with what the dashboard shows. smolanalytics can't drift like that, structurally. the MCP tools don't generate queries at all; they call the exact same deterministic report functions the dashboard renders, so there is no second query path. and that isn't a promise in a README, it's a test: the agreement test seeds a server, asks the same question through the HTTP API and through the MCP server, and fails the build if the answers aren't identical. it runs in CI on every commit, so the claim can't quietly rot. the honest caveat: your model can still ask the wrong question. it just cannot invent the number.

what it will never do

the graveyard of analytics tools is "one tool that became nine." so there's a never-list, written down in the README: no session replay, no feature flags, no A/B testing, no surveys, no data warehouses, no multi-node clustering. other tools do those well, and bundling them is how you end up needing a cluster and a pricing calculator to self-host. this stays one binary that answers questions about your events, exactly. events are about 7 bytes each on disk, and a small VPS is plenty.

the trust model

i should be upfront about what this is. it's me, solo. it launched this month. there are no testimonials on the site because there are no testimonials, and i won't fake any.

so trust can't come from a track record. it has to come from the design: MIT license, no CLA, so no rug-pull relicense is possible on your copy. self-hosting is free forever with no feature gates; the binary you run in dev is the whole product, not a demo of the cloud. the storage format is documented with compatibility guarantees, export is one curl to csv or jsonl, and there's no phone-home. the worst case, if i get hit by a bus or just move on, is that the binary you already have keeps running on your data on your disk. i'm not asking anyone to trust me. i'm asking for one docker run.

the cloud exists for people who don't want to run a server: a 14-day full trial, then $9/month for unlimited sites, with the brief delivered by email. going over your included events never locks the dashboard. that's the business; the license never will be.

try it

docker run -p 8080:8080 ghcr.io/arjun0606/smolanalytics demo

that's a populated demo dashboard at localhost:8080, verdict and ask bar included.

if you're weighing it against what you run now: smolanalytics vs plausible and smolanalytics vs GA4. the 13 built-in prompts, with the shape of each answer, are in docs/prompts.md. the code is at github.com/Arjun0606/smolanalytics.

if you read this far and something's missing before you'd switch, tell me. i'm easy to find and i answer.

smolanalytics is the analytics that tells you what to fix — try the cloud or self-host free.