Skip to content

feat(scripts): make-demo-gif.sh — produce optimized README hero GIF (Closes #7)#17

Merged
hacka0wi merged 1 commit into
mainfrom
feat/7-make-demo-gif
May 7, 2026
Merged

feat(scripts): make-demo-gif.sh — produce optimized README hero GIF (Closes #7)#17
hacka0wi merged 1 commit into
mainfrom
feat/7-make-demo-gif

Conversation

@hacka0wi

@hacka0wi hacka0wi commented May 7, 2026

Copy link
Copy Markdown
Member

Summary

Adds scripts/make-demo-gif.sh — turns a .mov screen recording into a README-ready optimized GIF.

Pipeline

  1. ffmpeg trim + scale + fps + drop audio → intermediate mp4
  2. gifski (perceptual quantizer, preferred) or ffmpeg palettegen+paletteuse (fallback) → final GIF

The two-stage approach means input codec/container doesn't matter — works for QuickTime .mov, OBS .mp4, ScreenStudio .mov, etc.

Defaults

Tuned for UI demos:

DURATION 15 s
WIDTH 900 px
FPS 15
TARGET_MAX_MB 10

All overridable as env vars. Script warns (doesn't fail) when output exceeds the soft limit and suggests three knobs to turn.

Usage

scripts/make-demo-gif.sh ~/Desktop/runloop-demo.mov
# → docs/screenshots/flow-editor.gif

# narrower for smaller size
WIDTH=720 scripts/make-demo-gif.sh ~/Desktop/runloop-demo.mov

Closes

Closes #7

Follow-up (separate PR, after first GIF is recorded)

Update README hero to <picture> block:

<picture>
  <source srcset="docs/screenshots/flow-editor.gif" type="image/gif">
  <img src="docs/screenshots/flow-editor.png" alt="...">
</picture>

Test plan

  • Bash syntax (bash -n) clean
  • Usage error path triggers on missing arg
  • Detects missing ffmpeg, prints install hint
  • CI green
  • Manual record + run produces GIF (next: record actual demo)

…loses #7)

Turn a screen recording (.mov from QuickTime/OBS) into a README-ready
optimized GIF. Two-stage pipeline so input format/codec doesn't matter:

  1. ffmpeg trim + scale + fps + drop audio → intermediate mp4
  2. gifski (preferred, perceptual quantizer) or ffmpeg palettegen+
     paletteuse fallback → final gif

Defaults tuned for UI demos:
  DURATION=15, WIDTH=900, FPS=15, TARGET_MAX_MB=10

All overridable via env vars. The script warns (doesn't fail) when the
output exceeds the soft limit and suggests three knobs to turn.

Usage:
  scripts/make-demo-gif.sh ~/Desktop/runloop-demo.mov
  # → docs/screenshots/flow-editor.gif
@hacka0wi hacka0wi merged commit 462fe9b into main May 7, 2026
8 checks passed
@hacka0wi hacka0wi deleted the feat/7-make-demo-gif branch May 7, 2026 17:58
hacka0wi added a commit that referenced this pull request May 8, 2026
#16 fixes a critical first-install bug: docker compose up against an
empty Postgres now actually boots instead of fatal-crashing the engine
on missing tables. #17 adds the README-hero GIF tooling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add scripts/make-demo-gif.sh for hero animation

1 participant