Embed the widget

One script tag on any page that serves HTML: no login for your visitors, no extra build steps.

1. Add the snippet

Add the snippet before </body>. You can find your project ID in the project settings under Embed Code, where the ready-to-copy snippet lives, with variants for Next.js, WordPress, and Webflow.

<script
  src="https://feed-bapp.de/widget.js"
  data-project-id="<project-UUID>"
  async
></script>

Then add your domain to the project settings under Allowed Origins; otherwise the widget rejects submissions with 403 origin_not_allowed.

Turn off diagnostics

By default, the widget captures the most recent console messages, JavaScript errors, and failed network requests as technical context. One attribute on the script tag turns this off completely:

<script
  src="https://feed-bapp.de/widget.js"
  data-project-id="<project-UUID>"
  data-diagnostics="off"
  async
></script>

Off means console, error, and network data are never captured in the first place. Screenshot, element marker, and text still work. The buffers are never installed with data-diagnostics="off", so nothing is collected and filtered later; it is simply never captured.

Widget language (data-lang)

The widget resolves its language in three tiers, synchronously at boot, with no network call:

  • 1. Attribute. data-lang="de" or data-lang="en" on the script tag pins the language.
  • 2. Browser language. Without a valid attribute, the widget follows the visitor's browser language, only the language part before a hyphen counts (en-US becomes en).
  • 3. German. If that isn't de or en either, the widget stays with German.

An unknown or misspelled value (e.g. data-lang="fr") is silently skipped and falls through to the next tier. There is no error and no visible effect.

The feedbapp-cli and its MCP integration are unaffected and stay in English. That's a separate repository that doesn't read this attribute.