How deckgo/deckdeckgo works
DeckDeckGo is a web presentation editor and developer kit, with a separate remote-control app and cloud-backed services. The main user flow is creating and editing a deck in Studio, then presenting or sharing it; documented capabilities also include polls, templates, media integrations, offline work, GitHub publishing, and Figma import. The tree and excerpts support some internal provider and remote-control relationships; several feature branches are documented in the README but their implementation wiring was not sampled, so those links are marked unverified.
Main entry points: storage.provider.ts Storage provider · admin.service.ts Sync services · app.js Realtime backend · app-root.tsx Studio editor
Components 30
User applications
- Studio editor
studio/src/app/app-root.tsx - Remote control app
remote/src/app/app-root.tsx
Editing runtime
- Deck editor
studio/src/app/editors/app-deck-editor/app-deck-editor.tsx - Document editor
studio/src/app/editors/app-doc-editor/app-doc-editor.tsx - Editor plugins
studio/src/app/plugins/code.plugin.ts - Paragraph parsing
webcomponents/studio/src/utils/parse-elements.utils.tsx
Data and sync
- Sync services
providers/sync/src/services/admin.service.ts - Deck provider
providers/sync/src/providers/deck.provider.ts - Document provider
providers/sync/src/providers/doc.provider.ts - Publish provider
providers/sync/src/providers/publish.provider.ts - Storage provider
providers/sync/src/providers/storage.provider.ts - Authentication state
providers/sync/src/stores/auth.store.ts - Deck state
providers/sync/src/stores/deck.store.ts - Document state
providers/sync/src/stores/doc.store.ts - Environment state
providers/sync/src/stores/env.store.ts - Store base
providers/sync/src/stores/store.ts - Provider selection
providers/sync/src/utils/providers.utils.ts
Cloud services
- Firebase storage
providers/firebase/src/providers/storage/storage.firebase.ts - Offline storage
providers/offline/src/providers/storage.offline.provider.ts - Realtime backend
backend/src/app.js - Poll sockets
backend/src/socket-io-poll.js - Remote sockets
backend/src/socket-io-remote.js
Presentation features
- Remote communication
remote/src/app/services/communication/communication.service.tsx - Deck remote handler
utils/kit/src/remote/controller.ts - Live polls
studio/src/app/services/poll/poll.service.ts - Slide templates
templates/chart/src/components/slide/deckdeckgo-slide-chart.tsx - Media integrations
studio/src/app/providers/unsplash/unsplash.provider.ts - GitHub publishing
cloud/functions/src/watch/publish/github/publish-github.ts - Offline presentation
providers/offline/src/providers/editor.provider.ts
Other components
- Presenter or author
Connections 25
- Presenter or author → Studio editor: creates decks
README.md - Studio editor → Deck editor: edits decks
- Deck editor → Editor plugins: uses plugins
- Document editor → Paragraph parsing: parses content
- Sync services → Deck provider: loads and deletes
providers/sync/src/services/admin.service.ts - Sync services → Document provider: loads and deletes
providers/sync/src/services/admin.service.ts - Sync services → Publish provider: updates landing
providers/sync/src/services/admin.service.ts - Sync services → Storage provider: deletes files
providers/sync/src/services/admin.service.ts - Storage provider → Authentication state: reads identity
providers/sync/src/providers/storage.provider.ts - Storage provider → Environment state: checks mode
providers/sync/src/providers/storage.provider.ts - Storage provider → Provider selection: selects cloud provider
providers/sync/src/providers/storage.provider.ts - Storage provider → Offline storage: reads offline files
providers/sync/src/providers/storage.provider.ts - Provider selection → Firebase storage: resolves provider
- Authentication state → Store base: extends
providers/sync/src/stores/auth.store.ts - Environment state → Store base: extends
providers/sync/src/stores/env.store.ts - Presenter or author → Remote control app: controls presentation
README.md - Remote control app → Remote communication: sends remote commands
remote/src/app/services/communication/communication.service.tsx - Deck remote handler → Presenter or author: accepts remote events
- Realtime backend → Poll sockets: loads socket handler
backend/src/app.js - Realtime backend → Remote sockets: loads socket handler
backend/src/app.js - Presenter or author → Live polls: runs live polls
README.md - Presenter or author → Slide templates: creates responsive slides
README.md - Presenter or author → Media integrations: searches media
README.md - Presenter or author → GitHub publishing: publishes source
README.md - Presenter or author → Offline presentation: works offline
README.md