Open Source
Building in public is part of how we work. These libraries came out of real production problems we solved in KMP projects; we've packaged them so the broader Kotlin Multiplatform community can use and improve them.
Both libraries are published to Maven Central under the Apache 2.0 license.
Libraries
arrow-errors
v1.1.0 · Maven Central · Apache 2.0
A Kotlin Multiplatform error-handling library that turns raw exceptions into rich, actionable objects, carrying severity, presentation mode, user-facing messages, and navigation directives. Designed to standardise error handling across Android, iOS, and beyond from a single shared codebase.
error-core
Rich exceptions with severity, presentation mode, actions, and navigation directives.
error-catalog
Centralised error messages with i18n support, with English, Spanish, and French built in.
error-compose
Ready-to-use Material 3 components: Dialog, Snackbar, FullScreen, and ErrorPresenter.
// build.gradle.kts
implementation("io.github.blackarrows-apps:arrow-errors-core:1.1.0")
implementation("io.github.blackarrows-apps:arrow-errors-catalog:1.1.0")
implementation("io.github.blackarrows-apps:arrow-errors-compose:1.1.0")
arrow-http
v1.0.0 · Maven Central · Apache 2.0
A modular, client-agnostic HTTP abstraction for Kotlin Multiplatform. Your repository layer depends only on the core interfaces; swap implementations without touching business logic. Ships with a production-ready Ktor implementation with built-in auth refresh and retry policies.
http-core
Client-agnostic interfaces: HttpRequestExecutor, ApiResponse, and exception hierarchy.
http-ktor
Ktor implementation with OkHttp on Android/JVM and Darwin on iOS. Koin module included.
// build.gradle.kts
implementation("io.github.blackarrows-apps:http-core:1.0.0")
implementation("io.github.blackarrows-apps:http-ktor:1.0.0")
Built in Production, Shared Openly
Extracted from real apps
Both libraries were built to solve specific architectural problems in AMPM, a production KMP app with thousands of active users.
Community-first
KMP is still maturing. Sharing infrastructure patterns helps the whole ecosystem move faster, and we benefit from community feedback and contributions.
Architectural patterns, not just utilities
These aren't quick helpers; they encode specific architectural decisions about error handling and HTTP abstraction that we've validated in production.
Building a KMP Project?
These libraries came out of real consulting work. If you're building a Kotlin Multiplatform app and want help with architecture, error handling, or data layers, let's talk.