Open Source Web & Product Analytics
Website | Demo | Documentation | Discord | License (AGPL-3) | Contribute
Rybbit is the modern open source and privacy friendly alternative to Google Analytics. It takes only a couple minutes to setup and is super intuitive to use.
π View Live Demo - See Rybbit running on a real-life production site with over a million visits a month.
There are two ways to start using Rybbit:
| Option | Description |
|---|---|
| Hosted Service | Free tier available - the fastest way to get started |
| Self-Hosting | Deploy and manage Rybbit on your own VPS for complete control |
π Explore our documentation to learn more about installation, configuration, and usage.
- All key web analytics metrics including sessions, unique users, pageviews, bounce rate, session duration
- Session replays
- No cookies or user tracking - GDPR & CCPA compliant
- Customizable goals. retention, user journeys, and funnels dashboards
- Advanced filtering across 15+ dimensions
- Custom events with JSON properties
- 3 level location tracking (country -> region -> city) + advanced map visualizations
- Real time dashboard
- Support for organizations and unlimited number of sites
This repo includes two ready-to-use modes for the web client:
- Development: live reload (Next.js dev server), edits update in real time
- Production: optimized Next.js build served by the production runtime
You can switch between them with a single command.
Prerequisites:
- Docker and Docker Compose v2
- A populated .env file in the project root (run ./setup.sh if needed)
Commands:
-
Development (uses docker-compose.yml + docker-compose.override.yml): ./up-dev.sh
-
Production (uses only docker-compose.yml): ./up-prod.sh
Notes:
- In dev, the client runs npm run dev in a container with your local client/ code mounted. Port mapping: host 3003 -> container 3002 (open http://localhost:3003).
- In prod, the client is built with client/Dockerfile and served on port 3002 by default. If you have Caddy enabled and proper DOMAIN_NAME, it will proxy 80/443 to the client/backend.
- You can still run these manually without the helper scripts:
- Dev: docker compose up -d --build
- Prod: docker compose -f docker-compose.yml up -d --build











