Unooma: Tenant
Renting, paying and reporting from one app
The tenant side of a real-estate platform: onboarding, lease documents, rent payment through Stripe, and a way to report a problem in the flat without phoning anyone.
Overview
Unooma is a production real-estate platform split across three apps that share a backend and a design system. The tenant app is the one residents live in — signing a lease, reading the documents attached to it, paying rent, and raising maintenance requests. I built the frontend: authentication and authorisation, the onboarding flow, lease management, Stripe-backed rent payments, and in-app PDF viewing and download for the documents a tenancy generates. State is handled with Redux Toolkit so the role-based rules stay predictable as the app grows, and every REST call has explicit loading and error handling rather than a spinner that never resolves.
Inside the build
Lease management with documents
Leases and their attachments are readable in-app — PDF viewing and download built in, so a tenant never has to go hunting through email for their own contract.
Stripe rent payments
Rent is collected through Stripe with the payment state reflected back into the lease, so what the tenant sees and what the ledger says cannot drift.
Maintenance requests
Reporting a problem takes a photo and a sentence. Media uploads and status updates flow straight through to the maintenance app.
Role-aware state
Redux Toolkit holds the authorisation rules, so a screen renders what this particular tenant is entitled to rather than hiding controls after the fact.

