One operating platform for Australian residential builders.
From contract to handover to warranty — BuildTrace AU brings the builder, their team, their customers, and their trades into a single workspace. Documents stop getting lost. Variations stop getting forgotten. Trades get clear jobs with clear evidence. Customers see exactly where their home is in the build, every day.
A subscription platform for the full residential build lifecycle.
BuildTrace AU is a multi-tenant SaaS for Australian residential builders. It replaces email threads, scattered spreadsheets, and legacy ticketing tools with a single shared workspace where customers, trades, and the builder's internal team all see the right view of the same project.
- Documents scattered across email threads, Dropbox folders, and WhatsApp chats — no one knows which version is current
- Variations agreed verbally on site, then disputed at handover when no one can remember the exact terms
- Trades booked by phone tag and SMS — confirmations lost, no-shows with no record
- Customers constantly chase the office for updates on where their home is in the build
- No audit trail when something goes wrong — finger-pointing, no timestamps, no evidence
- Site supervisor hand-writes daily reports on paper or in scattered notes apps
- One vault — every document versioned, role-filtered, and always findable by the right person
- Variations raised in-app with cost + time impact; customer approves with a tap; full audit log from day one
- In-app trade bookings with push notification — accept or decline, calendar-confirmed, no lost messages
- Customers see live build stage, photos, and pending actions on their own portal — zero phone calls
- Every action timestamped and attributed; one-click audit pack for disputes, finance, or lenders
- Mobile-first site board with photo evidence and supervisor sign-off — no paper, no lost notes
Every document, one place
Contracts, plans, certificates, invoices, photos — uploaded once, versioned, role-filtered. Customers see what they're meant to see; trades see only what they need; nothing gets lost between Outlook threads and Dropbox links.
Every change, traceable
Variations, document requests, site questions, warranty items — each one has a status, a cost impact, a time impact, and a full audit trail. Customers approve in-app. Builders close the loop with one click.
Built for the site, not the desk
Supervisors and trades work on phones. Mobile-first views, bottom-tab navigation, completion-with-photos. Offline document access on poor-connectivity sites is part of the Phase 2 plan.
Three user groups, one shared workspace.
The builder is the tenant — they pay the subscription and run the company inside the platform. They invite service providers (trades) and homeowners per project. Externals are always free and never count toward seats.
The builder Tenant · pays subscription
The builder's company is the BuildTrace AU tenant. The owner, their team, and on-site supervisors all live inside this tenant and share visibility across every project the builder runs.
Builder admin Tenant owner
The builder running the company. Full visibility, full control of the tenant.
- Creates projects, invites customers & trades
- Approves variations & shared documents
- Exports audit pack for finance & lenders
- Manages the team & subscription
Builder employee Internal
Office staff, accounts, project coordinators. Scoped permissions but full project visibility.
- Triages customer requests
- Manages documents & bookings
- Tracks progress against milestones
- No billing / subscription control
Site supervisor Internal
The on-site lead. Daily task board, evidence capture, blocker resolution. Mobile-first.
- Site board with today's tasks
- Required-evidence checklist per stage
- Confirms or escalates blockers
- Signs off trade completions
Service providers Free · invited per project
Every trade and specialist who touches a project. One account works across multiple builder tenants — invited per project, no signup friction, never count toward seats.
How service providers work in the platform
- Mobile-first job queue — site address, scope, due date, access window
- Booking accept / decline with reason captured
- Complete-with-photos sign-off; supervisor verifies
- One account spans multiple builder tenants
- No commercial / customer info exposed — only assigned work
- Notifications: email + push (Phase 1.5), SMS (Phase 2)
Homeowners Free · single project
The end customer — the family commissioning the build. They see only their project, approve changes that affect cost or timeline, and download documents the builder chooses to share.
What they see
- Live progress on their build (stage timeline + photos)
- Documents shared by the builder — contract, plans, certificates, handover pack
- Variation requests awaiting their approval, with cost & time impact visible
- Messages from the builder
What they can do
- Raise a variation, document request, or site question
- Approve or reject changes in-app — every decision logged
- Download a lender-ready evidence pack on demand
- Raise warranty / defect items post-handover
Three workflows that anchor the platform.
If the demo lands, it's because these three flows feel obvious. Each is built around one transcript-validated pain point: lost documents, untraceable variations, and unscheduled trades.
1 · Variation approval — the demo's anchor scenario
A customer wants to upgrade the kitchen benchtop after framing. Today: that lives in an email thread, gets agreed verbally, then disputed at handover. With BuildTrace AU:
Customer raises
Title + details, attaches reference photo. Category auto-suggested.
Builder reviews
Sets cost impact (AUD) & time impact (days). Adds internal note.
Customer approves
Approves in app. Or rejects with reason — request re-negotiates.
Audit logs
Every state change attributed, timestamped, exportable as PDF.
2 · Service-provider booking — trade scheduling done right
Verbatim transcript pain: "plumber booking, time appointment, notification, plumber goes and does the work". Today: phone tag and SMS. With BuildTrace AU:
Builder books
Picks a trade from the project's roster, sets a window.
Trade notified
Email + push: project, address, scope, due date. One tap to view.
Trade accepts
Or declines with a reason. Calendar entry confirmed.
On-site sign-off
Completion with photos. Supervisor verifies. Customer sees stage progress automatically.
3 · Document upload — visibility filtered by role
The sharpest pain we heard: "documents lie around everywhere, no way for anyone to reference them." One vault, one upload, four filtered views.
Upload
Builder or supervisor uploads. Sets visibility: customer / internal / restricted.
Versioned
Replace = new version. Older versions kept; latest marked.
Role-filtered
Customer sees customer-only. Trade sees task evidence. Builder sees everything.
Audit pack
Export project's shared documents as a PDF bundle for lender / handover.
How BuildTrace AU is built — at a glance.
Modern web stack: React on the front, FastAPI on the back, PostgreSQL with row-level security underneath. The whole system is multi-tenant from day one — one builder's data can never leak into another's.
System overview
Multi-tenant model
Network admin layer
Phase 2Portfolio view across all builder tenants. Read-only by default. Unlocks once the single-builder pilot is live.
Builder tenant — e.g. Nisha's company (tenant 0001)
Internal userstenant_id = 0001. They count toward the subscription seat cap.External participants — attached to specific projects only
Freetenant_id = NULL. They join projects via the ProjectMember table — so a single plumber can work across many builder tenants with one account. They are free; they do not count toward any seat cap.Core data model — 11 entities
Every row in every table carries a tenant_id. Postgres row-level security (RLS) acts as a backstop — even if application code forgets the tenant filter, the database refuses to return another tenant's row.
Tenant
Each builder company. Subscription plan, ABN, name, slug.
User
Email, phone, role enum (builder_owner, employee, homeowner, trade, consultant). Internal users get tenant_id; externals don't.
Project
A house build. Phase (pre_construction / during_build / mci / warranty), 8 AU stages, site address.
ProjectMember join
The bridge for externals. One row = one user attached to one project with a specific role.
Document
Versioned. Visibility = customer / internal / restricted. Stored in MinIO, indexed in Postgres.
Request
Variation · Document request · Site question · Warranty item. Status lifecycle + cost & time impact.
Task
Work item assigned to a trade or supervisor. Evidence requirements, due date.
Booking
A trade's scheduled visit. Propose · accept · complete. Calendar-aware.
AuditEvent
Every state change. Actor, action, target, timestamp, payload snapshot.
Notification
Email · SMS · in-app · push. Preference per user per event type.
Invite
Magic-link tokens for adding customers and trades to projects without forcing self-signup friction.
From static demo to full operating platform.
The static HTML demo is for client validation. The React build delivers in phased slices — each shippable, each adding capability without breaking what came before.
Foundation 4 weeks · 4 sprints Locked
- React + FastAPI monorepo scaffolded from the proven starter kit
- Multi-tenant auth — JWT with tenant claim, invite flow, role guards
- Projects + ProjectMember (the foundation for external user access)
- Document vault with versioning, visibility filter, MinIO storage
- Requests (variation / document / site / warranty) with audit trail
- Customer portal + builder admin dashboard
- Postgres row-level security on every scoped table
Mobile + AI 2 weeks Next
- Mobile-first views for supervisor & trade (bottom-tab navigation)
- PWA shell — installable on iOS / Android, cached document list
- Service-provider booking flow with accept/decline + push notifications
- AI auto-categorisation of inbound requests (Claude)
- Photo evidence capture for trade completion
Notifications, reporting & network 4 weeks After pilot
- Email / SMS / push notifications with per-user preferences
- Email-to-ticket ingestion (forward customer emails into the platform)
- Reports — request volumes, approval delays, trade response times
- Network admin layer (cross-builder portfolio view)
- Full offline document read on field-worker devices
- Semantic document search (AI-powered: "show me the frame certificate")
Compliance, accounts & integrations Open-ended
- Pre-construction compliance: map approvals, certifications, multi-party tracking (NSW-first)
- Accounts: invoices, deposits, progress claims, lender evidence packs
- Material / vendor management
- Integrations: CRM, accounting (Xero / MYOB), e-signature, construction tools
- Advanced AI: defect routing, compliance gap detection, drafted replies
Phase 1 sprint timeline
Three tiers, all in AUD, all monthly.
Builders pay; the people they invite — homeowners and trades — don't. Pick a tier based on team size; nothing else changes the experience.
Solo
- 1–3 builder users
- Unlimited customers & trades
- Up to 5 active projects
- Document vault & variations
- Audit pack export
- Mobile field views
Pro
- Up to 10 builder users
- Unlimited customers & trades
- Unlimited active projects
- Everything in Solo
- Reports & trade performance
- Priority support
- AI auto-categorisation (P1.5)
- Pilot customer (Nisha) on annual Pro with founding-customer benefits.
Network
- Unlimited builder users
- Everything in Pro
- Cross-builder portfolio view (P2)
- Network admin dashboards (P2)
- White-label option
- Dedicated onboarding
What's included at each tier
| Feature | Solo | Pro Recommended | Network |
|---|---|---|---|
| Monthly price (AUD) | $149 | $399 | $899 |
| Builder users included | 1–3 | Up to 10 | Unlimited |
| Active projects | Up to 5 | Unlimited | Unlimited |
| Customers & trades (external users) | Unlimited · free | Unlimited · free | Unlimited · free |
| Document vault (versioning + visibility filter) | ✓ | ✓ | ✓ |
| Variations + audit trail | ✓ | ✓ | ✓ |
| Mobile field views (PWA) | ✓ | ✓ | ✓ |
| Audit pack export | ✓ | ✓ | ✓ |
| Trade booking flow | Phase 1.5 | Phase 1.5 | Phase 1.5 |
| AI auto-categorise (request classification) | Phase 1.5 | Phase 1.5 | Phase 1.5 |
| Reports & analytics | — | ✓ | ✓ |
| Priority support | — | ✓ | ✓ |
| Cross-builder portfolio view | — | — | Phase 2 |
| Network admin dashboards | — | — | Phase 2 |
| White-label option | — | — | ✓ |
| Dedicated onboarding | — | — | ✓ |
Click through a real workflow.
The clickable demo is a static preview — accounts and data are fixtures, no backend yet. Use it to feel the variation-approval flow, role-switching, and document vault. The React build replaces it with the real platform in Phase 1.
Open the BuildTrace AU demo
Switch between Builder admin, Customer, Site supervisor, and Trade roles using the demo account switcher in the sidebar. Try raising a request, approving a variation, and viewing the audit trail.
Project status & open items (internal review)
Status dashboard
Decisions register
| Ref | Decision | State | Working assumption |
|---|---|---|---|
| §2.1 | Is Nisha the builder, or working with one? | Parked | Assumed she is the builder; Phase 1 code unaffected either way. |
| §2.2 | Same Nisha as previous osTicket client? | Parked | Assumed different client — net-new sale. |
| §2.3 | Network admin in Phase 1? | Locked | Phase 2. Single-builder pilot first. |
| §2.4 | PWA / offline capability v1? | Locked | Shell in P1, cached list in P1.5, full offline in P2. |
| §2.5 | First AI feature? | Locked | Auto-categorise inbound requests in P1.5. |
| §2.6 | Pricing tiers (AUD per month)? | Locked | Solo $149 · Pro $399 (anchor) · Network $899. Externals free. Mahinder $500/$1,000 finder's fee. |
| §2.7 | Firm timeline commitment? | Parked | 4w P1 + 2w P1.5 + 4w P2; renegotiate with Nisha. |
| §2.8 | Multi-tenant from v1? | Locked | Yes — tenant_id everywhere, ProjectMember for externals. |
What's good · what's open · what needs correction
✅ What's good
- Scope is reframed correctly (operating platform, not a ticketing tool)
- Multi-tenant data model handles the "trade works across builders" reality
- Document vault directly addresses the sharpest transcript pain
- Variation flow is the anchor demo scenario — feels real
- Pricing is settled with a defensible anchor (Pro $399)
- Both Claude Code and Codex read the same context file (CLAUDE.md ↔ AGENT.md)
⚠️ What's open
- Site supervisor role isn't strongly validated by transcripts — kept on plan, watch for client pushback
- Network admin in current static demo could mislead Mahinder/Nisha about Phase 1 scope
- Trade booking flow not yet in the static demo — needs verbal walkthrough at the call
- Chinmay's React availability is unconfirmed (build plan does not depend on him)
- Mahinder remains a relay, not a champion — no plan B for buyer access yet
🔧 What needs correction / decision
- Need explicit answer: is Nisha the builder or her employer? (§2.1)
- Need explicit answer: same Nisha as the previous osTicket build? (§2.2)
- Need date commitment for Mahinder demo before we can sign-off Phase 1 start
- Static demo's network-admin/supervisor labels may need to be hidden before client view
- This HTML doc should be hosted on a real URL (GitHub Pages or VPS) so it's shareable
Documents map
| File | Purpose | Audience |
|---|---|---|
docs/docs.html | This page — visual, shareable, single file | Ash + Client |
docs/PRODUCT_PLAN.md | Full 1,656-line product plan (18 sections) | Ash + engineers |
docs/ARCHITECTURE.md | Visual board with Mermaid diagrams | Engineers |
docs/AUDIT.md | Transcripts × demo × starter-kit gap analysis | Ash |
docs/HANDOFF.md | Canonical scope reframe from the repo | Ash + engineers |
CLAUDE.md ↔ AGENT.md | Agent onboarding (symlink, single source of truth) | Claude Code + Codex |
index.html, app.js, styles.css | The static clickable demo (do not touch) | Client demo |