Apps and sites I build for myself, with the source open on GitHub.
2015 — now
10k+ downloads
/MultiplatformAndroidiOSWeb
Naj Autoškola
A driving-theory exam trainer, rebuilt for every screen.
The app that started it all. I published the first version on Google Play in 2015; it earned revenue and led directly to my first developer job. Today it's a Kotlin Multiplatform app that runs on Android, iOS and the web from one shared Compose codebase.
▹Adaptive layouts for phones, tablets and desktop browsers, with mouse and keyboard as first-class input
▹Question banks in three languages and a UI in four, with the official exam format for every license group
▹Stateless screens, one StateFlow per ViewModel, and repositories that hold the business rules
A ground-up rewrite of the Jellyfin Android client, which wrapped the web client in a WebView. This one is native: Kotlin Multiplatform with a shared Compose UI for Android, iOS and desktop, talking to Jellyfin servers directly over their HTTP API.
▹One Compose Multiplatform UI shared across Android, iOS, Windows, macOS and Linux
▹ExoPlayer on Android and libVLC on desktop for video playback
▹Codec detection, media-source resolution and queue handling carried over from the original app
A budgeting app that keeps track of what goes out every month: subscriptions, rent, bills. Written in Kotlin Multiplatform with one shared Compose UI for Android and desktop.
▹Monthly and yearly outflow at a glance, with what's coming up next and where the money goes by category
▹Costs in more than one currency, each tied to the card or account that pays it
▹A price history for every subscription, so a quiet price rise shows up as a trend
Kotlin Multiplatform
Compose Multiplatform
2026/Android
Mosaic
A small Android app that shows how I structure code.
An architecture showcase: a single-activity Compose app with a Retrofit network layer talking to a Rails backend. The point isn't the features, it's the shape — the kind of codebase I'd use on a client project.
▹Packages sliced by what a file is about
▹Three modules wired by convention plugins
▹MVVM with unidirectional data flow, one direction of dependency enforced by plugins