Ninelytics
Free, open source web analytics platform with AI-powered insights, GDPR-compliant consent, Core Web Vitals monitoring, and real-
About
Ninelytics
A self-hosted, privacy-first web analytics platform built with Next.js. Track pageviews, events, sessions, and conversions across multiple websites from a single dashboard — with real-time data, AI-powered insights, geo-location maps, custom reports, and goal tracking.
Does it scale? This has been running 13+ websites, including a county government site processing thousands of events, on a laptop behind a Cloudflare Tunnel. 1.5% CPU, 474 MB RAM, the 4 containers.
Features
- Multi-website tracking — manage and monitor multiple sites from one account
- Real-time analytics — live visitor feed with session and event data
- Interactive map — visitor geo-location powered by MapLibre GL and MaxMind
- Custom reports — build and save your own report queries
- Goal tracking — define pageview, event, and duration goals with conversion funnels
- AI assistant — ask questions about your data in natural language (GPT, Claude, Gemini)
- Role-based access — Admin, Owner, and Viewer roles with per-website permissions
- Dark / light theme — system-aware with manual toggle
- Analytics consent — built-in GDPR-friendly consent banner with granular controls
- Cloudflare Analytics import — connect your Cloudflare API token to import historical traffic data
- Google Analytics 4 import — connect via OAuth to import historical GA4 data and breakdowns
- Google Search Console — import search queries, clicks, impressions, CTR, and positions via OAuth
- Stripe revenue tracking — connect a restricted API key to correlate revenue with analytics
- PostHog import — import analytics from PostHog via HogQL Query API (pageviews, sessions, bounce rate, breakdowns)
- Sitemap auto-indexing — automatically submit new pages to Google (Indexing API) and Bing/other engines (IndexNow) whenever your sitemap changes
- 7-day forecast — traffic and revenue predictions based on weighted moving average with weekly seasonality
- Revenue charts — daily revenue bar charts and forecast when Stripe is connected
- Performance badges — automatic website health indicators (On Fire, Growing, Steady, Declining, Inactive)
- Browser-driven timezone — all stats respect the user's local timezone automatically
- Export — download analytics as CSV, Excel, or JSON
Screenshots
Charts & Analytics
<p> <img src="public/repo/charts-1.png" width="32%" /> <img src="public/repo/charts-2.png" width="32%" /> <img src="public/repo/charts-3.png" width="32%" /> </p>
AI Insights — chat with your analytics data, generate charts on demand
<p> <img src="public/repo/ai-1.png" width="49%" /> <img src="public/repo/ai-2.png" width="49%" /> </p>
Documentation — setup guides for all integrations
Integrations
All integrations are optional and configured from the Settings page (credentials) and per-website settings (linking). Historical data merges with live tracking — no gaps when migrating.
| Integration | Auth method | What it imports |
|---|---|---|
| Cloudflare | API Token (per-user) | Historical pageviews, visitors, top countries/devices/pages/browsers |
| Google Analytics 4 | OAuth (per-user) | Historical pageviews, visitors, breakdowns (countries, devices, pages, browsers) |
Fact Sheet
Discussion
Pulling the latest discussion from LiftOff now.