ogunsakin01/laravel-video-demos
A Laravel package for integrating video demos into your application. It provides a straightforward way to organize and display demo videos, making it easy to showcase product features, tutorials, or workflows with minimal setup.
limits.max_repairs) rather than shipped as a broken video. That makes "generate the demo video in CI / on release" a defensible workflow instead of a one-off marketing task.VIDEO_DEMO_FRONTEND_URL means Vue/React/SPA products are now in scope: recording happens on the frontend's pages while auth and sample data still flow through Laravel. This unlocks demo videos for teams whose product surface is a SPA or a separate marketing/app origin — previously a hard blocker.VIDEO_DEMO_SIGN_IN covers session (incl. Sanctum cookie SPA), sanctum-token, jwt, and custom via VideoDemo::signInUsing(...) for Passport/SSO. Product decision: is "demo-able with realistic sign-in" a requirement for enterprise/SSO customers, and do we invest in the custom sign-in path to get there?VIDEO_DEMO_PAGE_LOOKS, default 3, ~$0.01 each), and failed rehearsals consume the repair budget. This gives a predictable cost envelope per video — a concrete input for pricing an internal demo service or gating it to specific tiers/releases.Good fit when:
VIDEO_DEMO_FRONTEND_URL.VideoDemo::signInUsing(...). Signed-in links only exist while the studio is enabled, so this is safe to keep out of production paths.limits.max_repairs) and are comfortable with the ~$0.01-per-look page inspection budget, or can disable it (VIDEO_DEMO_PAGE_LOOKS=0).Look elsewhere when:
VIDEO_DEMO_PAGE_LOOKS=0 and should verify the degraded path still plans well.To executives: We can turn "make a demo video for the release" from a multi-day marketing/design task into a config-and-run step against our own app on realistic sample data. The release hardens the two things that made this risky before: it rehearses the whole plan before recording (so we don't publish broken videos) and it now supports our SPA/separate-frontend architecture and our real sign-in, including Sanctum, JWT, and SSO via a custom hook. Costs are bounded and small — rehearsal is free, page inspection is capped at three looks per video at roughly a cent each, and failures consume a fixed repair budget. Net: faster time-to-video per release, no vendor seat licenses for basic walkthroughs, and demos that track the product instead of going stale.
To engineering: This is a low-ceremony integration. Without VIDEO_DEMO_FRONTEND_URL nothing changes in behavior. The recorder uses signed links that only exist while the studio is enabled, hides secrets when it inspects a page, injects a signed header so frontend API calls hit the video's sample database with no CORS changes, and mints short-lived tokens in the video's own database (Sanctum tokens expire after an hour and expired ones are cleaned up). Two behaviors to be aware of: a 4xx on a mutating request now fails that step and hands the plan back to the AI for repair — GETs, Precognition validation, broadcasting auth, and guest 401s are deliberately exempt — and VIDEO_DEMO_REHEARSE=false disables the rehearsal pass if you need the old, faster path. The v0.18.0 fix also means role+label targeting (e.g. a "Location" text box) now resolves to the correct element instead of the first of that role, which should remove a class of flaky typing steps.
How can I help you explore Laravel packages today?