1.1 Building a slideshow with plinth
A lecture-ready slide deck, built from EDN and Markdown in git, published as a static site—every slide a URL you can share.
A lecture-ready slide deck, built from EDN and Markdown in git, published as a static site—every slide a URL you can share.
A deck is sections of slides, declared in portfolio.edn:
{:mode :deck
:deck {:sections
[{:title "Basics"
:items ["welcome" "why-plinth"]}
{:title "Authoring"
:items ["deck-config" "media-slides"]}]}}
Give any slide a full-bleed background—the first image element becomes the backdrop. This slide's backdrop is a real photograph, dimmed by :background {:scrim true} so the text stays legible; :print true also includes it when printing. Gradients and solid colours work too.

The first image on a slide becomes the backdrop; every further image flows inline, contained, with responsive derivatives generated at build. Masters live in the portfolio's masters/ directory—outside git for real portfolios, synced to object storage such as R2—and pages reference content-addressed derivatives, never the originals.

This slide is set in B612—the aviation cockpit typeface commissioned by Airbus, designed for legibility on screens. Declare bundled fonts in portfolio.edn under :fonts (family, files, licence) and give any slide :font {:family "B612"}.
And this slide is set in IBM Plex Sans, IBM's corporate typeface. Both fonts are bundled under the SIL Open Font License with their licences recorded—corporate branding without a single third-party request.
Slides can carry audio—narration, a music cue, an interview fragment—alongside the text. This slide also shows a solid colour backdrop: :background {:color "#25303c"}.
Add :notes-md to any slide. Notes stay hidden on screen until you press N, and they print with the handout — your audience never sees them projected.
:fragments true on a slideEvery slide is a plain URL—link straight to any point in the deck. Print a slide and you get a handout page: the notes are included, the backdrop is not. To print the WHOLE deck in one action, open the handout page—linked from the overview — and print once.
One bb build renders the deck to a static folder—host it anywhere. No trackers, no external requests, nothing for your audience to install.
Build yours: one portfolio.edn, your Markdown, bb build.