The Traffic dashboard gives you the basics every site needs — without sending a single bit to Google Analytics, Plausible, or any other third party. It lives at /app/traffic in your dashboard.
This is built in for every paying account. You don't pay extra, you don't install a tag, you don't bolt on a third-party tool. It's just there, scoped to your platform.
What's not tracked: raw IP addresses, full user-agents, query parameters, cross-day visitor identity. We use a daily-rotating session hash so we can count unique visitors today without being able to recognise the same person tomorrow.
What you see
- Page views — total HTML page loads in the window. Bots are filtered.
- Unique visitors — distinct daily-rotating session hashes. The same person visiting twice in a day counts as one; the next day they reset.
- Sign-ups — new accounts created on your platform inside the window.
- MRR — current monthly recurring revenue from active subscriptions on your plans. Yearly subs are normalised to a monthly rate.
- New revenue — first-period value of new customers who signed up in the window. (We don't fake "total revenue" — that needs an invoices table we haven't built yet.)
- Visits over time — daily bar chart with a previous-period overlay. Hover for a per-day breakdown.
- Top countries / referrers / pages / devices — sorted by traffic volume in the window.
Range
Pick 7 / 30 / 90 days at the top. The chart and lists update instantly. Older data isn't deleted — you can always widen the range.
Privacy
This isn't lip service. The actual database row for each page view contains:
- The host that served the page
- The path (with numeric IDs replaced by
:idso the list isn't polluted by per-record URLs) - A 2-letter country code
- A device class (
desktop/mobile/tablet/other) - A referrer host (
google.com, not the full search URL) - A daily-rotating SHA-256 hash that's unreadable without the server's private salt
- A boolean for whether the visitor was signed in
That's it. No IPs, no full UAs, no cookies dedicated to tracking. If your visitors ever ask what data we hold on them, the honest answer is "almost nothing".
Why we built this in
Two reasons.
1. Your data, not someone else's. When you wire up Google Analytics or Plausible, your traffic data lives on their servers. You depend on their pricing, their availability, and their TOS staying friendly. With this, the data lives in the same Postgres database as your links — exportable, ownable, deletable.
2. No cookie banner needed. Because we don't store any reidentifying information, this analytics surface doesn't require a consent banner under GDPR, CCPA, or any of the other privacy regimes worth worrying about.
What's coming
- Per-day revenue series (sales-by-day chart alongside the visit chart)
- A proper
transactionstable so we can show total period revenue, not just new-customer value - Live "online now" panel
- Per-tenant scope selector for whitelabel agencies running multiple platforms