slide.ng
On this page ▾

Contributing

slide.ng is MIT licensed and has three repositories: the tool itself, the official themes and these docs. Small changes with a test are the easiest to review.

slide.ng

git clone https://github.com/slide-ng/slide.ng.git
cd slide.ng
npm install

Node 22.22.3 or newer. The tests use Chromium through playwright-core. Set CHROME_PATH if it is not at the default location.

npm test             # unit tests: the generator, code and math handling, the click engine, shortcuts, transitions
npm run test:e2e     # builds the starter deck and the feature decks and checks them in a real browser
npm run test:dev     # starts the dev server: live updates, slide-ng-drag write-back, drawings, side editor
npm run test:export  # the command line: export, build, themes, create, the MCP server, offline

Run the suites one after the other. The unit tests and a build share src/slides/generated, so running them at the same time breaks both.

Three documents in the repository explain it: docs/ARCHITECTURE.md for how it works, docs/DECISIONS.md for why things are the way they are, and docs/PARITY.md for the comparison with Slidev row by row.

Themes

Each official theme is a package in the slide.ng-themes repository. A new theme needs a package folder with theme.json, layouts and CSS, a README that credits the original author, an example deck with a slide for every layout, and a test. Do not copy images or fonts that are not MIT or compatible, such as CC BY-NC-SA assets. Draw it in CSS or leave it out. See Writing a theme.

These docs

The docs are an NgMd site. Pages are markdown files under src/content/, and the sidebar is the nav list in src/ngmd.config.ts.

pnpm install
pnpm run build       # also checks every internal link and heading anchor
pnpm run dev

The repository's CONTRIBUTING.md has the writing guide: voice, how a page is structured, how code samples are checked, and how the live decks are rebuilt. The short version:

  • Say what the code does. No marketing words.
  • Every claim and every code sample is checked against the source.
  • Say plainly what is missing.

Reporting problems

Open an issue in the repository that has the problem. For a security problem, see Security.