One folder per deck. Each folder is self-contained and maps directly to a CDN path.
deck/
<deck-name>/
index.html # the deck — shared as https://<cdn>/<deck-name>/
v1.mp4 # video (H.264 + AAC) — plays in Chrome/Edge + Safari [gitignored]
v1.mov # original source, kept as a <source> fallback [gitignored]
v1-poster.jpg # poster frame / og:image [tracked]
Assets are referenced by relative path, so a deck works the same locally, in preview, and on the CDN with no edits.
Create a new sibling folder with its own index.html and assets. A folder may
also hold supporting docs (e.g. research.md):
deck/
phoenix-code/index.html # deck + v1.mp4 / v1.mov / v1-poster.jpg
gosi/index.html # deck
gosi/research.md # supporting doc for that deck
acme-pitch/index.html # next deck, same pattern
Upload the whole <deck-name>/ folder. Share the link as …/<deck-name>/
(clean URL, no filename). Keep v1.mp4, v1.mov, and v1-poster.jpg next to
index.html in the same folder.
.mp4 (H.264 + AAC) so it plays in Chrome/Edge as well as Safari.
Lossless re-mux from a .mov (no quality loss):
ffmpeg -i in.mov -c copy -movflags +faststart v1.mp4ffmpeg -i in.mov -ss 2 -vframes 1 v1-poster.jpg