mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Webevaluationupdated 27 Aug 2026

open-slide review

Open Slide is a React framework for presentations that a coding agent can write as ordinary components. It supplies a fixed slide canvas, local preview, presenter view, visual comments, asset management, and exports so the agent can focus on the deck content.

+158 / 4dstars / 7d
Verdict

Our Open Slide run installed 897 packages, built in 39 seconds, and passed all 313 Vitest tests, making it the easiest of these agent-led tools to trust for a real trial. Pick it when React is an asset and your output fits a 1920 by 1080 canvas. Choose Slidev or Marp for text-heavy decks, and wait if portrait formats, first-class translation, or unattended hidden-tab rendering are requirements.

We ran it

Lab card: what happened when we ran open-slideScreenshot of open-slide (open-slide.dev)
Install✓ · 63s897 packages · 1185 MB
Build✓ · 39s
Tests✓ · 12s313 passed · 0 failed of 313 (vitest)
Repo565 files~67,490 lines of source · 5.3 MB · 2 CI workflows

Answers from our run

Does open-slide build from source?

Dependencies installed in 63 seconds (897 packages), and the build succeeded in 39 seconds. We cloned commit ba5af02 into a clean Debian container with 3 CPUs and no project-specific setup.

Do open-slide's tests pass?

Yes: 313 of 313 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use open-slide?

Designers who need arbitrary page sizes or portrait social decks: the canvas is fixed at 1920 by 1080, and issue 404 requests configurable ratios.

What are the alternatives to open-slide?

Slidev, reveal.js, Marp. Our Open Slide run installed 897 packages, built in 39 seconds, and passed all 313 Vitest tests, making it the easiest of these agent-led tools to trust for a real trial.

Setup4/5Build and all 313 tests passed; install uses 1,185 MB
Docs4/5Scaffolding, runtime, config, export, and authoring are explained
Community4/57,170 stars with an August push and 92 issues and PRs
Maturity4/5Active 1.x releases and passing tests, with format limits

Who it’s for

Developers who prefer React and version control to dragging boxes in a presentation editor.
Claude Code or Codex users who want a supplied skill for drafting and revising decks.
Teams publishing interactive presentations as static websites.
Speakers who need presenter notes, a next-slide preview, a timer, and PDF or HTML export.

Who it’s NOT for

Designers who need arbitrary page sizes or portrait social decks: the canvas is fixed at 1920 by 1080, and issue 404 requests configurable ratios.
Multilingual presentation teams seeking shared layouts with translated content: issue 273 says deck content has no first-class language system.
Users who expect PowerPoint-style direct manipulation without touching code: slides are React components, and the inspector writes comments or source edits rather than replacing the code model.
Headless or background-tab workflows that cannot keep a deck visible: issue 399 reports that asset preloading can wait forever when animation frames are suspended.
Organizations that require a usable security disclosure policy: the repository's SECURITY.md still contains GitHub's placeholder version table and reporting instructions.

Setup reality

Our sandbox installed 897 pnpm packages in 63 seconds and used 1,185 MB on disk. The build succeeded in 39 seconds. Tests completed in 12 seconds with Vitest reporting 313 passed and 0 failed out of 313.

A new deck needs Node.js, pnpm, the @open-slide/cli scaffolder, and a coding agent if you want the supplied authoring workflow. No hosted credential is required for the core runtime. Brand-logo search and external media still depend on network access when you use them.

The 5.3 MB checkout was a 565-file monorepo with about 67,490 source lines, 2 CI workflows, and no Dockerfile. Every slide is fixed at 1920 by 1080. Static HTML can run on an ordinary host, while PDF export and the editor require local browser tooling.

React components replace the presentation file format

Open Slide treats every page as a React component rendered on a 1920 by 1080 canvas. A deck is an array of those page components plus metadata, rather than a proprietary presentation file or a Markdown document. The framework supplies scaling, navigation, hot reload, a slide browser, and fullscreen playback. That gives a coding agent familiar primitives and leaves the resulting deck readable to a frontend developer.

The tradeoff is equally clear. Layout lives in JSX and styles, so a designer who expects to drag every object on a canvas is working against the tool. The built-in inspector lets you click an element, leave a plain-language comment, and ask the agent to apply pending comments to source. It shortens the correction loop without pretending that visual edits no longer become code changes.

The scaffolder hides Vite while keeping slides editable

Running npx @open-slide/cli init my-slide creates a small workspace with a starter deck, configuration, and agent skills. Vite, React, and TypeScript configuration live inside @open-slide/core. Slides stay in slides/<id>/index.tsx, where developers can inspect or edit them directly. The supplied create-slide skill asks about topic, appearance, page count, text density, and motion before writing a deck.

