← Projects
Tenant Portal

Tenant Portal

A self-hosted property management tool that automates the repetitive parts of being a landlord. Maintenance requests, lease tracking, and tenant communication.

TypeScriptReactNode.jsPostgreSQL

A self-hosted property management tool that automates the repetitive parts of being a landlord. Maintenance requests, lease tracking, and tenant communication.

TypeScriptReactNode.jsPostgreSQL

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.