1:1 has to become n:m
Reality is a network: several brokers work with several insurers, one manager oversees many HOAs, an HOA has multiple contacts. A hard-coded identity doesn't fit that.
One claim, many parties. A multi-tenant (n:m) claims management platform that brings insurers, brokers, property managers and HOAs together on the same case — with strict data separation.
A water damage claim in a condominium rarely concerns a single party: the property manager coordinates, the broker files it, the insurer settles, the HOA owns it, a drying company arrives. The predecessor software was an isolated silo — three points kept coming up in interviews.
Reality is a network: several brokers work with several insurers, one manager oversees many HOAs, an HOA has multiple contacts. A hard-coded identity doesn't fit that.
Tenants, caretakers, owners, by phone, by e-mail. A reporting channel that requires a login for every reporter goes unused — the low-friction entry decides whether a claim ever lands cleanly in the system.
A single HOA may only see its own cases; the manager above it, all of its HOAs. Solving that with mere display filters gives you a GDPR problem as soon as the API is opened.
A server-rendered portal plus a SwiftUI app, both on the same data model — with a tenant switcher at the top and strict data separation underneath.
Insurer, broker, property manager and HOA/homeowner are independent organisations linked via partnerships. Each party sees its own cases — plus what a partner explicitly shares.
Object reference, damage type and cause, required trades, emergency measures (drying, leak detection, on-call), cost fields, status from draft to closure — with automatically assigned claim numbers and a complete audit trail of every change.
Manual entry, a public reporting link (token, no login required — for tenants and caretakers) and e-mail-to-case: mails with the case number in the subject are pulled via IMAP and automatically attached to the correct case together with any attachments.
Recurring checklists (e.g. "water damage") can be rolled out per case, plus follow-ups with traffic-light logic and reminders — so no case is left behind.
Admin, manager, staff, trainees (who inherit the assignments of their supervisor) and reader. Managers and admins have oversight of all cases in their organisation; staff see only what they're assigned.
An organisation-specific pool of trades/service providers (shareable via partnerships), documents and photos attached directly to the case — including from a smartphone.
E-mails sent from within a case use the sender address, signature and bank details of the respective organisation — via a central sender, a product domain or the tenant's own SMTP credentials. Templates are freely editable in the portal.
A branded PDF damage report and filter-driven Excel lists for follow-up processing, plus an analytics view over cases, status and costs.
Field staff record cases, comments, status and photos on site — via the same API, with token authentication.
Visibility hinges on membership in an organisation involved in the case. A neighbouring HOA doesn't see the other's cases because, for its tenant, they simply don't exist — on the web and via the API alike. That's the robust, GDPR-compliant reading of multi-tenancy.
The public reporting link and mail intake lower the barrier to filing a claim. To keep that from becoming an attack surface, rate limiting, a bot honeypot, sender validation on the mail intake and type/size validation of every upload sit behind it.
Access-guarded delivery of uploaded documents (no guessable direct link), encrypted storage of SMTP passwords, HTTPS enforcement, secure cookies, login throttling. For a system holding personal claim data, that's the baseline.
Django 5 + DRF in the backend, server-rendered UI with HTMX, Alpine.js and Tailwind, PostgreSQL as the database and Redis as a shared cache, token auth for the native SwiftUI iOS app, PDF generation via ReportLab and Excel via openpyxl, IMAP integration for e-mail intake — everything containerised via Docker Compose behind Caddy with automatic HTTPS, self-hostable on any Linux VM.
Anyone interested spins up their own sandbox on a single click, pre-populated with fictional example data and automatically reset on logout — any number in parallel, fully isolated from one another. The full feature set above is available.
Next on the roadmap: push notifications for the iOS app and offloading large file uploads to object storage for growing datasets.
… want to handle claims across several parties in a structured way — with clean tenant separation, clear responsibilities and a low-friction reporting channel. Specifically:
Server-rendered pages with HTMX for fast interaction without SPA overhead, plus Alpine.js for local widgets. The UI is intentionally lean: a case list with filters, a detail view with tasks, photos, comments and history — and a tenant switcher at the top right that makes multi-tenancy visually tangible.
Click through the demo in a few minutes, or we'll show you the software in a 30-minute session and discuss how it fits your operation.