Tenant Portal
A self-hosted property management tool that automates the repetitive parts of being a landlord. Maintenance requests, lease tracking, and tenant communication.
A self-hosted property management tool that automates the repetitive parts of being a landlord. Maintenance requests, lease tracking, and tenant communication.
Tenant Portal
Managing rental properties involves a surprising amount of repetitive coordination. Maintenance requests, lease renewals, payment tracking, tenant communication. Most property management software is expensive, bloated, or designed for large portfolios.
Tenant Portal is a lightweight, self-hosted alternative built for small landlords who want automation without the overhead.
The Problem
My property management vendor doesn’t have an API. They won’t build integrations. Everything is manual. log in, click around, copy-paste data into spreadsheets. For a software engineer, this is unacceptable.
Architecture
graph TB
subgraph Client["Frontend (React + TypeScript)"]
TENANT[Tenant Dashboard]
ADMIN[Admin Dashboard]
end
subgraph API["API Layer (Node.js)"]
REST[REST API<br/>Express]
MW[Auth Middleware<br/>JWT]
WS[WebSocket Server]
end
subgraph Core["Business Logic"]
MR[Maintenance Requests]
LM[Lease Manager]
BL[Billing Engine]
MSG[Messaging Service]
NOTIF[Notification Service]
end
subgraph Data["Data Layer"]
PG[(PostgreSQL)]
PRISMA[Prisma ORM]
S3[File Storage<br/>S3-compatible]
end
TENANT --> REST
ADMIN --> REST
TENANT --> WS
REST --> MW
MW --> MR
MW --> LM
MW --> BL
MW --> MSG
WS --> NOTIF
MR --> PRISMA
LM --> PRISMA
BL --> PRISMA
MSG --> PRISMA
NOTIF --> PRISMA
PRISMA --> PG
MR --> S3
LM --> S3
Features
- Maintenance requests. tenants submit through a portal, landlord gets notified and tracks resolution
- Lease tracking. renewal dates, terms, and document storage
- Billing engine. automated rent tracking, payment history, and receipt generation
- Tenant communication. centralized messaging instead of scattered texts and emails
- REST API. the API my vendor won’t build, so I built it myself
- Self-hosted. runs on your own infrastructure, your data stays yours
Philosophy
Built to solve my own problems as a landlord. No subscription fees, no vendor lock-in. Just a clean tool that handles the boring stuff so I don’t have to think about it.
Related Posts
- Tenant Portal. Building What Vendors Won’t. The full story of why I built a property management tool from scratch when my vendor refused to build an API.