Stop shipping
on faith.

smolanalytics investigates your product for you. it finds what changed, names the segment carrying it, sizes it in people, and tells you whether ninety days of shipping moved anything at all. no dashboards to build.

no card·runs beside the analytics you already have·your own model, so the AI costs nothing·self-host free forever
or paste this into your coding agent, it installs itself
Cursor · Claude Code · Copilot · Windsurf · Codex · Lovable · Bolt · Replit
live replay · 31 sweeps · 2026-05-202026-08-18
what it would have told you
computed just now off the demo's real history by /v1/backtest — not a screenshot
  1. 1 julopen rose 34% on 2026-06-27
    ~480 people/mo4d to become conclusivecause not narrowed
  2. 1 julsignup fell 28% on 2026-06-27
    ~300 people/mo4d to become conclusive
    92% of the loss is US.
  3. 4 julcheckout fell 33% on 2026-06-30
    ~60 people/mo4d to become conclusive
    67% of the loss is macOS.
  4. 10 julcheckout rose 67% on 2026-07-06
    ~120 people/mo4d to become conclusivecause not narrowed
  5. 13 julopen rose 28% on 2026-07-04
    ~555 people/mo9d to become conclusivecause not narrowed
  6. 16 julopen rose 29% on 2026-07-06
    ~600 people/mo10d to become conclusivecause not narrowed
4 of these could not be narrowed to a ship or a segment — the demo records no deploys. wire yours up and that line becomes which ship did it.
16 more in the same replay, in the order they'd have arrived. nothing here is picked — it's the first 6. how the replay works →

run it on your own quarter: smolanalytics backtest · sweeps every 3 days here, daily on your machine

measured on smolanalytics.com · last 7 days · computed by /v1/ai-crawlers · as of 2026-08-18
483
machine reads
your analytics counted 34

Most of what reads your site runs no JavaScript, so every pixel-based tool reports zero of it.

a pixel sees
34
human visitors. what PostHog, Mixpanel, GA4 and Plausible report.
the server saw
483
fetches by 8 AI crawlers across 163 pages. none of them run JavaScript, so no pixel counted one.
and the part that stings
63 → 3
times a person asked an assistant and it read a page to answer them — and how many of those people then arrived.

The reads happen whether or not anyone clicks through. When the assistant answers in place, your analytics records nothing, because there was no visit to record.

The ratio is this wide partly because the site is small. Crawlers sweep every page you have whether or not anyone visits it, so the fewer humans you get, the more of your readership is machines. If you are a solo builder or a side project, this gap is at its widest for you — and it is the part of your audience no free tier is even looking at.

see what's reading your sitefree, no signup · keep the analytics you already have

how it works

One paste, then it does the reporting job on its own.

The work you are actually trying to avoid is not querying — it is deciding what to query, remembering to, and then arguing about whether the number means anything. All four steps below run without you.

01one paste

It installs itself.

Paste one line into whatever agent you already code with. It fetches the install guide, drops the snippet, wires the MCP server, and confirms events are arriving. No SDK decision, no taxonomy meeting.
copy this
02the tracking writes itself

Your agent instruments the code.

Autocapture covers pageviews and clicks on its own. For the events that matter — signup, activation, checkout — your agent reads the repo over MCP, writes the calls in the right places, then verifies each one actually fires. how instrumentation works
you   → instrument checkout in this repo

agent → propose_instrumentation(repo)
        found 4 unrecorded user actions
        writing track("checkout_started") → CheckoutForm.tsx:88
        writing track("checkout")         → api/pay/route.ts:41

agent → verify_instrumentation()
        4/4 firing · 0 orphaned · plan updated
03every morning

It investigates before you wake up.

Not a dashboard waiting to be interrogated — a verdict. What changed, the segment carrying it, what it costs in people, and the query that recomputes it. A quiet day says so and stops, because a brief where everything is urgent teaches you to stop reading it.
ssmolanalytics5 live
!Fix first
Mobile visitors convert worst from signup to activate, 1.7× worse than average
only 29% of mobile visitors continue, against 49% for everyone (237 of 805). Fixing this group is the biggest single lever on the funnel.
computed by /v1/notable the report the dashboard renders, not a model guessing
04every quarter

It tells you whether any of it mattered.

The question no analytics tool will answer, because answering it means taking a position. Across everything you shipped, did the metric move? Measured as a share of active people, so growth in traffic alone can never fake it.
across the last 90 days
no ships recorded
metricthennowverdict
open71.9%71.5%unchanged
signup71.9%70.1%unchanged
activate32.6%34.5%unchanged
checkout15.6%17.7%unchanged
agent_tool_call0.0%1.4%up
a share of the people active in each half, not a count — so growth in traffic alone never moves it. computed by /v1/brief.

and when you do have a question

Ask in English. Get a computed answer, with its receipt.

No model writes SQL against your data. Your question is routed to an exact report, and the answer arrives naming the report behind it — so a wrong answer is a bug you can reproduce, not a hallucination you have to catch.

works in the dashboard, and in Cursor / Claude Code / Copilot over MCP. the MCP server

