How emanuelrendas/ai-showroom works
AI Showroom is a Next.js application for authenticated users to navigate a shared Workspace → Project → Mission hierarchy backed by Supabase. Its primary workflow is signing in, opening a workspace, browsing or creating projects, then browsing or creating missions; Supabase Auth and RLS protect persistent shared data. The repository also contains a distinct Obsidian sync toolchain for guarded vault mutations and local pulls. The README documents the app’s security and persistence capabilities; sampled source confirms key sync-runner and mutation-pipeline calls. Unsampled route, query, action, and policy details limit some wiring.
Main entry points: server.ts Server Client · mutation-pipeline.ts Mutation Pipeline · client.ts Browser Client · local-pull.ts Local Pull
Components 34
Authentication
- Sign-in Page
app/(auth)/sign-in/page.tsx - Sign-in Form
features/auth/sign-in-form.tsx - Auth Actions
features/auth/actions.ts - Auth State
features/auth/auth-state.ts
Workspace Workflow
- App Home
app/(app)/app/page.tsx - Workspace Page
app/(app)/w/[workspaceSlug]/page.tsx - Workspace Shell
features/workspaces/workspace-shell.tsx - Workspace Actions
features/workspaces/actions.ts - Workspace Queries
features/workspaces/queries.ts - Create Workspace
features/workspaces/create-workspace-form.tsx - Project Page
app/(app)/w/[workspaceSlug]/projects/[projectId]/page.tsx - Project Actions
features/projects/actions.ts - Project Queries
features/projects/queries.ts - Create Project
features/projects/create-project-form.tsx - Mission Page
app/(app)/w/[workspaceSlug]/projects/[projectId]/missions/[missionId]/page.tsx - Mission Actions
features/missions/actions.ts - Mission Queries
features/missions/queries.ts - Create Mission
features/missions/create-mission-form.tsx
Supabase Backend
- Server Client
lib/supabase/server.ts - Browser Client
lib/supabase/client.ts - Database Types
lib/supabase/database.types.ts - Supabase Auth
- Supabase Data
Obsidian Sync
- Foundation Review
tools/obsidian-sync/foundation-review-runner.ts - Review Closure
tools/obsidian-sync/review-closure-runner.ts - Mutation Pipeline
tools/obsidian-sync/mutation-pipeline.ts - Contract Validator
tools/obsidian-sync/contract-validator.ts - Append Validator
tools/obsidian-sync/append-only-validator.ts - Isolation Gate
tools/obsidian-sync/isolation-gate.ts - Git Transaction
tools/obsidian-sync/git-transaction.ts - Local Pull
tools/obsidian-sync/local-pull.ts
Other components
- User
- Obsidian Vault
- Git Remote
Connections 39
- User → Sign-in Page: opens
- Sign-in Page → Sign-in Form: renders
- Sign-in Form → Auth Actions: submits
- Auth Actions → Server Client: uses
- Server Client → Supabase Auth: authenticates
- Auth State → Browser Client: reads session
- Browser Client → Supabase Auth: authenticates
- User → App Home: opens
- App Home → Workspace Queries: loads workspaces
- Workspace Page → Workspace Shell: renders
- Workspace Shell → Workspace Queries: loads workspace
- Create Workspace → Workspace Actions: submits
- Workspace Actions → Server Client: uses
- Workspace Queries → Server Client: uses
- Workspace Page → Project Queries: loads projects
- Create Project → Project Actions: submits
- Project Actions → Server Client: uses
- Project Page → Project Queries: loads project
- Project Queries → Server Client: uses
- Create Mission → Mission Actions: submits
- Mission Actions → Server Client: uses
- Mission Page → Mission Queries: loads mission
- Mission Queries → Server Client: uses
- Server Client → Supabase Data: reads and writes
- Browser Client → Supabase Data: accesses
- Database Types → Server Client: types
- Database Types → Browser Client: types
- User → Foundation Review: initiates
- Foundation Review → Mutation Pipeline: executes
- Foundation Review → Local Pull: executes
- Review Closure → Mutation Pipeline: executes
- Review Closure → Local Pull: executes
- Mutation Pipeline → Contract Validator: validates
- Mutation Pipeline → Append Validator: validates
- Mutation Pipeline → Isolation Gate: checks isolation
- Mutation Pipeline → Git Transaction: commits changes
- Git Transaction → Obsidian Vault: mutates
- Local Pull → Obsidian Vault: pulls into
- Local Pull → Git Remote: fetches from