Mobile App · In Development

TradePost

A South African two-sided home-services marketplace built with Kotlin Multiplatform. Homeowners post jobs, verified pros quote, and everyone gets paid. Currently in development.

Client

Personal Project

Year

2026

Duration

Foundation Phase

Role

Solo Developer

Android + iOS
Platforms
Compose MP
UI Layer
MVI + Clean
Architecture
Supabase + Kotlin
Backend
TradePost

What it does

TradePost is a two-sided home-services marketplace for South Africa. Homeowners post jobs, compare quotes, and pay by milestone. Verified trade professionals win leads and get paid. The mobile app is built on Kotlin Multiplatform with a shared Compose Multiplatform UI for Android and iOS. It is an active, evolving codebase and is not yet shipped.

The Product

TradePost is a two-sided home-services marketplace built for South Africa. The loop is simple: homeowners post a job, compare quotes from verified pros, and pay by milestone. Providers get verified, win leads, get paid. The pillars are KYC, milestone payments, in-app chat, and map discovery. In-app copy reflects the market. Jobs are priced in Rand. Categories cover plumbing repair and geyser replacement.

The Foundation

The mobile app codebase is internally known as quote-it or kmm-boiler. It uses Kotlin Multiplatform with a shared Compose Multiplatform UI for Android and iOS. The stack is specific: Kotlin 2.2.20. Compose Multiplatform 1.9.3. Ktor 3.3.1 for networking. SQLDelight 2.0.2 for the local database. Koin 4.1.0 for dependency injection. Decompose 3.5.0 handles navigation. Coil 3 does image loading. SKIE handles Swift interop for iOS. Backend and auth run on the Supabase Kotlin SDK 3.2.5. Maps use MapLibre Compose. Checkout happens in a Paystack-based in-app WebView.

Architecture follows a strict MVI pattern. ViewModels extend MviViewModel<State, Intent, Effect>. The codebase uses clean architecture layers: data, domain, and presentation. Platform-specific code uses expect/actual declarations. Build config relies on convention plugins.

Where It Stands

This is a build log, not a launch post. TradePost is in its foundation phase and the codebase moves every week — there's an active changelog to prove it. Current work is hardening the UI, accessibility, and the core design system: a real component library of buttons, cards, lead cards, milestone timelines, and hero image cards, every one covered by automated Roborazzi screenshot tests. What isn't here yet is an app-store listing and user numbers — that's the next chapter, not a caveat.

Built with

Kotlinkotlin-multiplatformcompose-multiplatformandroidiosktorsqldelightkoindecomposeSupabasecoilmaplibre

The screens

The build log

Development updates

No development updates yet. Check back soon for progress updates and insights.