ask smolanalytics · live on demo data
you ▸ where do people drop off?
ai ▸ 553 of 2377 users (23%) complete signup → activate → checkout. The biggest drop-off is at "activate", 1219 users fall off there. Time to convert the full funnel: median 1.0 days, p90 1.9 days (your slowest tenth take this long, a nudge/reminder targets them).
how
Computed by the funnel report over all recorded events, the same engine the dashboard runs, not generated by a model. Open that report on the dashboard to verify.
live demo data. connect your own and ask about your app.

it does not replace your stack

It runs beside the analytics you already have.

Every tool in this category opens by asking you to move. This one is additive on purpose: the fastest way to find out whether it is better is to run both and read them for two weeks.

It does not ask you to migrate.
Leave PostHog, GA4, Mixpanel or Plausible exactly where they are. One more snippet, and you compare the two for a fortnight before deciding anything. Nothing here needs to be your only analytics to be useful.
It counts the readers a pixel cannot.
The assistants reading your pages to answer questions about you run no JavaScript, so every pixel-based tool reports zero of them. This one counts from the server, and shows both halves on one log.
It runs where you already are.
The reports are MCP tools, so the answers arrive in the editor you already have open, from the agent you already pay for. There is no second model to buy and no per-question tax.
It cannot lock you in.
MIT, no CLA, no phone-home, one binary and one data file. Versioned export whenever you like. If this project disappeared tomorrow your analytics would keep running on your own box.

side by side with every incumbent · migrating later · security & data handling

Cheaper, and never a surprise.

14 days of the full product on Pro quotas, no card. When the trial ends nothing you collected is deleted and you keep read access, never locked out. On a paid plan overage is $6/million metered to the cent, the dashboard never locks, the AI is free because it is your own model, and self-host is free forever with no limits.

2 months free

every plan gets your coding agent instrumenting your app over MCP, the verdict, ask-in-editor on your own model, an audit log, CSV/JSONL exports, and the CI-tested agreement: answers can't drift from the dashboard, a test fails our build if they ever differ.

Pro
recommended
$19 /mo
 
always on · a full year of history
  • · every report and the daily verdict, nothing held back
  • · 12 months of history — month over month, seasonality, did the launch work
  • · a second isolated instance, for the staging or client split
  • · 2M events a month, then $6 per million, metered to the cent, never a cap
  • · always-on, so it never sleeps and never makes a visitor wait on a wake
  • · we email you before you cross, never a surprise
Start Pro
Scale
$49 /mo
 
5M events/mo included · then $6 per million
  • · 10 isolated instances, unlimited sites on each
  • · 3-year history
  • · a bigger box per instance
  • · the same $6 per million overage — one number, whatever plan you are on
  • · AI-visibility sampling: what ChatGPT and Claude say about you
  • · everything in Pro
Start Scale

questions

The ones people actually ask.

Does this replace my product manager?

It replaces the part of the job that is reporting: building the dashboard nobody opens, assembling the weekly deck, and chasing down which ship caused a number to move. That work is mechanical and this does it every morning without being asked. It does not replace deciding what to build, talking to customers, or saying no — and a tool that claimed to would be lying to you.

How can it not hallucinate my numbers?

It never writes SQL a model could get wrong. Your AI calls exact, deterministic reports that return the real number or nothing, and every answer comes back with a receipt naming the report behind it. A wrong answer is a reproducible bug, not a hallucination.

Is the AI really free?

Yes. We run no model. You point your own coding agent — Cursor, Claude Code, Copilot, Windsurf, whatever you use — at it over MCP, so there are no metered AI credits and no per-question tax.

What does “open source” mean here, exactly?

MIT. Not BUSL, not “source available”, not a licence with a change date and a competitive-use clause. The whole engine is the thing you can self-host free forever, with no CLA to sign and no feature held back to make the hosted plan work.

Does it watch my agent or MCP server too?

Yes. Tool calls, latency at p50/p90/p99, an error taxonomy and client mix, plus conversation-level turns, re-ask, abandon, time-to-first-token and resolution. All computed metrics, same rule as everything else: no model guessing, no sentiment or intent labelling.

What will it not do?

Pixel-perfect DOM session recording, deliberately. Rebuilding a user’s screen means shipping a large recorder and storing a copy of your users’ pages, and this is a single binary with one data file. You get session timelines and heatmaps instead.

more on pricing · security · the docs

what is smolanalytics?

smolanalytics is open-source (MIT) web and product analytics that investigates your product instead of waiting to be queried. One snippet autocaptures your traffic, your coding agent writes the custom events over MCP, and every answer is a deterministic computed report rather than a model guessing. Each morning it names what changed, the segment carrying it and what it cost in people; each quarter it reports whether the metrics moved at all across everything you shipped. It also counts the AI crawlers and assistants reading your pages, which no JavaScript pixel can see. One Go binary with one data file: self-host free forever, or hosted with a 14-day trial. Funnels, retention, paths, cohorts, flags, experiments, heatmaps, surveys and a session inspector are all included; the one thing it will not do, on purpose, is pixel-perfect DOM session recording.

every report and tool · how it works · what is open source · open-source alternatives

Stop shipping on faith.

Ship a feature, then find out what it did — without building a dashboard to ask. 14 days, no card, and everything you collect is yours to keep.

built to outlive its maker: MIT, no CLA, single binary, versioned export any time, no phone-home. if i vanish tomorrow, your analytics keeps running on your box.