Documentación
Instalación
Agrega el widget con una etiqueta script o con el paquete npm, identifica a tus usuarios y verifica que funciona.
Necesitas dos datos de tu proyecto, que encuentras en el dashboard en Proyectos e instalación:
- Project key (
pk_…): es pública y puede ir en el código del navegador. - Endpoint: la URL de la API donde se envían los reportes.
El dashboard muestra el snippet con ambos valores ya puestos. En esta guía usamos pk_tu_key y https://api.wutbug.dev como ejemplo.
Opción A: etiqueta script
Pega esto en el <head> de tu plantilla base. No necesitas build ni bundler.
<script type="module" src="https://cdn.wutbug.dev/v0/wutbug.js"
data-project-key="pk_tu_key"
data-endpoint="https://api.wutbug.dev"></script>Con data-project-key el SDK se inicializa solo. Puedes configurar lo básico con atributos:
| Atributo | Equivale a | Valores |
|---|---|---|
data-project-key | projectKey | Obligatorio. Tu key pk_…. |
data-endpoint | endpoint | URL de la API. |
data-release | release | Versión de tu app, por ejemplo el SHA del commit. |
data-locale | locale | en o es. Sin el atributo: idioma del navegador. |
data-position | position | bottom-right, bottom-left, top-right o top-left. |
data-accent | theme.accent | Color en hex, por ejemplo #ea580c. |
data-launcher | launcher | false oculta el botón flotante. |
data-launcher-label | launcherLabel | Texto del botón. |
data-debug | debug | Presente = registra el funcionamiento interno en la consola. |
Para opciones que no tienen atributo (privacidad, beforeSend, ignoreUrls…), quita data-project-key y llama a wutbug.init({...}) tú mismo.
Llamadas antes de que cargue el script
El script es un módulo y carga de forma diferida. Si quieres llamar a wutbug.setUser() o wutbug.init() antes de que termine de cargar, agrega este fragmento antes del script. Las llamadas quedan en cola y se ejecutan al cargar:
<script>
window.wutbug = window.wutbug || { q: [] };
['init', 'setUser', 'setMetadata', 'open', 'close'].forEach(function (m) {
window.wutbug[m] = window.wutbug[m] || function () { window.wutbug.q.push([m, arguments]); };
});
</script>
<script type="module" src="https://cdn.wutbug.dev/v0/wutbug.js"></script>
<script>
wutbug.init({ projectKey: 'pk_tu_key', endpoint: 'https://api.wutbug.dev', locale: 'es' });
</script>Si en la cola hay un init, el SDK no se autoinicializa con los atributos data-*.
Opción B: paquete npm
npm install @wutbug/sdk
# o: pnpm add @wutbug/sdk · yarn add @wutbug/sdk · bun add @wutbug/sdkimport wutbug from '@wutbug/sdk';
wutbug.init({
projectKey: 'pk_tu_key',
endpoint: 'https://api.wutbug.dev',
release: '2026.11.3', // opcional, necesario para source maps
});init() debe ejecutarse solo en el navegador y una vez. Si tu framework renderiza en el servidor (Next.js, Nuxt, SvelteKit…), llámalo desde código que solo corre en el cliente. Las guías por framework muestran dónde.
Identifica al usuario
Llama a setUser donde tu app ya conoce la sesión, y pásale null al cerrar sesión. Así sabes quién reportó y puedes avisarle cuando se resuelva.
wutbug.setUser({ id: 'u_42', email: 'ana@acme.com', name: 'Ana' });
// al cerrar sesión
wutbug.setUser(null);Opcionalmente, agrega contexto útil para depurar:
wutbug.setMetadata({ plan: 'pro', tenant: 'acme', featureFlags: ['nuevo-checkout'] });Restringe los orígenes
En el dashboard, en la configuración del proyecto, lista los dominios desde los que se aceptan reportes (por ejemplo https://app.acme.com). La API rechaza reportes de otros orígenes. La project key es pública, así que esto evita que alguien la use desde otro sitio.
Verifica la instalación
- Abre tu app: debe aparecer el botón Reportar un problema abajo a la derecha, y la consola no debe mostrar errores de
[wutbug]. - Envía un reporte que diga "Prueba de instalación".
- Ábrelo en el dashboard. Si no llega, activa
debug: true(odata-debug) y revisa la consola.