DEV Community

Cover image for Building a Rental Property Management SaaS with Next.js 16 and PostgreSQL
miloud belabbas
miloud belabbas

Posted on

Building a Rental Property Management SaaS with Next.js 16 and PostgreSQL

I wanted to build something more specific than another generic SaaS dashboard.

So I picked a very specific problem:

How can small landlords manage 1–10 rental properties without relying on spreadsheets, WhatsApp messages, folders and disconnected tools?

The result is TinyRent, a rental property management SaaS focused on small landlords and property managers.

The idea

Large property-management platforms can be powerful, but they can also be unnecessarily complex for someone managing a small portfolio.

For a landlord with 5 or 8 properties, the important questions are usually simple:

Which tenant is in which property?
When does the lease expire?
Has this month's rent been recorded?
Which maintenance requests are still open?
When was the last inspection?
How much are the properties costing?
Where are the relevant documents?

TinyRent was designed around those workflows.

The core workflow

The application connects:

Properties → Tenants → Leases → Rent → Maintenance → Inspections → Expenses → Documents → Reports

Instead of treating these as separate features, the goal was to make them part of one workflow.

Tech stack

The current application uses:

Next.js 16 App Router
TypeScript strict mode
PostgreSQL
Tailwind CSS 4
shadcn/ui
React Hook Form
Zod
Recharts
next-intl
PWA support
Sentry
Cookie-based authentication

The application also supports:

English
French
Arabic
Full RTL
Dark / light / system themes
Responsive desktop, tablet and mobile layouts
Why PostgreSQL?

Property management is heavily relational.

A property can have tenants.

A tenant can have a lease.

A lease is associated with rent.

A property can have maintenance requests, inspections, expenses and documents.

For this kind of application, a relational database provides a natural structure for those relationships.

The database is organized around the actual business entities rather than around generic CRUD screens.

The dashboard

The dashboard gives the landlord an overview of the portfolio instead of forcing them to open every property individually.

The idea is to surface things that need attention:

Rent information
Maintenance
Upcoming lease events
Property activity
Expenses
Portfolio statistics
Internationalization

One feature I deliberately included was multilingual support.

TinyRent currently supports:

🇬🇧 English
🇫🇷 French
🇸🇦 Arabic

Arabic also includes RTL support.

This was important because property management is a global problem, while many SaaS products are designed around English-first interfaces.

PWA

TinyRent is also designed as a Progressive Web App.

For a landlord who is walking through a property or dealing with a maintenance issue, opening a mobile-friendly application is more practical than sitting at a desktop.

The interface is therefore responsive across:

Desktop
Tablet
Mobile
What I learned

The biggest lesson wasn't technical.

It was choosing the scope.

It is very easy to keep adding features to a property-management application.

The challenge is deciding what a small landlord actually needs.

Instead of trying to build an enterprise property-management platform, I focused on the workflow of a small portfolio.

That made the product much easier to reason about.

Try the live application

I made a live demo available so developers and property-management professionals can explore the application rather than just looking at screenshots.

Live Demo: https://tinyrent-xi.vercel.app

I'm also preparing the source code for developers and SaaS founders who want to customize or build their own rental-management product.

I'd love feedback

If you were building this product, what would you add?

And more importantly:

What would you remove?

I'm particularly interested in feedback from developers building SaaS products and landlords managing small portfolios.

Top comments (0)