fltBuilt for Flutter

Analytics & Monitoring
for Flutter

iOS + Android from one Dart codebase. Dart error zones for crash capture, route observers for screen tracking, Dio / http client interceptors for network calls — native crash reporting on both platforms included.

  • Dart error zones catch every uncaught exception
  • Native crash capture on iOS (Mach signals) and Android (libsignal)
  • Route observer integration for Navigator and GoRouter
  • Dio interceptor and http client wrapper for network tracing
  • Asset bundle integration — pre-fetched config without extra round-trip
  • Pub.dev package — null-safe, sound-types throughout
dart
1// In your main.dart
2import "package:justanalytics/justanalytics.dart";
3
4void main() async {
5 WidgetsFlutterBinding.ensureInitialized();
6 await JustAnalytics.init(
7 siteId: "YOUR_SITE_ID",
8 environment: "production",
9 );
10 runApp(const MyApp());
11}
Active Users
0+12%
Pageviews
0+8%
Errors
0resolved
Uptime
0%all green

Built for Flutter apps

One Dart package, both platforms — same crash dashboard for iOS and Android builds.

Dart + native crash

Dart-side exceptions via runZonedGuarded. Native crashes on iOS (Mach signals) and Android (libsignal) bridged through the same pipeline.

Network tracing

Dio interceptor — one line in your client setup. Or wrap the http package's Client class. Every request becomes a span.

Route observers

JustAnalyticsNavigatorObserver plugs into MaterialApp.navigatorObservers. Works with GoRouter via the goRouter.observers list.

Privacy compliant

Apple PrivacyInfo.xcprivacy and Play Store Data Safety form ship with the package. ATT-friendly on iOS, no GAID on Android.

Frame-rate tracking

WidgetsBinding.addTimingsCallback captures slow frames. Identifies which routes are janky on which device classes.

Alert rules

Crash-free-session-rate, p95 startup, network-error-rate per route. Email, webhook, or PagerDuty.

main.dart setup

pub add the package, wrap runApp in a guarded zone, mount the navigator observer.

# Install
flutter pub add justanalytics

# main.dart
import 'package:flutter/material.dart';
import 'package:justanalytics/justanalytics.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await JustAnalytics.init(
    siteId: const String.fromEnvironment('JA_SITE_ID'),
    environment: 'production',
    captureCrashes: true,
    captureNetwork: true,
    captureScreens: true,
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) => MaterialApp(
    navigatorObservers: [JustAnalyticsNavigatorObserver()],
    home: HomePage(),
  );
}

Ready to simplify your stack?

Replace five tools with one platform. Start with the free tier or try Pro free for 7 days.

Start 7-Day Free Trial