Frontend — add the widget
This is Axis 2: the talking widget your end users see on your website. Every option here is a thin wrapper over the same deployed VoiceBot browser bundle — you hand it your public key, and the bundle self-mounts, grounded in whatever your backend has ingested. Pick the framework you ship; it composes with any backend.
The widget exchanges your pk_ for an origin-locked session token and connects directly to VoiceBot.
The only data it needs is the catalog your backend axis pushes.
How every wrapper works
The shape is the same regardless of framework:
- Get a publishable key
pk_…and register the exact origins allowed to use it. - Render once — drop one component (or one script tag) near your app root with the
pk_. - The deployed bundle self-mints its session and mounts the widget.
The key model and the origin allow-list rules are the same everywhere — see Tenant isolation. The per-framework pages below are the shortest path to a mounted widget.
React
Available now. @monoverse/voicebot-react drops the widget with one component. Start at the
React overview.
Vue
Available now. @monoverse/voicebot-vue is a Vue 3 wrapper with the same single-prop API (and a
useVoiceBot composable), SSR-safe for Nuxt. Start at the Vue overview.
Next.js
Available now. @monoverse/voicebot-next is a Next-aware wrapper that loads via next/script
(afterInteractive, SSR-safe) — render it once in your App Router root layout. Start at the
Next.js overview. The React wrapper also works in
Next.js inside a client boundary if you prefer a useEffect injector.
Vanilla JS
Available now. A no-framework snippet: one <script> plus your pk_, no package at all. The
deployed widget bundle is plain JS, so a script-tag embed self-bootstraps. Start at the
Vanilla overview.
Next steps
- React (Browser Widget) — the React wrapper.
- Vue (Browser Widget) — the Vue 3 / Nuxt wrapper.
- Next.js (Browser Widget) — the App Router wrapper.
- Vanilla JS (Browser Widget) — the framework-free script tag.
- Tenant isolation — the
pk_and origin allow-list model. - Backend — get your catalog in — feed the data the widget talks about.