All projects

SaaS · Rental Management · 2026

AlugaFácil — rental management platform

A full-stack rental management app where owners and their employees share a single tenant to track inventory, availability, and contracts.

Role
Full-stack developer
Year
2026
Stack
Next.js 16 + Drizzle
Hosting
Self-hosted VPS (Docker)
AlugaFácil — rental management platform

Overview

AlugaFácil gives rental businesses a single dashboard to handle products, variations, stock, clients, contracts, and bookings. The app is built on multi-tenancy: each owner's data is fully isolated, while employees act inside their owner's tenant without ever seeing another business's records.

It runs on Next.js 16 with the App Router and React Server Components, using Drizzle ORM over PostgreSQL and Better Auth for authentication. It is self-hosted on a Linux VPS via Docker Compose — a PostgreSQL container, a one-shot migration job, and the standalone Next.js app behind an Nginx reverse proxy — with product images served from Cloudflare R2.

Key features

  • Multi-tenant accessOwners and employees share one tenant, with every query scoped to the effective owner so data never leaks across businesses.
  • Availability & conflict checksMulti-product rentals intersect booked date ranges to prevent double-booking, ignoring returned or cancelled rentals.
  • Products, variations & stockStock is keyed by product and variation, with a fallback to product-level quantity when there are no variations.
  • Self-hosted Docker deployA multi-stage Docker build ships a standalone Next.js image, orchestrated with Docker Compose behind Nginx, with images on Cloudflare R2 and scheduled PostgreSQL backups.

The challenge

The hardest part was enforcing tenant isolation everywhere. Because owners and employees share data scoped to an effective owner id, every read and mutation has to resolve that id rather than the raw session user — a single missed scope would expose another business's data. Centralizing this in cached auth helpers kept the rule consistent across the whole data layer.

Gallery

Next project
Realtime board-game platform — Go, Dou Shou Qi & more