smolanalytics
menu
log inStart trial
how it works

Get data flowing. Then just ask.

Set up in one step, then ask your numbers in plain English. The dashboard ask bar answers about your data and shows your real events and pages so you never guess what to type. Your coding agent answers code-aware questions over MCP. Same reports underneath, so the numbers always agree.

smolanalytics works in two moves: get data flowing, then ask it questions. How you start depends on how you built your app. If you have a website or web app, you drop one script tag and it captures pageviews and clicks automatically. If you built with an AI builder like Lovable, Bolt, v0, or Replit, you paste one prompt into that builder's chat and it wires the app up for you, no code. If you code in Cursor or Claude Code, you run one connect command so your editor's own model can answer from your real data over MCP. Then there are two places to ask, and they are not the same. The dashboard ask bar answers plain-English questions about your DATA ("how many checkout this week?", "visitors to /pricing") and it shows your actual event names and pages as clickable chips, so you never guess what to type. Your coding agent over MCP answers CODEBASE-AWARE questions ("what's the MAU for the PQR page") because it has your code and knows PQR is the /pqr route. Both read the same deterministic reports the dashboard renders, so the numbers always agree. Build a report once and pin it, and it shows on your dashboard every visit. Under the ask bar is a full product-analytics engine: funnels with median time-to-convert and property breakdowns, retention cohorts (daily/weekly/monthly, rolling, anchored on any returning action), paths, reusable cohorts, lifecycle, stickiness, B2B group roll-ups, numeric aggregation (total/average/median/p90), a full segmentation filter builder, per-user journeys, and deploy-impact that ties a metric change to the exact commit that caused it, all computed deterministically and answerable in plain English. By default, answers cover all your recorded history; scope with "today", "this week", "last month", or "last 30 days". And if the app you are measuring is itself an AI agent, the same engine computes its observability from the same events: tool-call latency and error rates, an error taxonomy, and conversation health like re-ask and abandon rates, so "which tool is slowest?" is just another question. It is open source (MIT), self-hostable for free, and the hosted trial is 14 days with every feature and no credit card.
step 1 · get data flowing

Pick the row that sounds like you

One of these gets events into your instance. After that, everyone asks the same way.

path 1

I have a website or web app

  1. 1
    Sign up and create a project
    You get an isolated instance and a write key, in about a minute. No card.
  2. 2
    Drop one script tag
    Paste the snippet into your site's <head>. It autocaptures pageviews and clicks right away. Add track() for the key moments (signup, checkout) when you want funnels.
  3. 3
    Ask, or read the morning email
    The dashboard opens with the verdict. Ask 'where do people drop off?' in the ask bar, or just read the brief that lands each morning.
<script src="https://YOUR-INSTANCE/sdk.js"></script>
<script>smolanalytics.init("YOUR_KEY", { host: "https://YOUR-INSTANCE" });</script>
path 2

I built my app with AI (Lovable, Bolt, v0, Replit)

  1. 1
    Sign up
    You never open a code editor or a terminal. Signup hands you one prompt with your key already in it.
  2. 2
    Paste the prompt into your builder's chat
    Your builder's AI drops the tracking in the right place for that platform. We have a page for each one with the exact prompt and where it goes.
  3. 3
    Come back to the dashboard
    It fills in live, answers your questions in plain English, and the morning email starts the next day. Zero code from you.
see the Lovable guide →
path 3

I code in Cursor or Claude Code

  1. 1
    Connect once
    On the cloud, paste your organization's MCP token (from Settings) into your editor: one connection operates every project, you pass a project name to reach any of them and the read key stays server-side. Self-hosting, run smolanalytics connect to wire every assistant to your local instance. Restart the editor.
  2. 2
    Ask in the same window you write code
    "what's the mau for the PQR page?" works because your agent knows PQR is the /pqr route from your code, then queries smolanalytics for it. Your own model answers, so the ai part is free. No api keys.
  3. 3
    Trust the number
    Your AI assistant admits it can hallucinate your numbers. This one can't. The answer comes from the same deterministic reports the dashboard renders.
smolanalytics connect        # wires up cursor, claude code, and the rest
the editor-native guide →
step 2 · ask

Two ways to ask, for two kinds of question

One asks about your data. The other asks about your code. Knowing which is which is the whole trick, so here they are, side by side.

The dashboard ask bar
built in · asks your data

Type a plain-English question and get an exact number back, computed deterministically, no model needed. It answers about your DATA: 'how many checkout this week?', 'where do people drop off?', 'visitors to /pricing'. It does not read your code, and it does not have to: the dashboard shows your real event names and top pages as clickable chips, so you pick what to ask instead of guessing what things are called.

how many checkout this week?
visitors to /pricing
which channel converts best?
Your coding agent over MCP
cursor / claude code · asks your code

Connect once (on the cloud, one org token operates every project; self-hosting, run connect) and your editor's own model gets smolanalytics plus your codebase plus the tracking plan (smolanalytics.plan.json). This is where codebase-aware questions work. Ask 'what's the MAU for the PQR page' and your agent knows PQR is the /pqr route from your code, then pulls the number. It can also instrument new flows and verify they fire. Same reports underneath, so it never disagrees with the dashboard.

