Skip to content

About

A modern opinionated local-first slide deck editor for reveal.js

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Revealation logo

A web-based editor for polished reveal.js presentations

Create, edit, present, and export technical presentations from a Git-friendly workspace. Bring your ideas, your Markdown, and perhaps a comforting beverage.

MIT License Online version

Quick start · Features · Documentation · Development

Revealation is a web-based editor for creating technical reveal.js presentations. The presentation source is human-readable Markdown. A workspace stores slide content in deck.md, project metadata in deck.json, and media or other resources as ordinary files with relative paths. This makes presentations easy to edit, move, back up, and version with Git.

Under development: Revealation is an actively developed alpha project. Features, storage behavior, and deployment workflows may change, and it is not yet recommended as the only copy of important presentations. See the release limitations before relying on it.

Why this exists

Prompted with passion and lack of time, Revealation began as a “let’s see what we can get with AI over the weekend” project. Naturally, it spiraled out of control and became a real slide editor.

I have not looked at 99% of the code. I am, however, actively using it and polishing its rough edges iteratively ... which is either a development methodology or just an avoidance strategy.

The end goal is simple: finally have full control over my slides without going insane while writing them. Revealation is deliberately heavily opinionated and limited in customization by choice, partly because good defaults are lovely and partly because I have seen some dreadful PowerPoint abominations.

The project is based on Small Reveal, which showed me what was possible and gave this weekend experiment somewhere wonderful to start. Markdown is the secret ingredient. It makes conversations with AI dramatically easier: the source is readable, portable, diffable, and much less mysterious than a pile of presentation-editor internals.

Features

  • Visual slide editing with a whole-deck Markdown editor
  • Full-screen Present mode directly from the editor and browser-based PDF export
  • Subslides, ::: notes speaker notes, fragments, presentation-wide transitions, and curated slide backgrounds
  • Curated light/dark presentation themes with a manifest-based theme extension API
  • Protected single- and multi-block layouts with custom layout extensions
  • Local images, video, audio, and iframe-backed interactive content
  • Syntax-highlighted code and LaTeX equation editing
  • Workspace file browser and relative asset paths
  • Installable PWA mode with direct access to a user-selected local presentation folder on supported browsers
  • Import and export for .revealation presentations, Markdown, standalone HTML, and PDF
  • Responsive editor layout for desktop and mobile screens

Quick start

The recommended way to use Revealation is the hosted, installable PWA. Open the online version over HTTPS, choose or create a presentation folder, and optionally install it from the browser. On supported Chromium-family browsers the PWA uses the File System Access API for local presentation folders; other browsers retain browser-storage fallback. See docs/PWA_DEPLOYMENT.md for self-hosting and GitHub Pages deployment.

For development or an offline local fallback, use the Python workspace server. It requires Python 3 and a modern browser:

./start.sh /path/to/presentation

Then open http://127.0.0.1:8000/ in a browser. If no directory is supplied, the current directory is used. A temporary workspace is useful for development:

./start.sh /tmp/revealation-workspace

No Node.js, npm, database, or Python packages are required for normal use.

For the alpha release, Chromium-family browsers are preferred for local-folder PWA access. Standalone HTML cannot reliably bundle complex interactive apps, and PDF export depends on the browser's native Print → Save as PDF dialog. See the complete release limitations.

Workspace structure

A typical presentation project looks like this:

presentation/
├── deck.md
├── deck.json
├── assets/
│   ├── diagram.svg
│   └── example.png
├── media/
│   └── clip.mp4
└── interactive/
    └── example/
        ├── index.html
        ├── app.js
        └── style.css

deck.md is the source of truth for slide content. deck.json stores project metadata and editor state; it does not replace the Markdown document. Assets remain regular files and are referenced using paths relative to the workspace.

Markdown example

Most content uses ordinary Markdown. Revealation adds small, readable directives for presentation-specific structures:

--- layout=two-columns

::: block
## Main point

Text, lists, code, equations, and images.
:::

::: block align=center
![Diagram](assets/diagram.svg){width=70%}
:::

See docs/MARKDOWN.md, docs/LAYOUTS.md, and docs/THEMES_AND_BACKGROUNDS.md for the complete syntax and extension rules.

Documentation

The docs/ directory contains the detailed documentation:

Historical notes, architecture decisions, and preserved upstream material are also kept under docs/.

Development and testing

Revealation has no mandatory development build system. Edit the source, reload the browser, and run the checks before packaging:

./tests/check.sh

The dependency-free checks always run. If chromium is available, the command also runs the headless Chromium regression suites; otherwise those browser tests are skipped. See docs/TESTING.md for the browser-test commands and prerequisites.

Source code is organized by responsibility under src/. Explicit extension registrations live under extensions/; built-in theme packages live under themes/. ./scripts/build-pages.sh is a deployment-only assembly step that creates the static PWA artifact in dist/; it does not bundle or transform the browser source.

Attribution

Revealation started from Small Reveal by Mark Sample. The original MIT license and attribution are preserved; Revealation adds the filesystem workspace, layout, interactive-content, and export features. Unfortunately, the projects are not compatible anymore due to heavy divergence, but Small Reveal remains a wonderful reference for reveal.js usage and design.

License

MIT License

About

A modern opinionated local-first slide deck editor for reveal.js

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages