Solutionaires

LeasePilot: a rental SaaS built in seven phases.

An Australian rental SaaS with agent, tenant and admin portals, Stripe billing and dispute resolution.

The LeasePilot homepage

The problem.

LeasePilot is a SaaS product we designed and built ourselves. It gives rental agencies tenant history they can trust, and lets tenants keep their own rental record.

What we built.

Eight modules on one schema: an agent dashboard, a tenant portal, an admin panel, Stripe billing with seat limits, PDF export, dispute resolution, team members and a support centre.

  • Agent dashboard
  • Tenant portal
  • Admin panel
  • Stripe billing, with seat limits
  • PDF export
  • Dispute resolution
  • Team members
  • Support centre

Tenancy and role modelSettled in phase one

The dispute module runs a mediated thread with evidence uploads, a 7-day response window and a 14-day hard limit before a dispute closes.

Tenant portal
Dispute thread
Billing
Admin panel

The decision that mattered.

The tenancy and role model was settled in phase one.

Every later module plugged into it without touching login or data ownership, which is why the later phases moved fast: Stripe billing went from nothing to working in a day, and the final phase took about two weeks.

Phase 1Tenancy and role model settled
8Modules on one schema
1 dayStripe billing, from nothing to working
2 weeksRoughly, for the final phase

What we’d do differently.

Two things we’d change if we started again.

Notifications

Notifications were built into each action separately, so every new module repeated the same email logic, and the dispute auto-close rules ran as a check on page load. Today we’d add an event layer in phase one, with one worker handling email, auto-close and the audit trail.

Brand values

The rename from Tenantmark to LeasePilot left a TM- prefix in record IDs, because brand values were hard-coded.

Stack and scope.

What it runs on. For your build, we work in whatever stack fits.

Web app
Next.jsReactServer Actions
Data and logins
SupabasePostgreSQLRow-level security
Payments
StripeSeat limits
Email and documents
ResendPDF export

Planning a product with more than one kind of user? Start with the data model.

Book a call30 minutes, with Ahmer

Read next

Case studies

What we built, and why

A marketplace rescoped mid-build, a supplier-integrated store and a watch-party extension.

MVP development

Start by building less

How we scope a first version, what’s included and what it costs.

How we work

How a build runs

Eight steps from the first call to launch, and who’s on each one.

Your product. Let’s talk.

A 30-minute call about where your product stands and the first step worth taking.

  • 30 minutes, no commitment
  • Video call on Cal Video
  • With Ahmer, founder