AppVion Studio logo AppVion Studio Case study

Property maintenance platform

PropFix: a field service command layer for modern maintenance teams.

A Kotlin Multiplatform maintenance workflow connecting property managers and the contractors who do the work — job assignment, proof of work, progress visibility, and manager approval in one system instead of four phone calls and a paper docket.

Kotlin Multiplatform Compose Multiplatform Supabase Work orders Multi-role
3 roles Android & iOS from one codebase Offline-capable
PropFix manager home with open, dispatched, in-progress and completed jobs and a waiting tenant complaint

The problem

Maintenance work is coordinated by whoever is willing to keep chasing it.

Context

A property manager looking after multiple sites is the hub of every maintenance job — taking the report, finding an available contractor, confirming the work happened, and answering for it if an owner asks later.

What kept breaking

Jobs lived in phone calls and messages, so nothing was searchable. Nobody could say which jobs were open right now without asking around. And "it's done" was a claim, not a record — which made invoice disputes unwinnable in either direction.

The real requirement

A shared state that all three parties read from and write to: the manager who raises the job, the contractor who does it, and the admin who oversees the whole portfolio.

Inside the app

Screens from the build.

PropFix sign-in screen
Sign inRole-based entry, encrypted on device
PropFix manager home with the job board counts
TodayManager · The board at a glance
PropFix jobs list filtered by status
JobsManager · Open, dispatched, in progress
PropFix job detail with the assigned contractor and proof of work slots
Job detailManager · Assign and evidence
PropFix contractor list of jobs on now and waiting to start
My jobsContractor · What to do next
PropFix tenant home with reported issues and their status
Your homeTenant · Report and follow up

The approach

Three roles, one shared job state.

01

Property manager

Raise a work order against a property, assign it to a contractor from the directory, and watch its status move without chasing anyone.

02

Contractor

Join by invite code, see assigned jobs, work through them, and attach proof of completion from the phone already in hand.

03

Admin

Oversee the full portfolio: every property, every contractor, every open job, plus billing and plan management.

04

Shared core

Domain models, repositories, and business rules live in shared Kotlin so Android and iOS cannot disagree about what a job's status means.

Engineering highlights

The parts that were harder than they look.

Invite-code onboarding

Contractors are not customers — they should not self-register into someone else's portfolio. Access is granted by a manager-generated invite code, so the contractor directory stays a curated list rather than an open sign-up form.

Proof of work

Before and after records attach to the job itself, not to a chat thread. When an invoice is queried months later, the evidence is already sitting on the record rather than somewhere in a phone's camera roll.

Sync you can see

The dashboard states its own sync status rather than silently assuming it is current. A field worker with poor signal can tell the difference between "nothing to do" and "we have not heard from the server lately" — a distinction most apps quietly collapse.

Shared logic, native shells

Compose Multiplatform with Koin dependency injection and a local SQLDelight cache. Business rules are written once; each platform keeps its own native presentation.

Technology

The stack behind PropFix.

Kotlin Multiplatform Compose Multiplatform Material 3 Coroutines & Flow Supabase Supabase Auth SQLDelight Koin Role-Based Access

More case studies

Other operational systems we have built.

Logistics platform

D. Delivery

Three-app Kotlin Multiplatform delivery platform with dual video proof of delivery, expanding-radius dispatch, and server-enforced cash reconciliation.

Read the Case Study
Fleet dispatch platform

SnowGrid

Three-role snow removal management platform with live dispatch mapping, area measurement, photo verification, and Stripe escrow.

Read the Case Study
All work

Full portfolio

Every case study and product demo in one place, across logistics, field service, education, events, and SaaS.

Browse all case studies
Industry

Field service apps

Dispatch, work orders, proof of work and offline sync: what a field service app needs, from the products we have shipped.

See field service apps

Start the conversation

Managing properties, crews, or contractors?

Job assignment, proof of work, and getting paid for it — if that runs on phone calls and a spreadsheet today, it is usually a strong candidate for the same treatment.

WhatsApp Start Project