skip to content

// 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.

// presentation06/21
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

  1. 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.

  2. 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.

  3. 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.

  4. 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