nextdemo
v1.3.1
Published
Screen recording & editing tool for creating polished demo videos
Maintainers
Readme
NextDemo
Screen recording tool for polished demo videos of Electron apps. Write a Playwright script, get a production-ready MP4 with smooth camera work, cursor effects, keyboard overlays, and animated backgrounds.
Install
npm install nextdemo playwright
nextdemo activate <license-key>ffmpeg must be on PATH. Linux in headless CI also needs xvfb (NextDemo will start it automatically when CI=true and DISPLAY is unset).
Quick start
// record.mjs
import { video, defineConfig, APP } from 'nextdemo';
defineConfig({
app: { args: ['main.js'] },
fps: 30,
});
video('walkthrough', {}, async ({ session, page }) => {
await page.waitForTimeout(1000);
await session.frame('.header', 'medium');
await page.click('#new-task-btn');
await page.waitForTimeout(1500);
await session.zoom(APP, 'wide');
});nextdemo record record.mjsProduces walkthrough.mp4 next to the script.
Recording third-party sites
When app.args is omitted, NextDemo launches a bundled default Electron main. It is pre-configured for recording real sites:
- Ephemeral session — each run uses a fresh in-memory partition, so cookies, localStorage, IndexedDB, and cache from a previous recording cannot leak in. Set
app.persistSession: trueto opt out. - SameSite cookie rewrite — response
Set-Cookieheaders are rewritten toSameSite=None; Secureso third-party cookies survive theabout:blank → real sitenavigation that would otherwise look cross-site to the browser. Setapp.cookies.rewriteSameSite: falseto opt out.
These defaults only apply to the bundled default main. If you launch your own Electron app via app.args: [mainJs], replicate both behaviors in your main.js when you navigate to third-party sites.
Docs
Full API reference, recording recipes, and config options: https://nextdemo.app.
License
Commercial. See EULA.md. Activation requires a license key — get one at https://nextdemo.app.