The skills are preconfigured in both .claude/skills and .agents/skills, despite the CLI README describing them as Claude Code skills. That makes the repository useful with Claude Code and Codex, while the React output remains independent of either agent after generation. No model API key is part of the core setup; the coding agent uses whatever subscription and configuration the developer already has.

What happened when we ran it

Our sandbox installed 897 pnpm packages in 63 seconds and left 1,185 MB on disk. The build succeeded in 39 seconds. Vitest finished in 12 seconds with 313 passed and 0 failed out of 313. Among the 4 measured repositories in this assignment, Open Slide was the only one with a fully passing test step and an available build target.

The source checkout held 565 files, about 67,490 lines of source, and 5.3 MB before installation. Our scan found 2 CI workflow files, no Dockerfile, and no tests directory at the root. The passing command matters more than that directory signal because Vitest discovered and ran the project's tests successfully. These results describe commit ba5af02 in a fresh 3-CPU, 8 GB Debian container.

We did not generate a deck with a model, inspect visual quality, present on a projector, or compare PDF fidelity. The lab result establishes that dependencies installed, the monorepo built, and all 313 discovered tests passed. It does not establish that an agent will write a persuasive narrative or respect a brand system from one prompt. Those remain editorial and visual checks.

Static HTML is the simplest delivery path

The framework can export a deck as a static site, which fits Vercel, Cloudflare Pages, Netlify, Zeabur, or a plain static host. Presenter mode includes current and next slide views, speaker notes, and a timer. A self-contained HTML export works without keeping the development server online, while PDF provides a conventional file for distribution or print.

Static output is a good match for React slides because motion, links, and interactive components can survive in the browser version. PDF necessarily flattens those behaviors. Open Slide also manages per-deck images, videos, and fonts, and searches the svgl catalog for brand logos. Teams should still download and pin important assets rather than assume a remote catalog will remain available during a presentation build.

The 1920 by 1080 canvas excludes portrait decks

Every slide uses a fixed 16:9 canvas. That consistency simplifies scaling and gives agents one coordinate system, but it rules out portrait carousels, square social graphics, and traditional 4:3 decks without custom work. Open issue 404 identifies the dimensions in the runtime and exporters and proposes workspace-level presets. Because the request remains open, it is evidence of a current limitation rather than a feature promise.

Multilingual content has a similar boundary. The runtime interface can be localized, but issue 273 says slide text itself has no shared translation structure. Authors must duplicate decks or build their own dictionaries and language state. A bilingual product launch deck can still be made in React, though maintaining synchronized layouts becomes the author's responsibility.

Hidden tabs can stall the asset loading gate

Issue 399 reports that the preload layer advances page mounting through requestAnimationFrame. Browsers suspend those callbacks in hidden or occluded tabs, so the reporter saw a background deck remain on LOADING ASSETS until the tab received focus. The described case used a 17-page deck and affected hidden or headless capture rather than ordinary foreground presenting.

That distinction makes the bug easy to miss in manual testing and important in automated export. A CI job or remote capture process may keep the page hidden by design. Until the issue is resolved in the release you deploy, test PDF or screenshot automation under the same visibility conditions as production, not only in an open foreground browser.

Active 1.x releases coexist with unfinished policy docs

GitHub recorded 7,170 stars, 92 combined issues and pull requests, and a last push on August 26, 2026. The latest release endpoint returned @open-slide/core@1.19.1, published August 21 with sidebar fixes and viewer interaction changes. Current pushes and issue discussion indicate active maintenance, while the combined open count should not be read as 92 confirmed bugs.

The weak spot is SECURITY.md, which still tells maintainers to fill in the template and lists unrelated 5.1.x and 4.0.x support rows. Issue 422 calls out the same problem. That does not make the slide runtime insecure, but it leaves researchers without a documented private reporting path. For ordinary deck work, the passing 313-test run outweighs that governance mistake; organizations with a formal intake requirement may disagree.

Alternatives

ProjectWhat it isPick it when
SlidevA developer presentation tool built around Markdown, Vue components, and Vite.pick this instead when most slides should stay readable as Markdown and Vue is acceptable.
reveal.js gh↗A mature HTML presentation framework with plugins and nested slide navigation.pick this instead when you want a long-established browser deck format without agent-specific scaffolding.
MarpA Markdown presentation ecosystem with HTML, PDF, and PowerPoint output.pick this instead when text-first authoring and PowerPoint export matter more than arbitrary React layouts.

What people are saying

  1. [github-trending] 1weiho/open-slide

Sources

  1. Open Slide README
  2. Open Slide CLI documentation
  3. Open Slide core documentation
  4. Open Slide core 1.19.1 release
  5. Hidden-tab preload issue
  6. Configurable canvas request
  7. Security policy placeholder report

More web reviews

axios · super-productivity · Graphite · fastify · tabler · go-zero · the whole board →