Svelte

Feedback widget
for Svelte.

Initialize once in your root onMount. Works with Svelte 4 and Svelte 5 runes.

The vanilla SDK fits Svelte's no-virtual-DOM model perfectly. Boot it from your root component's onMount and the widget lives outside Svelte's reactivity entirely.

~12kb
gzipped
0
config
MIT
license
Install2 steps
> ~ install· bash
npm install @usero/sdk
> src/App.svelte· svelte
<script lang='ts'>
  import { onMount } from 'svelte'
  import { initUseroFeedbackWidget } from '@usero/sdk'

  onMount(() => {
    const widget = initUseroFeedbackWidget({ clientId: 'YOUR_CLIENT_ID' })
    return () => widget.destroy()
  })
</script>

<slot />

Replace YOUR_CLIENT_ID with the id from your Usero dashboard.

Built for Svelte

Why teams shipping with Svelte pick Usero.

No Svelte adapter required

The vanilla SDK is plain JavaScript. Svelte 4, Svelte 5 with runes, and SvelteKit all consume the same package.

Lives outside the Svelte tree

The widget renders into its own DOM root, so component updates and store changes never trigger a widget re-render.

Tiny by Svelte standards

~12kb gzipped is small compared to typical Svelte page weights, and it is shared across every route.

HMR clean

Returning a teardown from onMount means hot reloads do not leak triggers into the DOM.

Productboard expects a full embed page. Usero is a 12kb script that sits on top of your existing UI.
vs Productboard portal

FAQ

Quick answers, Svelte edition.

Does this work with Svelte 5 runes?

Yes. The widget does not interact with Svelte reactivity at all, so $state and runes are unaffected.

Is there a Svelte action or component?

There is no Svelte-specific wrapper because the vanilla SDK is already idiomatic. One import, one function call.

What about SSR in SvelteKit?

Use the SvelteKit guide. For pure Svelte (vite-svelte) there is no SSR concern.

Can I theme the widget to match my Svelte UI?

Yes. Pass a theme object with your brand colors when initializing.

Ship a feedback widget in your Svelte app today.

Free tier. No credit card. Two-minute install. Cancel by deleting two lines of code.

Get started free