A log of progress for the week of November 10, 2025.
If last week was about pivoting our data strategy, this week was about pure, unadulterated execution. We moved the MVP completion needle significantly, jumping from 58% to 73%. But beyond the velocity, this week was about building the “Human Layer”—handling the messy, complex reality of how people actually interact with property. We built systems for households, staff, and users who wear multiple hats.
1. Identity is Complex: Dual-Roles and Households
In the real world, a user isn’t just a static row in a database. We had to solve for two specific real-world scenarios:
The Owner-Occupier (Dual-Role): Often, a landlord lives in their own property. They are the asset owner, but they also have a “tenant” role within the system to access building services, raise maintenance requests, or book amenities. We built a seamless system where a single user account can hold both Landlord and Tenant profiles. Users can now toggle between these roles instantly without logging out.
The Secondary Tenant Workflow: We realized that granting access to just the primary contract holder isn’t enough. We built a workflow allowing tenants to request access for other adult individuals in the household (like a spouse or roommate).
The Crucial Distinction: We implemented strict permission gating here. While secondary tenants gain access to the building app features they need (like gate access), they are strictly blocked from seeing sensitive financial data and contract details.
2. Professionalizing Access: The RBAC System
As we prepare for scale, we can’t assume a “one-size-fits-all” admin. We implemented a robust Role-Based Access Control (RBAC) system for landlords. Now, a property owner can assign staff specific roles, such as Asset Manager, Facility Manager, or Admin, ensuring that team members only see the data relevant to their job.
3. Structural Maturity: Database Reorganization
With the codebase growing rapidly, we took a step back to ensure our foundation remains rock-solid. We executed a massive Database Structure Reorganization, adopting industry-standard folder patterns.
We separated migrations, seeds, and scripts into a clean, logical hierarchy. This isn’t just cleanup; it’s about maintainability. We also documented a comprehensive 7-Phase Testing Strategy, defining the 15 critical quality gates we must pass before our March 31st launch.
4. Financial Context
Finally, we refined the financial engine. A list of transactions is useless if you don’t know who paid what. We rewrote our financial queries using complex SQL JOINs to pull in full context. Every transaction row now clearly displays the associated Building, Unit, and Tenant Name. It’s a small change that makes a massive difference for accounting.
This week was a sprint in the truest sense. We hardened the infrastructure, solved complex identity problems, and proved that we can maintain high velocity as we approach the finish line.