// the find
hakimel/reveal.js
The HTML Presentation Framework
reveal.js is a browser-based presentation framework — you write slides as HTML (or Markdown), and it handles everything from transitions to speaker notes to PDF export. It's been the go-to for developers who'd rather write code than click through PowerPoint, and at 15 years old it's genuinely mature.
Markdown support is first-class and actually works well — you can write an entire deck in a single .md file. Auto-Animate is surprisingly good for technical demos; matching element IDs across slides gives you smooth state transitions without any manual keyframing. The plugin architecture is clean and the bundled plugins (highlight, math via KaTeX/MathJax, notes) cover most technical presentation needs out of the box. A React wrapper now ships in the repo with its own test suite, which makes integrating into existing React projects much less painful than the old 'drop in a script tag' approach.
The dist/ directory is committed to the repo, which is a code smell that makes PRs noisier than they need to be and the repo heavier than it should be. PDF export is still done via browser print — it works but it's fragile, layout-dependent, and produces inconsistent results compared to a headless renderer. The speaker notes window communicates over BroadcastChannel/localStorage, which breaks the moment you're presenting from a browser where the two windows don't share an origin or storage. Scroll mode (the newer vertical-scrolling layout) is documented but clearly still second-class — the examples are thin and it interacts awkwardly with fragments.