Homelyn

0%
Homelyn logo

Project case study

In Progress

Homelyn

Rent direct. Live easy. — a Nigerian rental platform that connects tenants and landlords without agents, and turns rent into something you can track, escrow, and crowdfund from your phone.

React NativeExpoNestJSPostgresDrizzlePaystack

Product demo

See Homelyn in motion

Homelyn — rent direct, live easy

Renting in Nigeria runs on agents, cash, and WhatsApp. A tenant pays an agent to see a flat, pays "agency" and "caution" on top of a year's rent up front, and then has no record of any of it. Homelyn takes that whole flow — discover, view, apply, sign, pay, renew — and puts it in one app, with the agent removed and the money in escrow.

Tech Stack: Expo / React Native · Expo Router v6 · NativeWind · Gluestack UI v3 · TanStack Query · Zustand · NestJS · Drizzle ORM · PostgreSQL · BullMQ / Redis · Better Auth · Paystack · Resend

Watch the demo above — it walks the full tenant path from sign-up through OTP verification, KYC, and into the home search.


What it does

  • Two apps in one. Tenants and landlords sign up into separate tab groups with their own onboarding — NIN and employment details for tenants, NIN, documents, and bank payout for landlords.
  • Direct listings. Landlords list properties themselves; verified listings get a badge. No agent stands between the two sides.
  • Viewing → application → lease. A viewing request becomes an application, an application becomes a signed lease, and a lease becomes a live tenancy — each step is a real state machine in the schema, not a status text field.
  • Rent Health Bar. The signature feature: a single bar that shows how much of your rent period is left, colour-shifting from green to red as renewal approaches, so a tenant is never blindsided by a year-end lump sum.
  • Rent goals. A tenant can open a goal against their rent and share a public link — family, friends, anyone can contribute toward it. Contributions land in a wallet and count down the target.
  • Escrowed payments. Rent moves through Paystack into an escrow hold — held, released, or refunded — that only pays out to the landlord's wallet on a scheduled release, instead of going straight through.

Engineering focus

The backend is a NestJS API over PostgreSQL with Drizzle — 26 tables covering auth, profiles, properties, KYC, viewings, applications, tenancies, payments, sponsorships, messages, and notifications. Auth is Better Auth with email OTP and 7-day JWTs, behind a global auth guard and a role guard (tenant | landlord | admin); public signup can never mint an admin. Domain events fan out to BullMQ workers on Redis for transactional email through Resend, keeping the request path fast.

The mobile client is Expo Router v6 with NativeWind and Gluestack UI v3, TanStack Query for server state, and Zustand for the little that's local. Every amount is stored and moved in kobo — money never touches a float.

The hard part wasn't any single feature; it was modelling Nigerian renting honestly. Annual rent up front, caution deposits, agency fees, and saving toward next year don't fit the monthly-subscription shape most rental software assumes, so the payment and tenancy tables were designed around billing periods and goal-based accumulation instead.

Spread the word