// presentation toolkit
deck-kit
HTML slides, a synced presenter view and one file that runs with Wi-Fi off.
A reusable presentation kit built with plain HTML, CSS and TypeScript. Write slides as small HTML files, present with step-aware notes and a pace timer, then ship a self-contained deck or PDF. Four portable agent skills guide research, writing, verification and design, with a review stop after each phase.
- year
- 2026
- type
- presentation toolkit
- group
- developer tools
- status
- open source, mit licensed
the problem
//01the problem
A talk needs more than slides: a script, a shorter cut, reliable presenter controls and a fallback when the network fails. I wanted to keep all of that in a repository, reuse the engine for the next talk and change the design without rewriting the content.
how it works
//02how it works
- 01
Content, theme and engine stay separate
Each slide is an HTML partial with semantic markup, build steps and speaker notes. A deck manifest sets the order, timing and alternate profiles. CSS tokens and layouts own the design; the vanilla TypeScript engine handles navigation on a fixed 1920 by 1080 canvas, scaled to fit the screen.
- 02
A presenter view that keeps up
The presenter sees the current step, next slide, highlighted script and pace against target timings. Either window can advance the talk. BroadcastChannel sync has an opener fallback for local files; keyboard, clicker and touch controls share the same navigation, with overview and blackout a key away.
- 03
A workflow with review built in
Four skills create a talk, add slides, retheme it or prepare delivery. The new-deck workflow moves through brief, research, content, verification and design, pausing for review at each phase. Shared instructions work with Codex, Claude Code and other compatible agents; slides can also be written by hand.
- 04
Ready for the room, with a fallback
Vite builds a static site or one deck.html that opens from a USB stick, including the presenter view. Export slides to PDF and notes to a printable script. Separate engine and deck browser suites check navigation, sync, slide fit, accessibility, print and offline behavior, with external requests blocked.
measured
//03measured
- 1
- file to present offline
- deck.html includes the slides, assets and presenter view
- 4
- portable agent skills
- new-deck, add-slide, retheme and ship-deck
- 2
- complete example talks
- wireless networks and introductory cryptography
highlights
//04highlights
- Single-file offline delivery, static hosting and PDF export
- Two-way presenter sync with step-aware notes and a persistent timer
- Alternate talk profiles with their own slide order and target timings
- Keyboard and clicker controls, overview, blackout and touch navigation
- Portable agent skills with explicit review stages
- Two complete talks with distinct themes on the same framework-free engine
built with
- TypeScript
- Vite
- HTML
- CSS
- Vitest
- Playwright
- Biome
//05contact
Say hello. I read everything.
Email is the fastest way to reach me. For anything that needs a conversation, book a call.
to
- name
- Khaled Saeed
- country
- Lebanon