MJTalk ↗
← All posts

August 9, 2026 · Magati Joel

Building Landlord Ledger: A Property Management App for Modern Landlords

How I built Landlord Ledger to simplify property, tenant, rent and payment management using Flutter, Supabase and PostgreSQL.

Building Landlord Ledger: A Property Management App for Modern Landlords cover

Why I Built Landlord Ledger

Managing rental properties can quickly become difficult when information is scattered across notebooks, spreadsheets, messages and payment records.

I wanted to build a system that brings the most important parts of property management into one place.

That idea became Landlord Ledger.

Landlord Ledger is a property management application designed to help landlords and property managers manage properties, units, tenants, rent, payments and financial records from a centralized system.


The Problem

Property management involves more than simply collecting rent.

A landlord may need to keep track of:

  • Properties
  • Rental units
  • Tenants
  • Tenancies
  • Monthly rent
  • Payments
  • Outstanding balances
  • Arrears
  • Tenant statements
  • Receipts
  • Financial reports

When these records are maintained manually, it becomes easy to lose track of payments or calculate balances incorrectly.

Landlord Ledger was designed around these real-world workflows.


The Goal

The main goal was simple:

Build a reliable system that gives a landlord a clear picture of their rental business.

Instead of jumping between spreadsheets and paper records, the landlord should be able to open the application and immediately understand:

  • How many properties they manage
  • How many units are occupied
  • Who owes rent
  • Recent payments
  • Outstanding balances
  • Property performance

Core Features

Property Management

Landlords can organize their rental portfolio and manage individual properties and units.

The system separates properties from units so that a single property can contain multiple rental units.


Tenant Management

Tenant records are connected to the relevant rental unit and tenancy.

This makes it possible to maintain a clear relationship between:

Property → Unit → Tenant → Tenancy → Rent → Payment

This structure is important because rental transactions need to remain associated with the correct tenant and unit.


Rent Management

The application is designed around recurring rental charges.

Rent can be generated for tenants and tracked against payments received.

This makes it easier to identify:

  • Paid rent
  • Partially paid rent
  • Outstanding rent
  • Arrears

Payment Allocation

One of the more important parts of the system is payment allocation.

A payment should not simply be stored as a number.

The system needs to understand which tenant made the payment and how that payment affects their outstanding rental charges.

This allows the application to maintain accurate tenant balances and statements.


Tenant Statements

Tenant statements provide a chronological view of rental activity.

A statement can contain:

  • Rent charges
  • Payments
  • Outstanding balances
  • Transaction dates
  • Running balances

This provides both the landlord and tenant with a clearer financial record.


Receipts and Reports

Landlord Ledger also includes document generation capabilities.

Payment receipts can be generated as PDFs, while reports provide landlords with useful financial information about their rental portfolio.

This turns the application from a simple CRUD system into a more practical property-management tool.


Technology Stack

Landlord Ledger is built using:

  • Flutter
  • Dart
  • Supabase
  • PostgreSQL
  • Riverpod

Flutter provides the cross-platform application interface while Supabase provides the backend infrastructure and PostgreSQL database.

Riverpod is used for application state and dependency management.


Architecture

The application is organized around separate layers for:

  • Authentication
  • Domain models
  • Repositories
  • State management
  • Business logic
  • UI

The repository layer abstracts database operations from the interface.

This makes it easier to maintain the application and replace or extend backend functionality in the future.


Designing Around Real Rental Workflows

One of the biggest lessons from the project was that property management software should be designed around financial workflows rather than simply database tables.

For example, a payment needs to affect a tenant's outstanding rent.

That means the system needs to understand relationships between:

Rent Charges → Payments → Allocations → Balances → Statements

Thinking about these relationships early helped shape the architecture.


What I Learned

Landlord Ledger gave me an opportunity to work on several areas of application development at the same time.

Some of the biggest lessons included:

  • Designing relational data models
  • Building reusable repository layers
  • Managing application state
  • Handling financial transactions
  • Generating PDF documents
  • Designing dashboards around useful business metrics
  • Building workflows around real-world business requirements

The project also reinforced the importance of keeping business logic separate from presentation code.


What's Next?

Landlord Ledger is designed to grow beyond basic property management.

Future improvements can include:

  • Automated rent generation
  • WhatsApp rent reminders
  • Advanced financial reports
  • M-Pesa payment integration
  • Automated payment reconciliation
  • Multi-property dashboards
  • Landlord and staff roles
  • Tenant portals
  • Online rent payment
  • Mobile notifications

The long-term goal is to create a practical property-management platform that reduces the administrative workload for landlords and property managers.


Final Thoughts

Landlord Ledger started with a simple question:

Can rental management be made easier with the right software?

Building the application has shown me that the answer is yes—but the real challenge is not simply creating screens.

It is understanding the business processes behind those screens.

That's what made Landlord Ledger one of the more interesting applications I've worked on.