Permissions that mirror how HOAs really work
Management, residents, workers, and vendors each get appropriate access—so boards keep control without blocking residents from everyday tools.
- Management — directory, ledger, violationsFull
- Worker — assigned work, observationsLimited
- Vendor — assigned tickets onlyScoped
- Resident — own lot, documents, ballotsOwn
A vendor never sees the directory. Enforced in the database, not the interface.
Permissions collapse into one of two extremes
Either everyone on the board has admin everything — which means a former treasurer still has access months after their term — or nobody has access to anything, and residents can't get the documents they're legally entitled to. Most HOA tools built on CRM patterns get this wrong.
Capabilities
Role-based access
Granular gates aligned to member types.
Separate management vs resident views
Staff use the full app; residents see the hub.
Vendor & worker modes
Limited surfaces for partners who don’t need the full directory.
Session sanity
Portal sessions respect which community you’re signed into.
From zero to running
- 01
Every account has a member_type and a role
Four member types: management, worker, vendor, resident. Each has granular roles (president, treasurer, landscaping, homeowner, tenant) that map to real HOA structure.
- 02
Middleware enforces every endpoint
Server-side role guards check both member_type and role before returning data. The frontend respects the same gates.
- 03
Audit log captures sensitive actions
Role changes, exports, financial changes, and bulk messaging are logged with actor, timestamp, and context.
- 04
Sessions scoped to the community
A member signed into community A can't accidentally see community B. Portal sessions respect which subdomain they came from.
What this looks like in a real association
Vendor offboarding
Landscaping contract ends — mark the vendor inactive and their portal access revokes immediately. Tickets remain archived.
Board election
President term ends. Reassign their role to past_president; the new president gets president-role access on assignment.
Incident response
Export the audit log for a specific date range; see exactly who touched which record.
Questions boards actually ask
- Is data encrypted?
- Yes — TLS in transit, managed encryption at rest via Supabase (AES-256). Passwords are never stored in plaintext.
- Do you have SOC 2?
- We inherit the compliance posture of our managed providers (Supabase, Twilio, Stripe). An independent audit is on the post-Phase-5 roadmap.
- Can we require 2FA for board members?
- 2FA is available via Supabase Auth. We recommend requiring it for management roles; enforcement policy is configurable per role.
- How long do you retain data?
- Financial records: 7 years (IRS). Consent log: 5 years minimum. Other member data: retained while the account is active; purged 30 days after cancellation unless in audit hold.
Put security & access to work in your association
Sign up free, invite the board, and see how this fits your community in an afternoon.