How we engineered a full-stack SaaS platform for self-storage operators — with smart lock integration, automated billing, and real-time occupancy dashboards serving 150+ facilities.
Self-Storage SaaS · IoT Access Control
A mid-size self-storage operator running 150+ facilities across 12 states needed to replace a patchwork of legacy software — separate systems for unit reservations, billing, gate access, and occupancy tracking that didn't talk to each other. Staff were manually reconciling data across three different dashboards every morning.
They wanted a single, unified SaaS platform where facility managers could manage units, tenants, billing, and smart locks from one screen — and where corporate leadership could see real-time occupancy and revenue data across the entire portfolio.
Each facility used a different gate access vendor. Some had keypads, others had Bluetooth locks, and a few still used physical keys. There was no centralized way to grant, revoke, or audit access.
Invoices were generated in one system, payments tracked in another, and late fees calculated in spreadsheets. Autopay failures went unnoticed for days, costing the operator thousands in missed revenue.
Occupancy rates were updated weekly via manual reports. Corporate had no way to spot underperforming facilities or adjust pricing dynamically based on demand.
The reservation system, billing engine, and access control software were three separate vendors with no API integration. Data lived in silos, and syncing required nightly CSV exports.
We built a centralized event-driven architecture with Node.js microservices. The platform acts as a single source of truth — when a tenant pays, access is granted automatically. When a lease expires, the lock deactivates within seconds. Everything flows through a unified event bus.
The IoT bridge was the most technically challenging piece. Each lock vendor uses a different protocol — Bluetooth LE, Wi-Fi, or cellular. We built an abstraction layer that normalizes commands (lock, unlock, check status) across all vendors, so the application logic never needs to know which hardware is installed at a given facility.
Mapped all existing workflows across facilities. Documented lock vendor APIs (Nokē, PTI, Janus). Designed the multi-tenant schema and event-driven architecture. Defined the IoT abstraction layer spec.
Built the tenant management system, unit reservation engine, and facility manager portal. Implemented PostgreSQL with per-operator schema isolation. Integrated Stripe for automated billing with retry logic.
Developed the MQTT-based IoT bridge. Integrated three smart lock vendors behind a unified API. Built the React Native tenant app with Bluetooth and remote unlock capabilities.
Built real-time occupancy and revenue dashboards for corporate. Load-tested with simulated 45K-unit traffic. Phased rollout across facilities — 10 pilot sites, then full 150+ deployment.
Self-storage SaaS is deceptively complex. On the surface it looks like a simple CRUD app — units, tenants, payments. But the moment you add IoT hardware, multi-vendor lock protocols, and real-time occupancy tracking, the architecture complexity jumps significantly.
The key insight was treating the IoT bridge as a first-class service, not an afterthought. By abstracting lock vendor protocols behind a unified API, we made it possible to add new hardware vendors without touching the core application. When the client later added a fourth lock vendor, integration took two weeks instead of two months.
Automated billing with intelligent retry logic was the quiet hero of this project. The old system was losing an estimated $180K/year in missed payments from autopay failures. The new system detects failures immediately, retries with exponential backoff, and alerts facility managers only when human intervention is actually needed.
We help PropTech and facility management companies build production-grade SaaS. Let's talk about your architecture.