Library / SDK
hakimel/reveal.js avatar
hakimel/reveal.js

reveal.js 6.0: The HTML Presentation Framework That Still Rewards Hand-Written Slides

The HTML Presentation Framework. It enables anyone with a web browser to create beautiful presentations for free.

72,568 stars17,026 forksJavaScriptMIT

At a glance

What is it?
reveal.js is a browser-based presentation framework with nested slides, Markdown, Auto-Animate, and PDF export. Version 6.0 landed in March 2026, and the project remains a solid choice for developers who want slides as code, but it has trade-offs for non-programmers.
Who is it for?
Adopt reveal.js if you are a developer or technical writer who wants version-controlled slides, precise layout control, and a framework that runs in any browser without a backend. Skip it if you need a graphical editor or rapid visual design; Slides.com exists for that, but it is a separate product.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 44 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • hakimel/reveal.js72,568 ★ · +532
Star history
Repository2026-07-282026-11-13
hakimel/reveal.js72k72.6k

532 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What Problem Does reveal.js Actually Solve?

reveal.js addresses a specific pain: slides that live in a binary file format, like PowerPoint or Keynote, are hard to version, diff, and automate. The framework turns a presentation into a web page, so your slides are HTML, CSS, and JavaScript. That means you can put them in a Git repository, review changes in a pull request, and regenerate them with a build script. It is for people who already think in code. The README says it enables anyone with a web browser to create presentations for free, but the real audience is developers and technical presenters. A designer who wants drag-and-drop will not find it here. The project is MIT licensed, which removes most licensing friction for commercial use. It has been around since 2011, and the copyright notice in the README confirms that. Longevity is not a guarantee of quality, but it does mean the project has survived multiple browser generations.

The Architecture: Slides as a Web Document

The core idea is that a presentation is a single HTML file with a specific structure. You write sections and the framework turns them into slides. The README points to the markup documentation for the exact syntax. Nested slides are a distinctive feature: you can create vertical slides that navigate down, not just horizontally. This gives you a two-dimensional grid of slides, which is useful for drill-down content. The framework also supports Markdown, so you can write your slide content in a lighter syntax instead of raw HTML. That is a significant ergonomic win for people who want to focus on content. Auto-Animate is another mechanism: it animates changes between slides automatically, so you do not need to write CSS transitions by hand. The framework loads in the browser and handles navigation, keyboard events, and touch gestures. It is not a server-side tool; everything runs client-side. The documentation covers an extensive API, so you can control the presentation programmatically, which opens the door to integrations like remote control or embedded analytics.

Getting It Running: Real Commands and Config Keys

The README points to the installation page for the actual commands, and the README itself contains no install command. The npm package is named reveal.js, the repository has a default branch named master, and the latest release is 6.0.2, published on September 10, 2026. But you do need to understand HTML structure and basic JavaScript to get the most out of it.

Where It Falls Short: The Wrong Tool for Some Jobs

The most obvious limitation is the learning curve. If you are not comfortable editing HTML and JavaScript, you will struggle. The README mentions a visual editor, Slides.com, but that is a separate product, not part of the open source project. That means the framework itself has no GUI. Another failure mode is collaborative editing. Because slides are static files, real-time co-editing, like in Google Slides, does not exist. You would need to handle merge conflicts manually. Also, the framework is browser-based, so if you need to present offline on a machine without a modern browser, you are out of luck. The README says anyone with a web browser can use it, but older browsers may not support all features. The documentation is extensive, but the README is thin; you have to visit the site to learn the actual syntax. For someone who wants a quick presentation without reading a manual, this is a barrier.

Alternatives: A Real Comparison with Different Approaches

The most direct alternative is Slides.com, which the README itself promotes as a graphical editor for reveal.js. The difference is fundamental: Slides.com is a hosted, visual tool where you drag and drop elements. It is made by the same people, so the output is compatible, but the workflow is opposite. With reveal.js, you write code; with Slides.com, you point and click. The key difference between reveal.js and a traditional tool like PowerPoint is the file format and the rendering engine. reveal.js renders in the browser, so you get web-native features like embedded iframes, live code demos, and CSS styling. PowerPoint is a native application with its own rendering engine, which is more predictable but less flexible. For a developer, the browser is the natural medium; for a non-developer, the learning curve is steep. The existence of Slides.com shows that the authors recognize this gap.

Maintenance and Upgrade Cost: What the Release History Says

The release history shows a clear pattern: 6.0.0 came out in March 2026, 6.0.1 in April 2026 and 6.0.2 in September 2026. That is a major version bump, which usually indicates breaking changes. The README does not list them, so you must read the release notes on the GitHub releases page. The project is actively maintained, with the last push on 2026-09-30. The MIT license means you can modify and redistribute the code, but you must retain the copyright notice, which is stated in the README. The upgrade cost is moderate: if you have a custom theme or plugins, you need to test them against the new version. The move from 5.x to 6.x could require changes, so check the documentation. There is no built-in migration tool mentioned in the README, so you should plan to manually check your presentations after upgrading. For a framework that generates static files, that is a manageable cost, but it is not zero.

Editorial conclusion

Adopt reveal.js if you are a developer or technical writer who wants version-controlled slides, precise layout control, and a framework that runs in any browser without a backend. Skip it if you need a graphical editor or rapid visual design; Slides.com exists for that, but it is a separate product. Before adopting, verify the 6.0 release notes for breaking changes from 5.x, especially if you rely on plugins or custom themes.

Frequently asked questions

What is reveal.js?

reveal.js is an open source HTML presentation framework, MIT licensed, that lets anyone with a web browser create presentations. The framework's own feature list names nested slides, Markdown support, Auto-Animate, PDF export, speaker notes, LaTeX typesetting, syntax highlighted code and an API. The current release line is 6.x.

Is reveal.js open source?

Yes, under the MIT licence, with the copyright line naming Hakim El Hattab and covering 2011 to 2026. The framework, the themes, the plugins and the examples are all in the licensed repository. A graphical editor at Slides.com and a video course are separate products from the same author.

How do I install reveal.js?

The README contains no install command and links to an installation page on the documentation site instead. The npm package is reveal.js, and its files array publishes dist, css, js, LICENSE, README.md, index.html and demo.html.

How do I convert a reveal.js file to PDF?

PDF export is one of the features the README names, with its own page on the documentation site. Follow that documentation page for the steps.

Where can I see reveal.js presentation examples?

The repository has a demo presentation on the documentation site and thirteen example files and an assets folder in the examples directory, from barebones.html at one end to 500-slides.html at the other, with auto-animate, markdown, math, media, backgrounds, transitions, multiple-presentations, scroll, layout-helpers and lightbox in between. Those example files are not published to npm and are available by cloning the repository.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/hakimel-reveal-js.svg)](https://hysenlabs.com/projects/hakimel-reveal-js)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/hakimel-reveal-js.svg)](https://hysenlabs.com/projects/hakimel-reveal-js)

Was this useful?