Measure logo

GitHub logo

The open-source Firebase Crashlytics alternative, built for mobile

Measure gives mobile teams crashes, ANRs, performance, network monitoring and full session context in one thoughtful platform. Every issue gets an auto-captured Session Replay, so you and your coding agents have the deep context needed to fix issues fast. Measure is fully open-source and gives you complete control over your data with no sampling.

Why mobile teams look for a Firebase Crashlytics alternative

Crashlytics is free, widely deployed and a sensible place to start. For most apps, its basic crash reporting is enough to get going. Teams tend to start looking due to the following reasons:

  1. Limited context makes solving issues harder. A stack trace tells you where the app crashed, but doesn't tell you what the user and device were doing when it happened. Crashlytics requires manually instrumenting breadcrumbs and keeping them in sync with every release. Individually instrumenting every possible user interaction, device signal, network event and navigation change is cumbersome and hard to keep up with as the app evolves. Teams often find out in production that they are missing logs and events which could have helped them debug issues quicker.
  2. No control over sampling. To keep crash reporting and performance monitoring free, Firebase applies internal sampling which developers cannot change. Production issues are affected by device, network, app versions, OS versions and many other factors. The ability to collect and analyze data across multiple dimensions dynamically is necessary to hone in on issues as apps scale.
  3. Toolset Fragmentation hides the true cost. Performance traces go in Firebase Performance Monitoring, a separate product with a separate SDK. Analytics events which are useful for debugging end up in Google Analytics. Custom analysis of your own data needs paid BigQuery export and only happens in delayed batches. Custom alerting needs Cloud Functions. In-app bug reports require a third-party tool. The number of SDKs in your app, the dashboards you look at and the MCP integrations your agents need keep climbing, with the context you need for any single investigation spread across multiple sources.
  4. Platform Lock-In. The Crashlytics SDKs are open source, but the backend and dashboard are proprietary. You cannot audit the code, verify the data pipeline, or move your raw data out to any destination except BigQuery with a paid export.

Measure was built to close these gaps: full session context by default, dynamic sampling with user control, one platform for everything mobile teams need, and an open stack you can contribute to.

Measure vs Firebase Crashlytics: The Full Comparison

CapabilityMeasureFirebase Crashlytics
Crash reportingYes, with Session Replay on every crashYes, with manually instrumented breadcrumbs
ANR detectionYes, with Session Replay attachedYes, with manually instrumented breadcrumbs
Session context on every issueAuto-capturedManual breadcrumbs
Session ReplayYes, on every issue
Auto-captured contextGestures, navigation, network calls, lifecycle eventsScreen views when Google Analytics is enabled; rest is manual
Network monitoringYes, with full dynamic sampling controlSeparate Firebase Performance Monitoring product, with no user-controlled sampling
Performance tracesYes, with full dynamic sampling controlSeparate Firebase Performance Monitoring product, with no user-controlled sampling
In-app bug reportsNo, needs a third-party tool
User journeysRequires Google Analytics
Open sourceYes, Apache 2.0 end to endSDKs only; backend and dashboard are proprietary
Self-hostable
Public roadmap and issue trackerSDK repositories only
Raw data exportTo any destination, in Enterprise plansPaid export to BigQuery only
PlatformsAndroid, iOS, iPadOS, Flutter, React Native, Kotlin MultiplatformApple platforms, Android, Flutter, Unity
Product focusMobile onlyOne of many Firebase products

Go Beyond crash reports with full session context

A Crashlytics crash report gives you a stack trace and whatever breadcrumbs you instrumented ahead of time. Taps, navigations, network calls and lifecycle transitions each need their own instrumentation, and this needs to keep up with code changes resulting in an error prone process with missing context as the app evolves.

Measure auto-captures gestures, navigation, lifecycle events, network calls and traces, then replays them as a Session Replay attached to every crash, ANR and error.

