Abner launched today. It’s a privacy-first analytics platform that gives SaaS founders both web analytics and SaaS metrics — MRR, churn, LTV, ARPU — in a single dashboard. No cookies. No consent banners. Under 2KB.
This is how we got here.
The Problem We Kept Running Into
Every SaaS product we’ve shipped — StatementPro, SettleBooks, Testy, the rest — has the same operational question at its core: is the product growing, and why?
Answering that question used to require stitching together two completely different tools. A web analytics platform (usually Google Analytics) told you what visitors were doing on the site. A revenue analytics tool told you what customers were doing with the product. Neither talked to the other, and neither was particularly enjoyable to use.
Google Analytics 4 made this worse. The learning curve is steep, the event model requires engineering time to configure properly, and the data is sampled at scale — meaning the numbers you’re looking at aren’t always the numbers that actually happened. Plus it requires a consent banner in most jurisdictions, adding friction to every page load before a visitor sees your content.
The privacy compliance piece started as a nuisance and became a real concern. GDPR fines are no longer theoretical. Users are increasingly aware of tracking. And consent banners, beyond the legal compliance cost, have a measurable impact on conversion: a meaningful percentage of visitors click “reject all,” meaning you lose their data entirely anyway.
We wanted something simpler.
The Insight
The analytics tools that replaced Google Analytics for pure web analytics — Plausible, Fathom, and others — solved the privacy and simplicity problems well. But they were web-only. They had no concept of SaaS metrics. If you wanted MRR visibility, you were still running a separate tool.
What we wanted was a single source of truth: a dashboard where you could see that 1,200 visitors came from organic search this week, 40 signed up for a trial, 12 converted to paid, and your MRR moved by $480. Without stitching four tools together. Without a consent banner. Without configuration that required a data team.
That became Abner.
Scoping the MVP
The core job-to-be-done: a SaaS founder should be able to see both their traffic and their revenue metrics in one place, with a one-script setup, without touching privacy regulations.
We organized the MVP into two pillars:
Web analytics — the essentials that any site owner needs. Unique visitors, pageviews, sessions, bounce rate, top pages, entry and exit pages, traffic sources, referrers, UTM tracking, geographic data, device and browser breakdowns, outbound link tracking, and custom goals. Real-time data, no sampling.
SaaS metrics — connected via Stripe. MRR with full movement tracking (new MRR, expansion, contraction, churn, reactivation), churn rate, LTV, ARPU, trial-to-paid conversion rate, and cohort retention. This data syncs automatically once you connect your Stripe account — no manual tagging or custom events required.
What we left out of the MVP deliberately:
- Funnel analysis across arbitrary event sequences
- Session replay
- Heatmaps
- A/B test integration
- Multi-touch attribution modeling
These are all real features that analytics platforms offer. Some will land on the Abner roadmap. But none of them are required for a founder to understand whether their site is converting traffic into trials and whether those trials are converting into revenue. We scoped to that core question.
Technical Decisions
Abner runs on Django with a Go-based ingest service and ClickHouse as the analytics data warehouse.
The ingest path was the first architectural decision we had to get right. Analytics data is write-heavy — every pageview, every event, every session creates new records. A standard PostgreSQL setup would struggle under real traffic volume, and query latency on aggregations would be unacceptable. ClickHouse is purpose-built for this: columnar storage, extremely fast aggregation queries, and excellent compression. It handles the analytics data. PostgreSQL handles everything else — accounts, billing, site configurations, Stripe data.
The Go ingest service is a separate microservice that sits in front of ClickHouse and handles event ingestion. It’s stateless, horizontally scalable, and fast. Events are batched before writing. It handles User-Agent parsing (device, browser, OS) and GeoIP lookup (MaxMind GeoLite2) inline, so that data is available immediately when an event lands. The Django application never touches raw ingest traffic.
Privacy by design shaped several decisions. We don’t use cookies — not even session cookies for analytics purposes. Sessions are determined by a combination of IP address, User-Agent, and timestamp with a short TTL, which means we can track sessions without storing anything in the visitor’s browser. We don’t fingerprint — we don’t hash IP addresses for long-term tracking or build cross-site profiles. The result is a system that’s GDPR and CCPA compliant by architecture, not by configuration.
The tracking script itself is under 2KB gzipped. We were deliberate about this. A 50KB analytics bundle has a real performance cost. Ours doesn’t.
Stripe integration uses webhooks to keep MRR data current. When a subscription is created, upgraded, downgraded, or churned, an event fires, we process it, and the dashboard reflects it. No polling, no daily syncs, no lag.
What Shipped on Day One
- Web analytics — pageviews, unique visitors, sessions, bounce rate, top pages, entry/exit pages, traffic sources, UTMs, geographic data, device/browser breakdown, outbound link tracking, custom goals and events
- SaaS metrics — MRR and MRR movement (new, expansion, contraction, churn, reactivation), churn rate, LTV, ARPU, trial conversion rate, cohort retention; all synced from Stripe
- Real-time dashboard — live visitor count, rolling stats, no refresh required
- Shared dashboards — share a read-only view of your analytics publicly or behind a password; useful for clients, investors, or distributed teams
- CSV export — every report exports to CSV
- API access — programmatic access to your analytics data via API keys
- RUM (Core Web Vitals) — Core Vitals tracking on Pro and Business plans; full Real User Monitoring on Business
- Multi-site — up to 50 sites on Starter, unlimited on Pro and Business
- 14-day free trial — no credit card required, full access during trial
Pricing is $19/month on Starter (50 sites, 1M pageviews), $49/month on Pro (unlimited sites, 5M pageviews, SaaS metrics), and $99/month on Business (10M pageviews, full RUM, priority support). Annual plans save 20%.
What’s Next
The roadmap is focused on depth before breadth. Funnel analysis — tracking conversion across a sequence of custom events — is the most requested upcoming feature. After that: email digest reports, a public status page for embedded analytics, team member roles and permissions, and deeper Stripe data (failed payment recovery, plan breakdown by MRR).
Longer term we’re looking at first-party data enrichment, Zapier/Make integrations, and a WordPress plugin for one-click script installation without touching theme code.
Try It
Abner is live at abner.app. Free 14-day trial, no credit card required. Setup is a single script tag — you’ll have data in your dashboard within minutes.
If you’ve been putting up with Google Analytics complexity or running separate tools for web and revenue analytics, Abner is built for you.
Questions? [email protected].