06 / 11 — Case study

Kiraya

A cross-platform property management app for landlords and tenants: listings, leases, rent tracking and receipts, built on Flutter and Firebase.

2025 · Flutter / Firebase / Figma
Kiraya

A published Android app that lets a landlord hold properties, leases and rent records in one place and lets a tenant see their own agreement and payment history, built on Flutter with Firebase as the backend.

Problem

Rental administration in most small portfolios is a spreadsheet and a messaging thread. The landlord needs to know who owes what this month; the tenant needs to know what they already paid and where the receipt is. Both needs are met by one shared record, and neither is met by whoever happens to have the spreadsheet open.

The product constraint that shaped the engineering is that the tenant side must be usable by someone who has no interest in property management software. Which means the landlord does the work and the tenant gets a read-only view of the one thing they care about.

What it does

Property listings with unit-level detail; tenant records tied to a lease with start and end dates; rent tracking per period, marked paid against a payment, with a generated receipt; and a landlord dashboard that surfaces arrears without a search.

The tenant-facing surface is deliberately small: current lease, payment history, receipts. That reduction is the design.

How it's built

Flutter for a single codebase across Android and iOS, which is the right call for a two-sided app with a small team and identical flows on both platforms. Firebase supplies authentication, the document database and storage, which removes an entire category of infrastructure work and buys offline persistence more or less for free.

The data model is organised around the lease rather than the property, because the lease is the object that carries money and dates; a property without a lease is just an address. Payments are append-only records referencing a lease and a period, so a correction is a new entry rather than an edit, which is the minimum honesty a financial record needs.

Figma carried the design before any widget was written, and the component structure in Flutter follows the Figma component names, which made the handoff to myself a mechanical exercise rather than an interpretation.

FIG. 01 — The landlord view: properties, leases and arrears in one list.

Status

Live on the Play Store as dev.mkhalid.kiraya. iOS build exists; distribution is the open item. Payment collection is not handled in-app - the app records payments rather than taking them, which is a deliberate scope boundary rather than an oversight.

Credits

  • The Flutter and Firebase teams
  • Figma, for making the two-sided flow reviewable before it was expensive

Copyright © 2026

Designed, Developed & Maintained by

Mohammed Khalid