RécitRécit

Write once in Markdown, tell it everywhere.

Récit reads one Markdown or MDX source and tells it in several formats: a slide deck and a documentation page today, more formats on the way.

One source, many renderings

The source below is a story: plain Markdown, with a --- line between scenes. Next to it, Récit tells it as a deck. Click the deck, then use the arrow keys.

Source
stories/one-source.md
--- title: Lorem Ipsum description: "One source, a deck and a page." lang: en --- --- layout=cover # Lorem Ipsum ### Dolor sit amet, consectetur adipiscing elit --- layout=grid cols=2 # Two ideas :::card ### Lorem Sed do eiusmod tempor incididunt ut labore. ::: :::card ### Ipsum Ut enim ad minim veniam, quis nostrud. ::: --- # Three steps 1. Dolor sit amet in `story.md` 2. Consectetur adipiscing elit 3. Sed do eiusmod tempor --- layout=center # Gratias! Duis aute irure dolor in reprehenderit.
Deck
Click the deck, then use ← → · 4 slides · 00:20Open fullscreen →

The same file also reads as a documentation page: each scene becomes a section, without a single line changed.

Every format

Each format is a way to tell the same source. The deck and the documentation page are available today, and the motion films already play in the browser; the others follow the roadmap, one phase at a time.

Getting started

Récit is not published on npm yet: packages arrive with the public alpha. Until then, run it from the repository (Node.js 22+ and pnpm).

TerminalBash
git clone https://github.com/vguerand/recit.git cd recit pnpm install pnpm build

Start an example deck with hot reload:

TerminalBash
pnpm --filter recit-example-deck-starter dev

Then write your own story with the recit command, built in packages/cli:

TerminalBash
alias recit="node $PWD/packages/cli/bin/recit.js" recit init slides.md --config # slides.md and recit.config.ts recit dev slides.md --open # live preview recit export slides.md # PDF, or --html for a single file

The documentation walks through each step.

Go further