A Claude Code / Agent skill that turns any React or Next.js codebase into an interactive, theme-matched βtry it before you sign upβ demo β a guided product tour that lives behind a button on your landing page, runs on mock data, and shows visitors exactly what your app feels like after signup, without exposing a single line of your real backend.
Think of the coach-marks you see the first time you open a polished mobile app β βtap here,β then βnow try thisβ β but on your marketing site, before signup, generated automatically from your own UI.
Static screenshots tell. A video shows. An interactive preview lets the visitor do the thing β which is why tools like Arcade, Storylane and Navattic convert so well. This skill gives you the same experience, auto-generated from your codebase, embedded natively, and matched to your exact theme.
| π¨ Looks identical to your app | Extracts your real design tokens (Tailwind config, CSS vars, CSS-in-JS, or a UI kit) so the demo is pixel-close to production. |
| πͺ Guided, hands-on tour | A spotlight highlights the next step and waits for the visitor to actually click/type it, then rewards them with a toast. |
| π§ Soft rails, not cages | Click off-target and the spotlight gently re-pulses with a hint β guidance without frustration. |
| π Leaks nothing | Reconstructs presentational replicas on in-memory mock data. No fetch, no API clients, no auth, no secrets. A bundled auditor enforces it. |
| π§© Reusable engine | Ships a dependency-free React tour engine (just react) β drop it in any project. |
| βοΈ Editable by data | The whole journey is a declarative flow config β change copy, steps, or mock data without touching engine code. |
| π± Responsive | Mirrors your real breakpoints; works on desktop and mobile. |
| π― Converts | Lands the visitor on a theme-matched βcreate your account to do this for realβ CTA at the payoff moment. |
Pick whichever you like β all install the same skill.
claude plugin marketplace add NI3singh/interactive-preview-skill
claude plugin install interactive-preview@preview-forgeβ¦or interactively: /plugin marketplace add NI3singh/interactive-preview-skill then /plugin install interactive-preview@preview-forge.
npx interactive-preview-skill # installs to ~/.claude/skills/
npx interactive-preview-skill --project # installs to ./.claude/skills/ (this project only)- Grab
interactive-preview-skill.zipfrom the latest release. - Unzip it and move the
interactive-preview/folder into your skills directory (~/.claude/skills/or<project>/.claude/skills/).
git clone https://github.com/NI3singh/interactive-preview-skill
cp -r interactive-preview-skill/skills/interactive-preview ~/.claude/skills/Then, in any React/Next.js project, just ask Claude β you donβt need to say βpreviewβ:
βAdd an interactive demo to my landing page so visitors can try the app before signing up.β
βLet people mess around with my feed and search without an account.β
βPut a βsee it in actionβ walkthrough on the homepage that shows the coolest thing my app does.β
The skill detects your stack, proposes a hero flow for your approval, and generates everything.
Point the skill at a repo and it runs a 7-phase workflow:
- Orient β detect framework, router, styling system, TS/JS, and your landing + post-signup screens (
scripts/detect_stack.mjs). - Extract tokens β pull your real colors / fonts / radii / shadows into one
theme.tokensfile. - Propose a flow β infer the candidate user journeys, rank them, and propose the single most compelling βahaβ for you to approve.
- Reconstruct β rebuild only the screens that flow touches as isolated, presentational replicas on mock data.
- Wire the tour β author a declarative flow config; the bundled engine handles spotlight, soft-rails, toasts, and the CTA.
- Deliver β add a
/previewroute and inject a reversible, theme-matched launch button on your landing page. - Self-check β run the leak auditor (
scripts/audit_preview.mjs) and verify the flow end-to-end.
preview/
βββ theme.tokens.ts # your extracted design tokens β single source of truth
βββ route.tsx # assembles screens + theme + flow β <Tour/>
βββ engine/ # the bundled, dependency-free tour engine
βββ screens/ # presentational replica screens (mock data only)
βββ mock/ # mock entities + in-memory store (no network)
βββ flows/ # the declarative flow config (edit copy/steps here)
Plus a single, comment-bounded launch button on your landing page (the only edit outside preview/).
The preview is a separate, isolated replica β never your real app in βdemo mode.β It borrows
only your design tokens, never your logic. The bundled audit_preview.mjs checks the generated code
for real call sites and data-layer imports (while correctly ignoring comments/READMEs that merely
mention what the demo avoids) and fails if anything leaks.
In a controlled benchmark against a Next.js + Tailwind fixture app, the skill produced a complete,
guardrail-clean, isolated preview in 3/3 scenarios (100% of assertions, across two iterations) β
versus ad-hoc, non-isolated demos without it. The scenarios and assertions live in
skills/interactive-preview/evals/evals.json.
- π₯ Remotion trailer export β auto-generate a shareable video from the same flow config
- π§ Multi-flow menu β more than one hero journey
- π Drop-off analytics hooks
- π§± Vue / Svelte / plain-HTML support
One version tag ships all install methods automatically:
# bump "version" in package.json first, then:
git tag v1.0.0
git push origin v1.0.0release.ymlβ zips the skill intointeractive-preview-skill.zipand creates the GitHub Release (powers the download install).npm-publish.ymlβ publishes the package to npm (powers the npx install).- One-time setup: add a repo secret
NPM_TOKEN(npm β Access Tokens β Automation). - Bump
versioninpackage.jsonbefore each tag β npm refuses to re-publish the same version. - If the name
interactive-preview-skillis taken on npm, scope it (e.g.@ni3singh/interactive-preview-skill) inpackage.json; users then runnpx @ni3singh/interactive-preview-skill.
- One-time setup: add a repo secret
The marketplace install needs no release β it works the moment the manifests are pushed to main.
interactive-preview-skill/
βββ .claude-plugin/
β βββ marketplace.json # enables `claude plugin marketplace add β¦`
β βββ plugin.json # plugin manifest
βββ skills/
β βββ interactive-preview/ # π the skill itself
β βββ SKILL.md # the definition Claude loads (workflow + guardrails)
β βββ references/ # deep-dive docs Claude reads per phase
β βββ assets/
β β βββ engine/ # the reusable React tour engine
β β βββ templates/ # starter flow + token templates
β βββ scripts/ # detect_stack.mjs, audit_preview.mjs
β βββ evals/ # test suite (scenarios + assertions)
βββ bin/
β βββ install.mjs # the npx installer
βββ package.json # npm package (powers `npx interactive-preview-skill`)
βββ .github/workflows/
β βββ release.yml # zip β GitHub Release on a version tag
β βββ npm-publish.yml # publish β npm on a version tag (needs NPM_TOKEN)
βββ README.md
βββ LICENSE
MIT β do whatever you like, just keep the notice.
π€ Built and benchmarked with Claude Code.