Twillingate is analytics for indie builders who work with an AI agent. Point Claude Code, Claude Desktop or any MCP client at it and ask — it sets up tracking, builds the reports and answers the questions.

Analytics for builders.

› add analytics to my app

created project myapp, added the tag to app/layout.tsx and a signup event to the form — reports are filling in at /app/

For everything you ship. No cookie banner, no analytics know-how, no limit on projects.

The twillingate console showing 29.9K visitors and 109.1K views over 90 days, with visitors-and-views trend lines

The console, serving 90 days of one project. Reports live at /app/ behind your own login.

Your agent does the analytics.

You do not need to know what a bounce rate is or which events to track. Ask the agent you already code with; Twillingate speaks MCP, so it can do every step itself.

  • It sets everything up "Add analytics to this app" is the whole task. The agent creates the project, gets the tracking tag and adds it to your code.
  • It tracks what matters Signups, purchases, the button you shipped yesterday. The agent reads your code and sends the events worth counting.
  • It answers in plain words "Did the launch post bring signups?" gets an answer, not a chart to decode. Want to keep watching it? The agent puts it on a dashboard.
mcp · twillingate

did the Hacker News post bring any signups?

checking signup events on project myapp, last 7 days

Yes — 41 signups since Tuesday, 29 of them from Hacker News. Before the post you were averaging three a day.

keep an eye on that for me

created dashboard Launch with signups by source and a daily trend — live at /app/

Every project. One bill.

The landing page, the app, the docs and the thing you launched last weekend each get their own project. None of them costs extra.

∞projects
No limit on sites or projects, on every plan. Including the $5 one, and including the experiments with ten visitors.
0cookie banners
Cookieless by default. No cookies, nothing kept on the device, nothing identifying sent — so there is no banner to put in front of your launch.
7ready-made dashboards
Views, Product, Users, Groups, Retention, Web Vitals and Measures. They fill in the moment events arrive. Nothing to configure.
9.9 KBgzipped tag
One deferred script tag. Page views are automatic, single-page apps included. The same file sends your own events from code.

Product analytics, not a hit counter.

Know whether people use what you shipped, not just whether they visited. Page views, product events and app screens land in the same project.

Views

Visitors, views, bounce rate, session length, sources, countries, devices.

Product

Signups, purchases, clicks — any event you send, with its attributes, and daily actives.

Users and groups

Signed-in people, and the teams they belong to, when you send ids.

Retention

Do people come back? Cohorts by first day, followed for 45 days.

Web Vitals

The Core Web Vitals, collected from a share of your page views.

Measures

Your own numeric series, for the things only your product knows about.

The Product dashboard showing 3,134 events, peak daily actives of 45, and daily active user and event trends

Simple on purpose.

No session recordings, no feature flags, no forty-item menu. Pick a project and a date range and read. When you want something the dashboards do not show, ask your agent: it builds the widget from eighteen types, and the widget has to run and return the right data before it is saved.

Every widget type drawn with sample data, in the console itself. How dashboards get built

No cookie banner.

The default tracking needs no consent, because there is nothing to consent to. When you do need to know who — signed-in users in your app — switch that one project to identified.

  • anonymous The default. No cookies, nothing kept on the device, nothing identifying sent. Page view tracking on its own needs no consent banner.
  • identified When you need to know who. Send a user id and the Users, Groups and Retention dashboards fill in. Consent applies, and the tag takes a consent signal for exactly that reason.
  • Either way IP addresses and full User-Agent strings are never stored or logged, and a test scans the database file and the log output to keep that true.
  • Anonymous ids A visitor who sends no id is a hash of the connection under a key that rotates every 24 hours. The previous key is overwritten, so linking a person across days is impossible rather than merely prohibited.
  • Always on Query strings stripped to a UTM allowlist, referrers reduced to a source name, and bots dropped at ingestion so they never reach your numbers.

Priced on traffic. Nothing else.

Not on projects, not on seats, not on features. Page views and events count the same, added up across all your projects.

Cloud · early access

$5 /month to start

We run it, you connect your agent. You move up a step only when your traffic does.

  1. $5 up to 100k events a month
  2. $20 up to 1M events a month
  3. $50 up to 3M events a month
  • Unlimited projects and seats on every step.
  • Every feature from the first dollar — all seven dashboards, the agent connection and the API.
  • Backups, upgrades and TLS are ours to worry about.
  • Export your data and run it yourself whenever you like — same software.
Ask for an invite

Early access is opening in batches. No card to join the list.

Self-hosted

Free · forever

One binary and one SQLite file. No Postgres, no ClickHouse, no Redis to run next to it.

  • The same product, with nothing held back for a paid tier.
  • Unlimited projects, events, dashboards and seats.
  • Happy on the VPS you already pay for, or a Raspberry Pi — arm64 and 32-bit ARM builds included.
  • AGPL-3.0, with the browser tag under MIT so it can ship inside your app.
Read the install guide

Docker compose or systemd.

Most analytics gets expensive at the wrong moment: when you have five experiments and none of them has proven itself yet. Here, ten quiet projects cost the same as one, and the bill only grows once something works.

Questions people actually ask.

Everything else is in the documentation, which is the same text Twillingate serves to your agent.

Do I need to know analytics?

No. The seven built-in dashboards cover who visits, from where, what they do and whether they come back. For anything else, ask your agent in plain words.

Do I need a cookie banner?

Not for the default mode. It sets no cookies, keeps nothing on the device and sends nothing identifying. Only a project you switch to identified tracking needs consent — the details are on the privacy page.

My project has ten visitors. Is it worth $5?

For one project on its own, maybe not — plenty of tools are free for a single site. Twillingate is built for the builder with five of them: every project is included, and $5 covers up to 100k events across all of them.

Which agents can drive it?

Claude Code, Claude Desktop and claude.ai are documented step by step, and any other MCP client uses the same URL. Anything that is not an MCP client reaches the identical operations as REST routes.

Do I have to use an agent?

No. Add the tag and read the built-in dashboards. The agent is how you get past them — and how the tag gets added without you reading a setup guide.

Can I track a native app or a backend?

Yes. Skip the browser tag and POST batches of events straight to /ingest/events. The wire format is documented as a normative contract.

I already use Plausible.

There is a shim for Plausible's class-tagging convention, so existing markup and goal names keep working while you move.

Is the cloud live today?

Not yet — it is opening in batches, and the list is how you get in. Running it yourself works right now, and is what the cloud will be running.

Ask your agent to add analytics.

It will have the first report ready before you finish deciding what to call the project.