Local Deck Loader¶
The app root at http://localhost:3000 now acts as a local deck launcher.
Why this exists¶
The old workflow assumed your deck JSON lived inside this repo or under public/. That is fine for examples, but awkward for real presentations that live elsewhere on disk.
The local deck loader fixes that by importing a folder from your machine directly in the browser.
Recommended workflow¶
- Run the app:
npm install
npm run dev
- Open
http://localhost:3000 - Click
Choose Deck Folder - Pick the folder that contains your deck JSON and any related assets
- If the folder contains multiple JSON files, choose the one you want to render
Relative asset behavior¶
When you import a folder, the app resolves relative paths against the selected JSON file:
image.srcslide.background
Example:
slides/demo.json
slides/images/cover.png
slides/assets/logo.svg
If demo.json references ./images/cover.png or ./assets/logo.svg, the imported deck will render those assets correctly without copying anything into this repo.
Limitations¶
- Companion presenter and audience windows still require a URL-backed deck
- The local loader currently rewrites
image.srcandslide.background; inline markdown image links are not remapped - Browsers need local file access support for folder selection. On localhost this works well in Chromium-based browsers, and there is a file-input fallback when directory picker APIs are unavailable
URL-backed alternative¶
If you want a shareable URL or presenter/audience companion windows, use the CLI:
npm run present -- ~/slides/demo.json