bedard/debugbar
Bedard Debugbar adds an in-browser developer toolbar to Laravel apps, letting you inspect queries, routes, logs, timings, and runtime details to diagnose issues and optimize performance during development.
Minimal steps:
barryvdh/laravel-debugbar and plan on a fork.composer require bedard/debugbar (or drop it into plugins/bedard/debugbar if you need to patch it locally).APP_DEBUG=true in .env, and confirm the plugin's own enabled flag is on in its config/config.php.Where to look first:
Plugin.php — service provider registration, middleware wiring, and any October-specific collectors.config/config.php — enable/disable switch, collector list, storage options.First use case: open a CMS page you suspect is slow, check the Queries tab for N+1s coming out of component/partial loops, then the Timeline tab to see which Twig/component render is dominant. That's the 90% daily use: "why is this page slow and which queries are firing."
APP_DEBUG plus the plugin's enabled config is your two-switch safety; disable it in staging so it can't leak into anything shared.DataCollectorInterface (or extend the base DataCollector) in your own plugin, then register it via the debugbar container binding or facade from your Plugin::register(). This is the main extension point for showing domain-specific data (e.g., a custom cache, queue, or search payload) next to the standard panels.Debugbar::startMeasure('key', 'Label') / Debugbar::stopMeasure('key') around expensive blocks; Debugbar::addMessage($data, 'label'), Debugbar::info(), Debugbar::error() for ad-hoc inspection. Wrap component onRender() or a specific handler to attribute render time to a component rather than to "the page."dump() / dd() from templates and components flow into the messages panel; this is the least intrusive way to inspect context without breaking the response.Debugbar::enable() in the handler, then inspect the request via the debugbar endpoint or the ajax panel.Debugbar::disable() on a hot route or inside a specific component keeps the bar from adding overhead and noise where you don't need it.storage/debugbar. Use the bar's "Open" picker to compare a slow and a fast request, and clear that folder periodically; it grows quietly.barryvdh/laravel-debugbar almost certainly predates current Laravel. On newer October versions, expect conflicts — either pin the underlying debugbar to what the plugin expects, or fork and bump the constraint. Do the compatibility spike before adopting it in a project.APP_DEBUG, the plugin's enabled setting, whether the middleware actually ran for that route, whether storage/debugbar is writable, and whether the response is HTML (not JSON, not a redirect, not a streamed/download response).Plugin.php rather than assuming it's global.Plugin.php and your own register().DataCollectors, custom widgets, overriding the plugin's views, and the debugbar facade for one-off logging. If the archive state blocks you, the fallback is barryvdh/laravel-debugbar plus a small middleware that renders and injects it — which is essentially what this plugin is doing, and a few dozen lines to own outright.How can I help you explore Laravel packages today?