what's the mau for the PQR page?
add tracking to the checkout flow I just built
did activation improve since we shipped onboarding?

Pin the metrics you check daily

Build a funnel, trend, breakdown, or retention view once and pin it, or have your agent call save_report. It shows on your board, pinned to your dashboard, every visit, so the numbers you watch every morning are one glance, not a re-typed question.

Answers cover all your history by default

That's the default. Scope any question with today, yesterday, this week, last week, this month, last month, or last N days, and the answer tells you the exact range it used, so a number is never silently measured over the wrong window.

step 3 · go deep

Incumbent-level depth, behind a plain-English question

Under the ask bar is a full product-analytics engine, the same reports Mixpanel and Amplitude give you, computed exactly. You reach any of it three ways: ask in plain English, ask your editor over MCP, or open the full dashboard. Every answer is the same deterministic report, so it can't drift.

Funnels

Any sequence of events, with per-step drop-off, overall conversion, and the median time to convert. Break the whole funnel down by any property (source, plan, country) to see who converts and who stalls.

Retention

Daily, weekly, or monthly cohorts, a rolling/unbounded mode, and an anchor on the returning action that matters (“retention on activate”), with honest denominators: only cohorts old enough to observe a period are counted.

Paths

The real screen-to-screen and page-to-page routes people actually take, and exactly where they fall out.

Cohorts

Reusable definitions, did-any / did-all of an event set plus property filters, applied across every report, so “pro users from HN” is one saved thing.

Lifecycle & stickiness

New, returning, resurrected, and dormant users over time, plus DAU/WAU/MAU stickiness: is your product a habit or a one-time visit?

Trends & breakdowns

Up to 8 events on one chart at hour/day/week/month with the prior window ghosted behind, and any metric broken down by country, browser, device, UTM, or any property you send.

Numbers, not just counts

Total, average, median, and p90 over any numeric property, revenue per day, average order value, p90 latency, not only event counts.

Segmentation

A real filter builder on everything: is / is not / contains / regex / greater-than / less-than / set / not-set, AND or OR, with value typeahead from your own data so you pick, never guess.

Per-user journeys

Click any visitor and see everything they did, in order, with their traits and first/last seen, the clean per-user timeline GA4 never gave you.

B2B group roll-ups

Roll events up by account or organization, not just by user, so you read usage the way a B2B product actually sells.

only here
Deploy impact

Record a deploy (git sha + message, one line in CI, or auto-synced from GitHub) and smolanalytics ties every metric change to the ship behind it: a before/after per deploy. Ask "did my last deploy move signups?" and get the number. No other analytics tool can. They have your data but not your deploys. Correlation, not proof, and the copy always says so.

the opener
The verdict

The dashboard opens with what to FIX, biggest drop-off, spikes, retention breaks, not a wall of charts of what happened. A morning brief email covers every product you run. You start at the answer, not the exploration.

Who is this for?

Indie hackers and solo devs
You ship a lot and never want to babysit a dashboard. One instance holds every product you run; one morning email covers them all.
Agent-native builders
You live in Cursor or Claude Code. Ask your data from the same window you write code, and let your agent map code names to metrics for you.
Vibe coders
You built the app with AI and don't write code. Paste one prompt, then ask your dashboard questions like a person. No terminal, ever.
Anyone who quit GA4
You want a straight answer, not three menus deep in explorations. The dashboard opens with the answer instead of making you dig.

Built for agent-native indie developers and small builders. Not for a data team that wants a distributed event warehouse. That's a different tool. smolanalytics is for people who want a straight answer without the ops.

Common questions

Where do I ask my questions?
Two places, for two kinds of question. The dashboard ask bar answers about your data in plain English and shows your real events and pages as chips so you never guess what to type. Your coding agent in Cursor or Claude Code answers codebase-aware questions over MCP, like 'the MAU for the PQR page', because it has your code and the tracking plan.
Does the dashboard ask bar read my code?
No. It answers about your data and knows your events and pages because they are in that data, not because it reads your repo. The code-aware surface is your coding agent over MCP: it has your codebase plus the tracking plan, so it can translate a route or component to the metric and query smolanalytics for it.
How do I stop re-typing the same daily metrics?
Build a report once (funnel, trend, breakdown, or retention) and pin it, or have your agent call save_report. It shows on your board, pinned to your dashboard, on every visit, so recurring metrics are one glance, not a re-typed question.
What time range do answers cover?
All your recorded history by default. Scope any question with 'today', 'yesterday', 'this week', 'last week', 'this month', 'last month', or 'last N days', and the answer states the exact window it used.
Do I need to know how to code?
No. If you built your app with Lovable, Bolt, v0, or Replit, you paste one prompt and your builder does the wiring. The dashboard, the ask bar, and the morning email need zero code from you.
What does it cost to start?
Nothing to try: 14 days at Pro limits, no credit card. After that, pick a plan to keep collecting — nothing already collected is lost — and Pro is $19/month if you want more. Self-hosting the open-source binary is free forever. Nobody gets charged without entering a card themselves.
Start the 14-day trial
no credit card · or self-host free