Fathom alternative: cookieless analytics that comes with the checks
4 min read ยท published 2026-10-02
The pitch
Fathom Analytics is privacy-first web analytics: one script tag, no cookies, no personal data collected, and a dashboard small enough to read in a minute. It is good at what it does, and this post is not here to argue you should rip it out. It is for the half of the question Fathom does not touch: is the site up, what broke, and what do the customers see while it is down. UpControl puts a script tag of its own next to uptime checks, application logs and product events, so a traffic drop lands on the same page as the deploy that landed before it and the log lines around the failure. One npx command and your coding agent wires all of it. The table and the two lists are the argument; the last section is the five-minute move.
| Fathom (as of 2026-10) | UpControl | |
|---|---|---|
| Free tier | no free tier, paid plans only | 3 checks every 5 minutes, status page, 3,000 visits a month |
| Paid from | pageview-metered tiers on the hosted service | $9/month annual ($11 monthly) |
| The tag | one script tag, cookieless, no personal data collected | one script tag in the head; its key works only from the site addresses listed on it |
| Cookies | none, nothing stored on the visitor's device | none, nothing stored on the visitor's device |
| Heatmaps | no | yes, per device, drawn over your live page, for your plan's busiest pages |
| Session recordings | no | no |
| Uptime and status page | no | checks from every 5 minutes (every minute on paid), free public status page |
| Self-hosting | no, hosted only | yes, AGPL-3.0, one compose file |
Where UpControl is better
- The tag answers to uptime. A traffic drop on a Tuesday means little on its own: was it the deploy, or a 502 on checkout? Our incident page carries the check that opened it, titled with the cause ("Checkout returning 502", "DNS error"), the deploy that landed before it and the log lines around the failure. Fathom's chart shows the visit that never happened; it cannot say why.
- Your coding agent does the wiring. Run
npx upcontroland the agent you already use (Claude Code, Cursor, Codex, Gemini CLI, Copilot, Windsurf, Amp, Aider, Cline, opencode) adds the tag, the checks and the logging. Ask it in plain language to track signups from first visit to purchase, and the funnel is on the dashboard. No tracking code written by hand. - Heatmaps, per device. We record clicks, rage clicks, mouse movement and scroll depth, and draw the map over your own live page: phones under 768px, tablets under 1024px, desktops above. If the question is where people give up, Fathom has no answer to it.
- Uptime and a public status page from the first minute. Type a domain on the landing page and a status page for that host exists, with components, incidents and uptime history; the owner claims it with one click. No analytics tool tells the customers anything while the site is down.
- Privacy is not the tradeoff. No cookies, nothing stored on the visitor's device, a visitor is a daily-rotating hash so one person counts once a day, and typed text and page text are never read. The tag ships a public key that works only from the site addresses listed on it.
Where Fathom is better
- Purity of focus. Fathom does analytics and nothing else, and years of that focus show: filtering out your own visits, known-bot exclusion, email reports, EU data residency if you need it. Our web analytics is young: pageviews with path, referrer, UTM tags, country, device, operating system and browser, plus the heatmaps above, and that is the list.
- History without a 31-day ceiling. Fathom keeps your analytics for as long as you are a customer; our web history reaches back at most 31 days, and heatmaps only for your plan's busiest pages. If you audit last quarter's traffic, do it in a tool built for analytics alone.
- A smaller surface to care about. One job, one dashboard, one bill. Checks, logs, events, heatmaps and status pages on one account is more moving parts than a solo site owner may ever want, and an honest comparison says so.
Switching from Fathom in five minutes
- Open upcontrol.io and type your domain. The public status page exists from that moment.
- Claim the page from its link to move it into your account.
- Add an HTTP check for the site and one for the API behind it. Alerts go to Telegram, Slack, Discord or email.
- Paste our script tag into the head of every page, the same place Fathom's sits. The two run side by side while you compare.
- Optional, for the "why" behind the numbers: run
npx upcontrolin your repo and tell your agent what to log and which events to track.