video showcase on artlu.ai
built a new section for shipped spoolcast videos. each card opens a "how it was made" page with the scene prompts, style library, narration beats, and audit flags side-by-side. the goal: make the videos themselves a learning artifact, not just something you watch.
ui-first with hand-written mock data for three videos, then a sync script to replace it — reads spoolcast-content/sessions/<id>/ and writes a per-video bundle.json + webp thumbnails into public/videos/. the bundle shape is deliberately database-shaped (no filesystem paths, just urls) so a future spoolcast db can emit the same contract without changing the frontend. one manifest entry + one command + a push ships the next video.
biggest friction: the committed scene images ballooned to 130mb across three videos. ffmpeg in brew's current build doesn't include libwebp — switched to the standalone cwebp tool at 640px q72. 130mb → 2.1mb, about 1mb per video going forward. also had to handle chunks that aren't generated scenes — reuse chunks inherit the parent's image, meme chunks come from external-assets/, broll chunks are mp4 and get a "broll (video clip)" label in place of a thumbnail.