glitterball

Glitterball on your prototype: record walkthroughs over the live app and share them. for React, Next.js and Remix, a Vue component for Vue and Nuxt, inject() everywhere else.
306
Install
npm install glitterball
Latest Version:0.4.0
Vue:3
License:MIT
Last Updated:Oct 15, 2026
Links: npm
Maintainer: glitterball

glitterball

Record walkthroughs over your live prototype and share them. Install it with your package manager and add it once, where every page renders:

Setup Add
React, Next.js, Remix, React Router import { Glitterball } from 'glitterball/react' and <Glitterball /> in the root layout or App
Vue, Nuxt import { Glitterball } from 'glitterball/vue' and <Glitterball /> in App.vue or app.vue
Svelte, SvelteKit, Astro, anything else import { inject } from 'glitterball' and inject() in code that runs on every page
No bundler <script src="https://www.glitterball.dev/api/tag.js" async></script> in <head>

It renders nothing itself. In the browser it adds Glitterball's script, which shows a small bar in the page's corner to record and play walkthroughs. Nothing is recorded until someone presses Record on that bar and allows the microphone or camera in the browser. Recordings go to the Glitterball workspace of whoever signs in there.

There's nothing to configure. The first time the page runs, Glitterball makes a key for the site, and the first person to press Record signs in and adds the prototype to their workspace. To set the key in the code instead, pass token="tt_…": npx glitterball init makes one and adds it for you.

Starting walkthroughs from a clean prototype

A walkthrough plays from where the presenter started. When it starts, Glitterball sets the prototype's localStorage and sessionStorage aside and plays on a fresh copy, then puts them back when the viewer closes it. If the app keeps state anywhere else that outlives a reload (IndexedDB, a backend, seeded demo data), pass onReset, and Glitterball runs it instead:

<Glitterball token="tt_…" onReset={() => store.reset()} />

It may return a promise. Glitterball waits for it for up to 5 seconds.

Related Packages

@malaika1985/design-mode

Click a UI element in your dev server, leave a comment, let your coding agent im...

0 0
nitfixer

Tags React, Vue and Svelte components with stable ids and emits a source manifes...

470
web-haptics

Haptic feedback for the mobile web.

10,740,340 2,815
snagset

Click-to-comment review for a live website. One script tag, or one import. React...

4,053 0
@bale-tools/mutate-version

react and vue configuration files.

2,203

Version History

Version Released Vue License
0.4.0 >=3 MIT
0.3.0 >=3 MIT
Pre-releases (1)
Version Released License
0.0.0-stage