No. 24 · Saturday, 24 October 2026 Tonight: full moon, 98% lit next edition in --:--:--

No.24 Web analytics, printed fresh daily

Know your visitors. Not their cookies.

misomoon counts what matters on your site and forgets who did it. It runs in your own Cloudflare account, sets no cookies, and your AI tools can read it.

YesterdayEvery morning this line is rewritten from yesterday’s numbers on this very site: how many people read it, where they came from, and how many names we kept.

Free and open source · Every feature included · No server to run

fig. 1 The demo dashboard, with sample numbers: the live ones could not be fetched for this view
app.misomoon.com/?site=demo
Overview Last 30 days Sample data
People3,234▲ 22.2%
Pageviews9,100▲ 23.7%
Left at once48.1%▼ 1.0 pts
Time per visit2m 02s▲ 2.5%
Thu, Oct 8 288 visitors Hacker News · ↑ 144%
Channels
Organic Search33%
Direct31%
Organic Social29%
AI Assistants14%
Email4%
Speed · p75
LCP2.1s
INP142ms
CLS0.04
TTFB310ms
01 Collect

One tag.
Fourteen signals.

The essentials every analytics tool counts, and the ones that explain them: how long people really read, how far they scroll, how fast the page felt, and which AI assistant sent them. Here is everything a single pageview leaves behind.

MISOMOON receipt for one pageview 22·10·2026 · 21:04 WIB
  • path/pricing
  • referrernews.ycombinator.com
  • channelOrganic Social
  • utm_campaignlaunch-week
  • countryID · Jakarta
  • networkAS17451 Biznet
  • deviceDesktop · 1440px
  • browserChrome 141 · macOS 26
  • languageid-ID · Asia/Jakarta
  • engaged time48s
  • scroll depth72%
  • LCP / INP / CLS1.9s · 96ms · 0.02
  • outbound clickgithub.com/…
  • goalSignup · $19.00
  • cookies set0
  • IP addresses kept0
  • bytes sent612
*** thank you for not being tracked ***
index.html
<script defer
  src="https://app.misomoon.com/m.js?s=your-site"></script>

// custom events, with revenue
misomoon('Purchase', {
  props: { plan: 'pro' },
  revenue: { amount: 19, currency: 'USD' }
})
<1KBcore tracker, gzipped
0cookies or local storage
5Web Vitals, from real users
02 Understand

Click anything.
Everything filters.

Every row is a filter. Compare with last period, drag across the chart to zoom, and share the exact view as a link.

new channel

AI assistants get their own line.

ChatGPT, Perplexity, Claude, Gemini and Copilot stop hiding inside “referral”.

ChatGPT62
Perplexity24
Claude18
Gemini9
Copilot5
funnels

Steps count in order, inside one visit.

100%
Home
30%
Pricing
13%
Signup
6%
Paid
web vitals · p75

How fast it felt.

2.1sLCP
142INP
.04CLS
engaged time · scroll

A forgotten tab is not a fan.

PageEngagedScroll
/blog/sharding-d11m 32s63%
/pricing51s62%
/docs/install52s61%
03 Included

Every feature.
No paid edition.

Funnels, revenue, and reports usually wait behind the top plan. misomoon has one version, and all of this is in it.

01 Traffic

  • Sources. Channels, referrers, and UTM campaigns
  • AI assistants. ChatGPT, Perplexity, Claude, Gemini, and Copilot as their own channel
  • Live. Who is on the site right now
  • Places and devices. Country, region, city, browser, screen, and language
  • Search terms. What people searched on your site, and on Google through Search Console

02 Conversions

  • Goals. Pages and custom events, with properties
  • Funnels. Steps counted in order, inside one visit
  • Paths. The routes people take through the site
  • Revenue. Stripe, Polar, Lemon Squeezy, Dodo Payments, or your server, credited to the visit that brought the buyer

03 Behavior

  • Clicks. Per element, with rage and dead clicks, drawn over your own page
  • Scroll and time. How far people read, and for how long
  • Forms. Starts, submits, and the field where people stopped
  • Errors. JavaScript errors, grouped by message and file
  • Media and content. Video and audio plays, and how often tagged blocks were seen
  • Web Vitals. LCP, INP, CLS, FCP, and TTFB from real visits

