How nyllon-software/ember-cloudflare works
Ember is a Cloudflare-hosted team chat app. A member opens the web app, which loads workspace state and presents rooms, threads, and direct messages; the Worker handles workspace and room interactions, with persistent conversation state and supporting services for search, files, notifications, bots, assistants, and huddles. The README documents the product capabilities, while the sampled source and index expose only some wiring, so undocumented runtime links are omitted rather than inferred.
Main entry points: App.tsx Web app shell · workspace.ts Workspace service · index.ts Request router · workspace-store.ts Workspace state
Components 22
Web application
- Web app shell
apps/web/src/App.tsx - Chat interface
apps/web/src/components/workspace/room-view.tsx - Membership settings
apps/web/src/components/workspace/settings-page.tsx
Worker services
- Request router
apps/worker/src/index.ts - Workspace service
apps/worker/src/workspace.ts - Room service
apps/worker/src/chat-room.ts - Workspace state
apps/worker/src/workspace-store.ts - Database access
apps/worker/src/db.ts - Search service
apps/worker/src/searches.ts - Search index
apps/worker/src/search-index.ts - File handling
apps/worker/src/files/uploads.ts - File previews
apps/worker/src/files/previews.ts - Bot webhooks
apps/worker/src/bots/webhooks.ts - AI assistant
apps/worker/src/assistant/gateway.ts - Huddle sessions
apps/worker/src/huddles/room.ts - Media forwarding
apps/worker/src/huddles/sfu.ts - Push delivery
apps/worker/src/push/delivery.ts
Shared packages
- Wire protocol
packages/protocol/src/index.ts - Rich text
packages/richtext/src/render.ts
Cloudflare platform
- Cloudflare storage and runtime
Other components
- Team member
- External services
Connections 21
- Team member → Web app shell: uses
README.md - Web app shell → Request router: loads workspace
- Web app shell → Chat interface: shows chat
- Web app shell → Membership settings: shows settings
- Web app shell → Wire protocol: imports types
apps/web/src/App.tsx - Request router → Workspace service: routes requests
- Workspace service → Workspace state: uses state
apps/worker/src/workspace.ts - Workspace service → AI assistant: invokes gateway
apps/worker/src/workspace.ts - Workspace service → Media forwarding: uses media
apps/worker/src/workspace.ts - Search service → Search index: queries index
apps/worker/src/searches.ts - Search index → Cloudflare storage and runtime: stores index
apps/worker/src/search-index.ts - Room service → Cloudflare storage and runtime: stores messages
README.md - File handling → Cloudflare storage and runtime: stores files
README.md - File previews → Cloudflare storage and runtime: stores previews
apps/worker/src/files/previews.ts - Bot webhooks → External services: accepts webhooks
README.md - AI assistant → External services: uses AI models
README.md - Huddle sessions → Media forwarding: uses forwarding
apps/worker/src/huddles/room.ts - Push delivery → Team member: sends notifications
README.md - Workspace state → Database access: uses persistence
- Rich text → Chat interface: renders messages
- Wire protocol → Request router: defines API frames
packages/protocol/src/index.ts