@Rostislaved в комментариях подметил, что не хватает preview. Справедливо... Просто записывать экран, вырезать дубли и потом пережимать все в гифку не хотелось, от слова совсем.
Сделал по-другому: демо теперь собирается командой, скрипты лежат рядом с кодом.
make demo
Терминальную часть снимает VHS. Он печатает команду в настоящий bash и записывает то, что реально ответило. Никакого мокапа, на экране живой прогон с публичной ссылкой.
Страницу пишу через Chrome DevTools Protocol. На каждый кадр скриншот, курсор нарисован поверх, скролл и клики идут по таймлайну. Node дает глобальный WebSocket, так что ни Playwright, ни node_modules не нужны. Кадры собирает в гифку gifski, он же давит цвета и масштабирует.
Снимать демо руками было влом, а потратить пол дня на написание генератора почему-то норм... Автоматизация головного мозга...
P.S. телега режет качество гифки, вот оригинал.