Currently in development

One SDK.
One dashboard.
Zero compromise.

Unified crash reporting and analytics for Kotlin Multiplatform teams. Drop into commonMain, works on iOS and Android.

// build.gradle.kts
implementation("dev.olvex:sdk:0.1.0-alpha8")
 
// commonMain — that's it
Olvex.init(apiKey = "your_key")

Every KMP team hits
the same wall.

Crash reporting and analytics exist for Android or iOS — never for both. Two SDKs, two dashboards, stack traces that don't understand your shared code.

🔴
KMP-native crash reporting
Symbolicated stack traces that understand your commonMain code. Not just Android. Not just iOS. Both.
📊
Unified analytics
Session tracking and custom events from one SDK. See iOS and Android data side by side in one dashboard.
📱
One dependency
Drop into commonMain. Works on both platforms. No platform-specific setup, no manual symbolication.
🚨
Alerting
Get notified via email or Slack the moment your app crashes. Know before your users report it.
💰
Spend caps
Set a budget limit. Never get a surprise bill. Built for indie developers and small teams.
🔒
Privacy-first
No IP addresses. No personal data. No selling to third parties. Just the crash data you need.

iOS crash reporting in KMP:
what changes in practice.

Side-by-side view of the setups teams actually use today: Crashlytics with bridge tooling, Sentry KMP, and Olvex.

CategoryCrashlytics + Kermit/NSExceptionKtSentry KMPOlvex
Primary modelFirebase Crashlytics + bridge layer for Kotlin/Native crash contextSentry SDK for KMP + symbol upload workflowOne SDK in commonMain
iOS KMP crash pathWorks, but usually needs iOS hook setup for richer Kotlin crash detailsWorks through KMP APIs and native integrationsBuilt-in NSException path + native signal marker recovery
Stack trace readabilityGood with bridge configured; baseline fatal reports can be noisy for Kotlin framesGood when debug symbols are uploaded and release mapping is correctStructured crash payload with topStackFrame and fingerprint metadata
Integration effortMedium to highMediumLow to medium
Crash + analytics togetherNot KMP-first in one workflowObservability-focused stackUnified crash + analytics dashboard

Illustrative examples of how crash output usually looks in each approach.

Crashlytics path (without rich bridge context)
Exception Type: EXC_CRASH (SIGABRT)
...
konan::abort
kotlin::ProcessUnhandledException
Kotlin_ObjCExport_trapOnUndeclaredException
Sentry KMP (with symbols configured)
IllegalStateException: cache failed
at kfun:feature.repo.CacheRepo.load(...)
at kfun:feature.screen.HomeVm.refresh(...)
...
Olvex event shape
exceptionType: IllegalStateException
message: Cache read failed
stackTrace:
  kfun:feature.repo.CacheRepo.load(...)
  kfun:feature.screen.HomeVm.refresh(...)
topStackFrame: kfun:feature.repo.CacheRepo.load(...)
exceptionKind: throwable

Simple pricing.
No surprises.

Start free. Upgrade when you need to. Spend caps on all paid plans.

Free
$0
forever
10,000 events / month
Business
$79
per month
5,000,000 events / month