My setup

Uses

The tools, libraries and services I build with every day, and why each one earned its place.
Editor & tools

Android Studio

Where almost all of my Kotlin gets written, Android and shared code alike.

Xcode

For the thin Swift layer around the shared Kotlin framework, and for profiling on a real iPhone.

Claude · Cursor

For reviews, tests and first drafts. Nothing ships that I haven't read.

GitHub Actions · Fastlane

Builds, tests and store releases for Android and iOS from one pipeline.

Maestro

End-to-end UI flows that read like a checklist and run on both platforms.
Kotlin stack

Kotlin Multiplatform · Compose Multiplatform

Shared logic everywhere, shared UI where the platform doesn't do it better.

Ktor · kotlinx.serialization

Networking and JSON in common code, with no platform glue.

SQLDelight · SQLCipher

Type-safe SQL that compiles for both platforms, encrypted when the data needs it.

Koin · kotlin-inject

Koin when setup speed matters, kotlin-inject when I want the graph checked at compile time.

Decompose · SKIE

Navigation and lifecycle that behave the same on Android and iOS, and Kotlin flows that feel native in Swift.

Media3 · Readium

Background audio and EPUB rendering in Parrot.
This site

Kobweb · Compose for Web

The whole site is Kotlin, exported to static pages.

GitHub Pages · Umami

Free hosting, and analytics without cookies or personal data.

Instrument Serif · Geist

A serif for headlines, a clean sans for reading, and Geist Mono for the small print.