Prox OS Internal Docs
PlatformArchitectureRepo

Monorepo Workspace Guide

Catalog **deployable apps**, **shared packages**, how they connect, how to run them locally, and where to open source for each concern. This complements [packag

Purpose

Catalog deployable apps, shared packages, how they connect, how to run them locally, and where to open source for each concern. This complements package-graph.md (boundary rules) and core-architecture-thinking.md (philosophy).

Workspace Layout

Managed by pnpm (pnpm-workspace.yaml: apps/*, packages/*, tools/*) and Nx task orchestration (pnpm nx). Nx owns the project graph, affected task selection, target defaults, and local cache.

prox-os/
├── apps/           # Deployable or standalone runtimes
├── packages/       # Shared libraries (imported, not deployed alone)
├── docs/           # Canonical documentation (synced to apps/docs)
├── scripts/        # docs sync, arch generators, quality checks
└── AGENTS.md       # Agent + contributor rules (stronger than this doc)

Deployable Apps

PathPackageRoleDefault devKey entry
apps/os-shell@prox-os/os-shellBrowser OS shell: desktop, windows, registry, routingpnpm dev:os (port 3000)src/index.tsx, src/apps/registry.ts, src/router.tsx
apps/api-worker@prox-os/api-workerCloudflare Worker API (Hono)pnpm dev:apisrc/index.ts, wrangler.jsonc
apps/docs@prox-os/docsFumadocs site (mirrors docs/)pnpm dev:docs (port 3100)content/docs/, source.config.ts
apps/ui-workshop@prox-os/ui-workshopStorybook for os-ui / tokenspnpm dev:uiStorybook config under app
apps/esmadrider-me@prox-os/esmadrider-meFounder static site; iframe apppnpm dev:esmadrider-meVite app; VITE_PROX_OS_URL for OS CTA

Why api-worker lives under apps/ not packages/: it is a deployable HTTP service with its own Wrangler config, env bindings, and production URL — same category as os-shell and docs, not a library consumed via import. Shared server logic belongs in packages/* (e.g. future packages/os-actions, packages/data/db).

Shared Packages (selected)

PathPackageRoleKey entry
packages/contracts/app-contract@prox-os/app-contractManifest, window, permission types (no React)src/index.ts
packages/os-surface@prox-os/os-surfaceDesktop Surface Engine model, layout modes, surface capabilities, and placement shapessrc/index.ts
packages/runtime/app-registry@prox-os/app-registryIframe manifest templates + URL resolutionsrc/manifests/*
packages/ui/actions@prox-os/actionsAction intent contract and UI primitivessrc/index.ts
packages/ui/command@prox-os/commandCommand contract and palette primitivessrc/index.ts
packages/ui/forms@prox-os/formsForm contract, validation, and input primitivessrc/index.ts
packages/ui/editor@prox-os/editorEditor contract and adapter primitivessrc/index.ts
packages/features/collaboration@prox-os/collaborationCollaboration contract and UI primitivessrc/index.ts
packages/ui/notifications@prox-os/notificationsNotification contract and UI primitivessrc/index.ts
packages/features/search@prox-os/searchSearch contract, local adapter, and UI primitivessrc/index.ts
packages/features/files@prox-os/filesFile contract, browser primitives, previews, picker, and transfer-state UIsrc/index.ts
packages/features/ai-ui@prox-os/ai-uiAI interaction contract, chat/tool/approval/artifact/context/citation primitivessrc/index.ts
packages/features/security-ui@prox-os/security-uiSecurity UI contract, permission/risk/audit/session/token/access review primitivessrc/index.ts
packages/features/workspace-ui@prox-os/workspace-uiWorkspace UI contract, switcher/dashboard/resource/member/project primitivessrc/index.ts
packages/ui/activity@prox-os/activityActivity timeline contract, feed/digest/detail primitives, and cross-domain adapterssrc/index.ts
packages/contracts/data-contract@prox-os/data-contractStructured dataset, view, source, and chart types (no React)src/index.ts
packages/features/data-table@prox-os/data-tableOS-native table/grid primitivessrc/index.ts
packages/features/data-viz@prox-os/data-vizOS-native chart primitives and adapterssrc/index.ts
packages/features/media@prox-os/mediaMedia resource contract and UI primitivessrc/index.ts
packages/features/maps@prox-os/mapsMap/geospatial contract and UI primitivessrc/index.ts
packages/apps/system-apps@prox-os/os-appsOfficial OS apps (in-window UI)src/index.ts, per-app manifest.ts
packages/ui/os-ui@prox-os/os-uiShell UI primitivessrc/index.ts
packages/ui/design-tokens@prox-os/design-tokens--os-* CSS + Tailwind bridgecss/prox.css
packages/data/db@prox-os/dbDrizzle/Neon (planned)schema TBD
packages/backend/storageObject storage abstraction (planned)placeholders

How Pieces Connect

flowchart LR
  subgraph browser [Browser]
    Shell[apps/os-shell]
  end
  subgraph packages [Packages]
	    Contract[app-contract]
	    OsSurface[os-surface]
	    Actions[actions]
    Command[command]
    Forms[forms]
    Editor[editor]
    Collaboration[collaboration]
    Notifications[notifications]
    Search[search]
    Files[files]
    AiUi[ai-ui]
    SecurityUi[security-ui]
    WorkspaceUi[workspace-ui]
    Activity[activity]
    Registry[app-registry]
    DataContract[data-contract]
    DataTable[data-table]
    DataViz[data-viz]
    Media[media]
    Maps[maps]
    OsApps[os-apps]
    OsUi[os-ui]
    Tokens[design-tokens]
  end
  subgraph deploy [Deployables]
    API[apps/api-worker]
    DocsSite[apps/docs]
    Workshop[ui-workshop]
    Founder[esmadrider-me]
  end
	  Shell --> Registry
	  Shell --> OsApps
	  Shell --> OsSurface
	  Shell --> OsUi
	  Shell --> Tokens
  Workshop --> Actions
  Workshop --> Command
  Workshop --> Forms
  Workshop --> Editor
  Workshop --> Collaboration
  Workshop --> Notifications
  Workshop --> Search
  Workshop --> Files
  Workshop --> AiUi
  Workshop --> SecurityUi
  Workshop --> WorkspaceUi
  Workshop --> Activity
	  Registry --> Contract
	  Contract --> OsSurface
	  OsApps --> Contract
  OsApps --> OsUi
  DataTable --> DataContract
  DataViz --> DataContract
  Workshop --> DataContract
  Workshop --> DataTable
  Workshop --> DataViz
  Workshop --> Media
  Workshop --> Maps
  Command --> Actions
  Forms --> Actions
  Collaboration --> Actions
  Notifications --> Actions
  Notifications --> Collaboration
  Search --> Actions
  Search --> Command
  Search --> Collaboration
  Search --> Notifications
  Files --> Actions
  Files --> Search
  Files --> Notifications
  Files --> Collaboration
  AiUi --> Actions
  AiUi --> Editor
  AiUi --> Search
  AiUi --> Files
  AiUi --> Notifications
  AiUi --> Collaboration
  AiUi --> Command
  SecurityUi --> Actions
  SecurityUi --> AiUi
  SecurityUi --> Files
  SecurityUi --> Notifications
  SecurityUi --> Search
  SecurityUi --> Collaboration
  SecurityUi --> Command
  WorkspaceUi --> Actions
  WorkspaceUi --> Contract
  WorkspaceUi --> Files
  WorkspaceUi --> Search
  WorkspaceUi --> Notifications
  WorkspaceUi --> Collaboration
  WorkspaceUi --> SecurityUi
  WorkspaceUi --> AiUi
  WorkspaceUi --> Command
  Activity --> Actions
  Activity --> Command
  Activity --> Contract
  Activity --> WorkspaceUi
  Activity --> Files
  Activity --> Search
  Activity --> Notifications
  Activity --> Collaboration
  Activity --> AiUi
  Activity --> SecurityUi
  OsUi --> Tokens
  Shell -.iframe.-> Founder
  Shell -.dev iframe.-> DocsSite
  Shell -.dev iframe.-> Workshop
  Shell -.future HTTP.-> API

OS Shell Internal Map

ConcernLocation
App registry compositionapps/os-shell/src/apps/registry.ts
Local app renderersapps/os-shell/src/apps/localAppComponents.tsx
Window + Spaces storeapps/os-shell/src/window-manager/store.ts
Shell controllerapps/os-shell/src/shell/useDesktopShellController.ts
Global shortcutsapps/os-shell/src/shell/GlobalShortcuts.tsx
Cmd+K app listapps/os-shell/src/shell/command/commandPaletteApps.ts
Boot appearanceapps/os-shell/src/browser-local/applyBootShellAppearance.ts
Session / login overlayapps/os-shell/src/shell/session/*
Design tokens on <html>shell/settings/useShellSettingsState.ts

Common Commands

pnpm install
pnpm dev:os          # OS shell
pnpm dev:api         # API worker (Wrangler)
pnpm dev:docs        # docs:sync + Fumadocs dev server
pnpm dev:ui          # UI workshop / Storybook
pnpm typecheck
pnpm lint
pnpm docs:sync       # docs/ → apps/docs/content/docs
pnpm build:docs
pnpm graph          # Nx project graph
pnpm affected:quality
pnpm arch:check      # dependency-cruiser boundaries

Repo-wide tasks prefer pnpm nx run-many, pnpm nx affected, or pnpm nx run <project>:<target> per AGENTS.md.

Production Domains (direction)

Official subdomains are infrastructure entrypoints, not per-app identity. Creator-owned path namespaces are the preferred long-term model for public app URLs. See app-namespace-and-domain-strategy.md.

HostTypical deployableShell visibility
prox-os.comapps/os-shellPublic landing, crawler-readable explanation layer
api.prox-os.comapps/api-workerHTTP client from apps; not embedded as UI
docs.prox-os.comapps/docsPublic docs; dev team may also use /app-dev/docs iframe locally
ui.prox-os.comapps/ui-workshop buildDesign QA; dev iframe in shell
Scalar / OpenAPIOften api-worker /docs or separateProduction: omit from user registry; use /app-dev/* + Cloudflare Access

See cloudflare-deploy-and-access.md for the Cloudflare project names, Access boundaries, API docs exposure policy, and manual dashboard follow-up.

Adding a New App (checklist)

  1. Implement under packages/apps/system-apps (or shell local-module if shell-coupled).
  2. Add manifest to apps/os-shell/src/apps/registry.ts and types.ts ShellAppId.
  3. Wire localAppComponents.tsx and packages/ui/os-ui ShellAppIcon if needed.
  4. Cmd+K picks up registry automatically via getCommandPaletteApps().
  5. Update app-registry.md and run pnpm docs:sync if user-facing docs change.

See .agents/skills/prox-os-shell-workflows/SKILL.md for the full shell checklist.

On this page