Muse Studio
Product architecture

How Muse Studio works

A unified workspace combining project management, design tooling and AI-powered visual search — built on a real-time event-driven core.

Core data flow
1
Designer
Creates project, uploads plans, builds selections
2
Builder
Updates progress, schedules tasks, uploads docs
3
Rules engine
Validates, routes & assigns approvals
4
Homeowner
Reviews, comments, approves or rejects
5
Dashboard
Surfaces status across all projects
Every step emits an event → the rules engine fans out to notifications, audit log and dashboard projections.
System diagram
Designer appBuilder appHomeowner appAPI Gateway · Auth · Rate limitProjectsFilesSelectionsApprovalsAI SearchRules engine · Event bus · Audit logPostgresObject storeVector DBRealtime
Floor plan engine
Vector canvas with PDF/JPG/DWG import, furniture library, lighting layer.
AI visual search
Upload an image — embeddings find visually similar products from suppliers.
Colour matching
ΔE-based matching across F&B, BM, SW and Resene paint catalogues.
Realtime sync
Comments, approvals and status changes stream live across all clients.
Role-based access
Designer / Builder / Homeowner / Admin with per-project permissions.
Audit trail
Every approval, edit and comment is event-sourced and replayable.
Rules engine
Rule packs auto-route approvals, escalate stalled tasks, gate stages.
Templates
Reusable onboarding questionnaires and project playbooks.
Rules engine — sample rule

When a designer submits a selection over the project budget threshold, escalate to the homeowner and the admin in parallel, then auto-create a comment thread.

rule "Selection over budget":
  when:
    event.type == "selection.submitted"
    event.price > project.lineItemThreshold
  then:
    notify(project.homeowner, "Approval needed: ${event.item}")
    notify(project.admin, "High-value selection")
    create(thread, scope: event.id)
    require(approval.from: ["homeowner"])
Validation
Routing
Escalation