Laravel

Feedback widget
for Laravel.

Drop one script into your Blade layout. Works with Blade, Livewire, Inertia.

Laravel renders HTML server-side through Blade, and the widget is a client script that rides along. Put it in your root Blade layout before the closing body tag and every view that extends the layout gets the widget.

~12kb
gzipped
0
config
MIT
license
Install1 step
> resources/views/layouts/app.blade.php· html
<body>
  @yield('content')

  <script src="https://unpkg.com/@usero/sdk"></script>
  <script>
    Usero.initUseroFeedbackWidget({
      clientId: "YOUR_CLIENT_ID",
      metadata: { userId: "{{ auth()->id() }}" }
    });
  </script>
</body>

Replace YOUR_CLIENT_ID with the id from your Usero dashboard.

Built for Laravel

Why teams shipping with Laravel pick Usero.

One Blade layout, every view

Views extend a root layout like layouts/app.blade.php. Adding the script there once puts the widget on every page that uses the layout.

Blade can pass the auth user

Interpolate auth()->id() or the user email into the metadata, so feedback arrives attributed to the logged-in Laravel user.

Works with Livewire and Inertia

Livewire keeps the page mounted, and the widget sits outside its DOM. With Inertia, place the init in the root Blade view so it survives client navigations.

No Vite asset step

The CDN script needs no Laravel Mix or Vite build entry. If you do bundle, you can npm install @usero/sdk and import it from resources/js instead.

Canny needs its own account plus a 200kb iframe. Usero is one 12kb script in your Blade layout, with the draft-PR pipeline behind it.
vs Canny script

FAQ

Quick answers, Laravel edition.

Which Blade file do I edit?

Your root layout, commonly resources/views/layouts/app.blade.php, before </body>. Views that @extends that layout then include the widget.

Can I attribute feedback to the logged-in user?

Yes. Interpolate Blade into the metadata, for example metadata: { userId: "{{ auth()->id() }}", email: "{{ auth()->user()?->email }}" }.

Does it work with Livewire or Inertia?

Yes. With Livewire the widget sits outside the component DOM. With Inertia, init from the root Blade view so the single instance survives Inertia navigations.

Should I bundle it through Vite instead?

Optional. npm install @usero/sdk and import initUseroFeedbackWidget from resources/js/app.js if you prefer bundling over the CDN tag.

Ship a feedback widget in your Laravel app today.

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

Get started free