How SliDesk works
SliDesk is a talk engine built on Bun. It converts Markdown into a web-based presentation served over HTTP.
Architecture
main.sdf / main.md
│
▼
┌─────────────┐
│ Builder │ Parses Markdown → HTML slides
└──────┬──────┘
│ slides HTML
▼
┌─────────────┐
│ Server │ HTTP + WebSocket server
└──────┬──────┘
│
┌────┴────┐
│ │
▼ ▼
Browser Terminal
(slides) (telnet)
Builder
The builder reads main.sdf or main.md, parses it with markdown-it, processes components, applies templates, resolves !include() directives, and generates the final HTML for each slide.
Server
The HTTP server serves the presentation and speaker view. A WebSocket connection provides live reload when files change and communication between the presentation and speaker view.
File watcher
SliDesk watches the talk directory for changes. When a file is modified, the browser refreshes automatically via WebSocket.
Speaker view
The speaker view runs on a separate page (/notes.html) and communicates with the presentation view via WebSocket. It shows the current slide, next slide, timer, and speaker notes.
Telnet server
An optional telnet server lets you control the presentation from any terminal, useful when presenting remotely or on minimal setups.