04 Reports

  • Email reports. Weekly and monthly, with a PDF attached
  • Alerts. A traffic spike, or a site that stops sending
  • Shared dashboards. Public, or a link with a password, an expiry, and a saved filter
  • Teams. Roles from owner to viewer, and guests invited to one site
  • Export. A ZIP of CSV files for any period

05 Build on it

  • MCP server. Claude, Cursor, and other AI tools read your stats
  • REST API. Every report, with site-scoped keys
  • SDK. React, Next.js, React Native, Expo, and your server
  • First-party proxy. Serve the tracker from your domain, so blockers drop fewer visits
  • Import. Your history from a Google property or a CSV file
zsh — claude
$ claude mcp add --transport http misomoon \
    https://app.misomoon.com/mcp \
    --header "Authorization: Bearer mm_…"

› How did last week's launch do?

  ⏺ misomoon · get_aggregate  compare=true
  ⏺ misomoon · get_breakdown  property=source

  Visitors were up 38% week over week, led
  by Hacker News (846 visitors on launch day)…
04 Connect

Your numbers,
inside every AI tool.

misomoon speaks the Model Context Protocol. Point Claude, Cursor or any MCP client at /mcp with a site-scoped key and your analytics become something your tools can reason about. Read-only, and nothing else.

list_sitesget_aggregateget_timeseriesget_breakdownget_goal_conversionsget_realtimeget_web_vitalsrun_funnel
05 Own it

Your account.
Your data.

misomoon is one Worker, a queue, and D1 databases in your own Cloudflare account. Each site's history spreads across the databases by day, so there is no single database to outgrow.

① edgeIngest Workerbots out · geo in · daily-salted ids
queue
shard-0 D1 acme.com
day 0 → 20374
draining
shard-1 D1 acme.com
day 20375 →
active
shard-2 D1 blog.dev
day 0 →
active
fan-out · merge
② readDashboard · API · MCPone query engine, three doors
A

One button to deploy

Deploy to Cloudflare copies misomoon into a repository you own and creates the databases. There is no server to patch.

B

A cap for bad days

Set a daily limit per site. A bot flood stops at the edge within a minute instead of running up your bill.

C

Keep it or delete it

Choose how long to keep events, export any period as CSV files, or query the databases yourself.

06 Privacy
  • Cookies
  • Fingerprints
  • Stored IPs
  • Cross-site tracking
  • Ad networks
No IP addresses kept. An IP address is used for one hash and never stored. Search terms, error messages and click labels lose emails, ids and tokens before they are saved.
Forgets daily. Visitor ids use a salt that is replaced every day and deleted after two.
Your infrastructure, or ours. Self-hosted, every number lives in your own Cloudflare account and nobody else can read it, including us. On app.misomoon.com, our data processing agreement covers it.
Nothing on the device. No cookies and no local storage, so there is no cookie to accept.
07 Questions

Before
you switch.

The questions people ask before they move their analytics. The full FAQ has more.

What does it cost?

misomoon is free and MIT-licensed. You pay Cloudflare for what the Worker uses. The Workers Free plan handles about 3,000 events a day, and the Workers Paid plan starts at $5 a month for the whole account.

Do I still need a cookie banner?

misomoon sets no cookies, stores nothing on the visitor’s device and never stores IP addresses, which are the usual reasons for one. Whether you need one depends on your country, on the features you turn on, and on what else your site does. This is not legal advice.

Can I keep my old numbers?

Yes. Import a Google property’s history or a CSV file. The imported numbers show next to the ones misomoon collects.

Can I run it next to my current analytics?

Yes. It is one script tag, so run both for a few weeks and compare. Expect lower numbers: misomoon drops bots and counts only real requests, with no modeled data.

Will ad blockers hide my visitors?

Some blockers drop requests to known analytics hosts. Serve misomoon from your own domain with the first-party proxy, and its requests are first-party.

What if a bot floods my site?

Known bots are dropped before they count. For the rest, set a daily cap per site. Once a day is full, the edge drops the extra events within a minute.

What happens to my data if I stop?

It stays in your D1 databases. Export any period as a ZIP of CSV files, or query the databases with wrangler.

Sleep
at night.

Analytics that never keep you, or your visitors, up.