Made Open

Projects Overview

Made Open is a monorepo containing five projects. Each project delivers standalone value and can be developed, tested, and demonstrated independently. Together they form the complete platform.

Monorepo Layout

apps/
├── hub/        Core platform — all backend services
├── web/        Next.js web client — full portal + communication
├── android/    Kotlin Android app — full client + location sensor
└── windows/    Tauri Windows agent — browser automation + data sync

packages/
├── shared/     TypeScript types, Zod schemas, event catalog
└── ai/         AI service library — RAG, LLM routing, workflows

supabase/
├── migrations/ Schema migrations (all entities)
├── functions/  Edge Functions (webhook receivers)
└── seed.sql    Dev seed data

Dependency Graph

                    packages/shared
                    ┌──────┴──────┐
                    │             │
                  hub           web
                    │
                packages/ai
  • packages/shared has no workspace dependencies
  • packages/ai depends on packages/shared
  • apps/hub depends on packages/shared and packages/ai
  • apps/web depends on packages/shared
  • apps/android and apps/windows have no workspace dependencies (native projects)

Standalone Value Per Project

ProjectStandalone demo
apps/hubStart hub, add credentials, sync contacts from MS Graph, see data in Supabase
apps/webOpen browser, login, see contacts, make a call, send SMS
apps/androidInstall, login, see contacts, make a call, see location streaming
apps/windowsInstall agent, see active app tracking, run a browser automation task
packages/aiPoint at any Supabase project, ask a natural language question, get a data-grounded answer

Communication Between Projects

Projects never call each other's code directly. They communicate through shared contracts:

ChannelUsed By
Supabase PostgreSQLHub writes; web + android read via Supabase JS
Supabase RealtimeHub writes; web + android receive live updates
Hub REST APIWeb + android call hub for actions (send message, place call, trigger rule)
Hub /device-eventsAndroid + Windows POST sensor data
NATS JetStreamInternal to hub only; not exposed to clients
packages/shared typesTypeScript contract between hub and web

Project Health Signals

Each project has its own first testable workflow. If that workflow works end-to-end, the project is healthy:

  • hub: MS Graph contacts sync into Supabase → data.EntityCreated event in NATS → audit log entry created
  • web: Login → contacts visible → make a WebRTC call → call record appears in Supabase
  • android: Install → login → see synced contacts → location updates visible in hub
  • windows: Active app tracking visible in tray → browser task executes → file appears in hub storage
  • packages/ai: Semantic search returns relevant results from Supabase data

Initial Scope

All five projects ship with scoped initial feature sets that expand as additional capabilities are enabled:

ProjectInitial scope
hubFull backend: Plugin Manager, all services, MS Graph + Twilio plugins
webContacts, dialer, SMS, credential wallet, basic rule builder
androidLogin, contacts, calls, location streaming
windowsActive app tracking, basic sync; full browser automation available as an extended capability
packages/aiEmbedding pipeline active; full agent available when AI credentials are added

See 04-roadmap/phases.md for the full build breakdown.