Changelog
An honest, chronological record of architectural changes, security patches, database migrations, and operational features shipped to PropCanopy.
Ecosystem Architecture, Incident Command Center & Tooling Cleanse
Extracted standalone ecosystem applications, unified the resident community experience, and added mass incident management.
Decoupled monolithic frontends into dedicated high-performance apps: apps/site (propcanopy.com), apps/invest (invest.propcanopy.com), apps/market (search.propcanopy.com), and apps/docs (docs.propcanopy.com).
Integrated amenity reservations (rooftop lounge, freight elevator), HOA board voting ballots, and the resident bulletin marketplace directly into portal.propcanopy.com.
Added database schema (incidents, incident_updates) and manager UI for broadcasting planned utility shutoffs, boiler maintenance, and storm outages.
Introduced notification_claim database table and background worker for reliable multi-channel dispatch (email, in-app notices) with concurrency locks.
Removed upstream starter-kit license check scripts and version fetchers for 100% offline development and zero external telemetry.
Security Hardening, Renter Insurance Compliance & Query Scaling
Closed critical privilege escalation vulnerabilities, introduced document storage pipelines, and optimized query execution for large portfolios.
Fixed a vulnerability where residents could insert insurance records with status = verified directly from the client. Enforced server-side verification and check constraints.
Refactored maintenance list queries to paginate and filter at the PostgreSQL level rather than loading entire account ticket history into server memory.
Implemented secure document storage with signed URLs for lease addenda, government-issued IDs, and move-in condition photo inspections.
Editorial Resident Portal Redesign & Dynamic Lease PDF Engine
Overhauled the resident experience with a bespoke warm linen design language and real-time lease agreement PDF compilation.
Redesigned portal.propcanopy.com with warm linen (#F7F5EF) and forest green (#284033) design tokens for an intentional, non-generic living experience.
Built server-side PDF compilation endpoint (/api/leases/[id]/pdf) pulling live lease terms, primary payer signature, and pro-rata rent schedule.
Enforced strict visibility = tenant vs visibility = internal database filtering on work order comment threads to prevent internal staff notes from leaking to residents.
Maintenance Finite State Machine & Portfolio Executive KPIs
Introduced strict 6-stage maintenance ticket lifecycle and independent dashboard KPI widgets.
Enforced formal state transitions: Submitted → Triage → Dispatched → In Progress → Review → Completed. Required contractor invoice attachment prior to ticket closure.
Added independent loading widgets for Occupancy Rate, Delinquent Balances, 30/60/90-day Lease Expirations, and Monthly Cash Collected.
Introduced enterprise parent accounts with scoped read-only access over child property management companies and property owner observer roles.
Automated Rent Engine, Pro-Rata Move-Ins & Late Fee Schedules
Automated recurring billing cycles with pro-rated rent calculations and delinquency tracking.
Cron-triggered rent generation with idempotency keys to guarantee zero duplicate charges across active leases.
Mathematical pro-rating based on actual calendar days for mid-month move-ins and custom lease start dates.
Automated flat and percentage-based late fee charges applied automatically following grace period expiration.