The debugging process changes from guesses about what happened to facts you can observe. Instead of reading a stack trace, forming a hypothesis, shipping breadcrumbs and waiting a release cycle to test it, you just open the issue and watch what happened. Even better, just point your agent at the issue and it can use our MCP Server to fetch deep context across several occurrences to help you find the root cause. The hardest to reproduce issues: a crash that only happens on a certain device in a specific navigation path, an error that only occurs when a background request times out before completion, a failure that depends on state built up over several screens, become easier than ever to fix.

Performance, Crash and ANR monitoring built only for mobile

Crashlytics is part of Firebase, where mobile is one product line among many and roadmap decisions compete with everything else on the platform.

Measure is built only for mobile. Crashes & ANRs, App Health, Performance Traces, Network Performance, Bug Reports and User Journeys are all designed around the failure modes mobile apps experience in production: memory pressure, main-thread blocking, errors during background and foreground transitions, and unstable network conditions.

Mobile is not a part of our product. It is the whole product.

The self-hostable, open-source Crashlytics alternative

Crashlytics publishes its SDKs on GitHub, but the backend and dashboard are proprietary and run only on Google's infrastructure.

Measure is open source end to end under an Apache 2.0 license. You can read the code, run it, self-host it, and audit how data is collected and stored. If you have ideas on how to make it better, you can open an issue or send a pull request.

Open source software is better for transparency because you can see the code handling your data. It's better for security since more eyes on the code lead to more discovered vulnerabilities. It is better for flexibility, since you can raise issues and PRs to improve the platform or host it yourself if you have the need. Being open source also makes Measure easier to use with coding agents - just point your agent at the code or docs and it can figure out everything it needs to make full use of everything the platform offers without poking around a black box.

One platform for Android, iOS, iPadOS, Flutter, React Native and KMP

Measure supports Android, iOS, iPadOS, Flutter, React Native and Kotlin Multiplatform.

Our SDKs are designed to be thoughtful, flexible, lightweight and performant across all platforms. Crashes, ANRs, performance traces, network monitoring and session context are tracked, symbolicated and collected with platform-specific best practices in mind so that observability doesn't impact the performance of the app itself.

Data across all your Android, iOS and cross-platform apps, along with their dev, staging and production variants feeds into a single unified dashboard so you can ship and monitor your apps with confidence.

Simple, transparent pricing with full data ownership

Crashlytics crash reporting is free but data export and advanced analysis depend on separate products with independent pricing. Products like BigQuery export for custom analysis, Cloud Functions for custom alerting, Google analytics for user interaction events lead to platform lock-in and hard to predict costs as apps scale.

Measure has a single price based on how much data you send. No per-seat charges, no arbitrary feature bundles. Raw data export is available in enterprise plans to a destination you choose without restriction to a particular cloud or vendor. With Adaptive Capture you can adjust data collection rates without shipping an app update, which makes it easy to scale telemetry when your app needs to while keeping costs under control.

Who is Measure right for?

Measure is useful for any mobile app but it fits best for apps with growing users, complexity and scale. If production issues are getting harder to debug due to missing information about the states that led to them, or if users are complaining about performance and network issues and your current setup lacks deep telemetry and context to fix them, Measure will fit like a glove.

Measure can also be a good choice if data ownership, auditability of the platform and avoiding platform lock-in to a single ecosystem matters to you for security or compliance reasons.

If simple crash reporting is all you need, and your team is already comfortable inside the Google ecosystem, Crashlytics is a decent option. Measure is designed for growing mobile teams that need production observability at scale. With deep telemetry, Measure makes fixing issues with agents and shipping amazing mobile experiences easier and faster.

Migrating from Crashlytics

Switching to Measure does not have to be a rip-and-replace. You can install the Measure SDK and run it alongside Crashlytics while you evaluate. A generous free tier lets you integrate your app, send telemetry data, use session replays, performance traces and MCP server integration to debug issues and see how Measure helps improve your app.

Many teams use both Crashlytics and Measure together until they make the switch. Setup and per-platform guides are in the docs.

Firebase Crashlytics alternative FAQs

Get Started For Free

or checkout the docs