Unofficial Flutter mobile client for Rybbit, an open-source web analytics platform.
- 📊 Dashboard & analytics - multi-site dashboard with real-time visitor counts and organization filtering, time-series charts with period comparison (current vs previous), selectable metrics (users, sessions, pageviews, pages/session, bounce rate, duration), time range picker (today, yesterday, 7/30 days, week, month, year, custom), and filters by country, browser, OS, device, referrer, pathname and more
- 📈 Detailed metrics - top pages with visitor and session counts, referrer breakdown, countries with flag indicators, and browser / OS / device type / screen resolution stats
- ⚡ Performance (Core Web Vitals) - LCP, CLS, FCP, TTFB and INP monitoring with Good / Needs Improvement / Poor ratings, trends over time, and breakdown by pages, countries, devices, browsers and OS
- 🎯 Events & custom tracking - custom event names with occurrence counts, event properties breakdown, events over time chart, and outbound links tracking
- 🏁 Goals & funnels - goal creation/editing (path-based and event-based), conversion rate tracking, and funnel visualization with step-by-step dropoff analysis
- 👥 Sessions & users - session list with country flags, browser info and entry pages, session detail with full event timeline, identified users with traits (username, email), and session replay event viewer
- 🐛 Error tracking - JavaScript error list with occurrence counts and sessions affected per error
- 🛠️ Site management - site configuration (tracking toggles, excluded IPs/countries) and organization management with member listing
- 🎨 Settings - Dark / Light / Auto theme, 11 languages, server connection and auth method display
- Flutter SDK 3.38+ (Dart 3.10+)
- Android SDK / Xcode (for iOS)
- A running Rybbit instance (Rybbit v1.0+) or Rybbit Cloud
Google Play: com.nkshub.rybbit_unofficial, released to production in 177 countries. A release goes live once Google finishes reviewing it, so a freshly submitted version can take a day or two to show up on the listing.
From source: Android 5.0+ and iOS 13+. iOS has no store build, so it has to be built and signed locally.
git clone https://github.com/nks-hub/rybbit-app.git
cd rybbit-app
# Install dependencies
flutter pub get
# Generate code (Freezed models, JSON serialization)
flutter pub run build_runner build --delete-conflicting-outputs
# Generate localizations
flutter gen-l10n
# Run
flutter runThe app is a client only. It talks to your own Rybbit instance (or Rybbit Cloud) and stores nothing of its own beyond the server URL and session.
Copy .env.example to .env and fill in your values:
cp .env.example .envThe .env file is loaded at build time via --dart-define-from-file:
# Run with .env
flutter run --dart-define-from-file=.env
# Build with .env
flutter build apk --dart-define-from-file=.envCurrently supported variables:
| Variable | Required | Description |
|---|---|---|
SENTRY_DSN |
No | Sentry error tracking DSN. App works without it. |
- Email and password, kept as session cookies
- Rybbit API key
Enter your Rybbit server URL (e.g. https://analytics.example.com) and credentials on the login screen.
| Language | Code | Language | Code |
|---|---|---|---|
| English | en |
Japanese | ja |
| Czech | cs |
Korean | ko |
| German | de |
Polish | pl |
| Spanish | es |
Portuguese | pt |
| French | fr |
Chinese | zh |
| Italian | it |
| Layer | Technology |
|---|---|
| Framework | Flutter 3.38+ / Dart 3.10+ |
| State Management | Riverpod |
| Routing | go_router |
| HTTP Client | Dio with cookie management |
| Local Storage | shared_preferences + Flutter Secure Storage |
| Charts | fl_chart |
| Serialization | Freezed + json_serializable |
| Localization | Flutter gen-l10n (ARB files) |
| Error Tracking | Sentry (optional, via --dart-define) |
Code is grouped by feature:
lib/
├── core/
│ ├── config/ # App configuration
│ ├── network/ # Dio provider, auth interceptor
│ ├── router/ # go_router setup, shell screen
│ ├── sentry/ # Sentry initialization
│ ├── state/ # Current site provider
│ ├── storage/ # Local storage service
│ └── theme/ # Light & dark Material themes
├── features/
│ ├── analytics/ # Overview, charts, time range
│ ├── auth/ # Login (email/password + API key)
│ ├── dashboard/ # Site listing, org filter
│ ├── errors/ # JS error tracking
│ ├── events/ # Custom events, properties
│ ├── funnels/ # Conversion funnels
│ ├── goals/ # Goal CRUD + conversion stats
│ ├── metrics/ # Pages, referrers, countries, devices
│ ├── organizations/ # Org listing + members
│ ├── performance/ # Core Web Vitals
│ ├── session_replay/ # Replay event viewer
│ ├── sessions/ # Session list + detail
│ ├── settings/ # Theme, language, account
│ ├── sites/ # Site config management
│ └── users/ # User list + detail + traits
├── l10n/ # ARB translation files
└── shared/
├── models/ # Freezed data models
├── utils/ # Formatters, helpers
└── widgets/ # Reusable UI components
Each feature follows: data/ (API) → application/ (state) → presentation/ (UI)
| Platform | Minimum |
|---|---|
| Android | API 21 (5.0 Lollipop) |
| iOS | 13.0 |
| Backend | Rybbit v1.0+ |
# Debug (with .env)
flutter run -d <device-id> --dart-define-from-file=.env
# Build APK (debug / release)
flutter build apk --debug --dart-define-from-file=.env
flutter build apk --release --dart-define-from-file=.env
# Code generation (after model changes)
flutter pub run build_runner build --delete-conflicting-outputs
# Translations (after ARB changes)
flutter gen-l10n
# Analyze
flutter analyze
# Tests
flutter test- Create
lib/l10n/app_<code>.arbbased onapp_en.arb - Translate all keys
- Add locale code to
supportedLocaleCodesinlib/app.dart - Add display name to
localeDisplayNamesinlib/app.dart - Run
flutter gen-l10n
Contributions are welcome! For major changes, please open an issue first.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: description') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- 📧 Email: dev@nks-hub.cz
- 🐛 Bug reports: GitHub Issues
GNU General Public License v3.0 — see LICENSE for details.
This is an unofficial community project. Rybbit is developed by rybbit-io.
Made with ❤️ by NKS Hub






