Talks, custom presentation components, assets, and speaker notes for Legend Slides. The Slides application and presentation engine live in Legend Apps.
| Event | Talk | Deck |
|---|---|---|
| React Conf | React Native is the best way to build desktop apps | Open deck |
| RNConnection | React Native is the best way to build desktop apps | Open deck |
Other versions and demos: original desktop talk and effects gallery.
Each talk has a folder at the repository root. Related conference versions stay together in react-native-desktop/, sharing components, assets, and tests. Add an entry above for each event presentation.
Keep each deck's components and assets together under its directory. The compiler rejects local imports that escape that directory. Share components across versions of a talk within its folder; introduce cross-talk sharing only when needed.
Open an .mdx file in Legend Slides. With a configured Legend Apps development
checkout, run from that checkout:
bun run slides run macos -- /absolute/path/to/legend-talks/react-native-desktop/reactcon.mdxThe application supplies React Native, presentation APIs, and native dependencies. Playing a deck does not require installing dependencies in this repository.
The desktop talks use optional source packs via slides:<family>/<Entry>.
Development checkouts resolve them from the sibling Legend Apps repository.
For an installed app, place the selected pack folders under
~/Library/Application Support/Legend Slides/effects/, or configure
LEGEND_SLIDES_EFFECT_PACKS. Keep them available offline before presenting.
Downloading and installation UI are future work. See the
effect extraction audit for the boundary.
Install Legend Apps dependencies using that repository's instructions. Put the
checkouts beside each other, or set LEGEND_APPS_PATH to the Legend Apps checkout:
export LEGEND_APPS_PATH=/absolute/path/to/legend-apps
bun run setup
bun run validate
bun run test
bun run typecheckValidation compiles every MDX file, including archived versions and diagnostic
decks. To compile one file, pass its path to bun run validate.
Tests run in separate processes because Bun caches native module mocks.
Typechecking covers talk components; runtime compilation and native rehearsal
remain separate checks.
Setup creates ignored links to the host checkout and its installed dependencies.
Talk tests use test-support/legend-apps for the host's mocks and engine internals.
Run setup again when changing host checkouts; it refuses to overwrite real files.
The initial history contains the commits affecting apps/slides/decks/ in Legend
Apps, with that prefix renamed to talks/. Unrelated application files were
excluded. Commit hashes change during extraction; authors and commit messages are
preserved. The migration also preserves the local diagnostic deck present at the
time of extraction.
Existing per-talk rehearsal notes describe earlier checks. They are historical evidence, not a guarantee that every later engine version behaves identically.