Download the PHP package edulazaro/wirebug without Composer
On this page you can find all versions of the php package edulazaro/wirebug. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package wirebug
Wirebug
Drop-in floating bug/feedback report widget for Laravel apps. A small floating button opens a modal where the user picks a type (bug, suggestion, other) and writes a message. Reports are stored in your database with automatic technical context (URL, user agent, viewport, locale, authenticated user).
Part of the wire* family: themeable through the shared data-wire-theme attribute, visually coherent with wiremodal, wiretoast and wirecookies.
Requirements
- PHP 8.2+
- Laravel 11+
- Alpine.js on the page
Installation
Import the CSS after wiremodal in your bundle:
Usage
Drop the component in any layout (typically the logged-in app shell):
Pick the theme once on <html> (shared with the rest of the family):
What the user writes
- Type: bug / suggestion / other (configurable via
config('wirebug.types')). - Message: free text, required, max 5000 chars.
- Steps to reproduce: optional free text.
- Screenshot: optional image attachment (jpg/png/gif/webp, 5MB max by default).
- Screen recording: optional, via the browser's native
getDisplayMedia+MediaRecorder(nothing records until the user clicks; zero background cost). While recording, the modal closes and a small in-app overlay shows a timer with Stop/Discard; on stop the modal reopens with the video attached (WebM/MP4, 90s / 50MB max by default, bitrate capped at 2 Mbps viarecording.bitrate,config('wirebug.recording')). The button only appears on supporting browsers (desktop). The recording lives in the page's JS context: it survives SPA-style navigation (wire:navigate), a hard reload kills it. - Email: optional, only shown to guests (authenticated users are already identified). Disable with
'ask_guest_email' => false.
What is captured automatically
URL, user agent, viewport, locale, the authenticated reporter (polymorphic reporter_type/reporter_id, morph-map aware) and referer. Disable with 'capture_context' => false.
Where everything is stored
Reports live in the wirebug_reports table of your app's database. The screenshot is stored through Laravel's Storage on the disk set in config('wirebug.uploads.disk') — any disk from your config/filesystems.php works the same (local server filesystem, s3, an S3-compatible R2 disk...). The report row keeps only the file path.
Reading the reports
Component props
Every visible string can be overridden by prop or via the published translations. Two trigger styles:
trigger="button"(default): floating square button.positionacceptsleft(default) orright(always bottom corner).trigger="tab": small labeled tab stuck flush to the screen edge.positionacceptsbottom-right(default),bottom-left,top-rightortop-left. On viewports under 640px the label hides and only the icon shows. Label text viatab-labelprop or thetab_labeltranslation.
Config
Route path/middleware (add auth if the widget only lives behind login), button position, report types, guest email, context capture and table name.
Publishing assets
Events
wirebug-sentis dispatched onwindowafter a successful submit, in case the host app wants to toast or track it.
Sponsors
Wirebug is supported by the following sponsors. Thank you for keeping it growing:
Author
Created by Edu Lazaro
License
Wirebug is open-sourced software licensed under the MIT license.
All versions of wirebug with dependencies
edulazaro/wiremodal Version ^1.1
illuminate/support Version ^11.0 || ^12.0