beyondcode/laravel-server-timing
Add Server-Timing headers to your Laravel responses so you can see exactly where time goes—middleware, database queries, and custom measurements—right in your browser's developer tools. A simple, fluent API lets you instrument any part of a request. No external services needed.
beyondcode/laravel-server-timing emits W3C-standard Server-Timing headers from a Laravel app, so engineers can attribute request latency — bootstrap, middleware, database, cache, view render, and custom checkpoints — directly in Chrome DevTools' Performance panel. That is a build-vs-buy decision that costs a composer require rather than a procurement cycle, and it buys real evidence while a Datadog/New Relic commitment stays deferred. Frame it as deferring the APM purchase, not cancelling it.Adopt when:
Look elsewhere when:
Server-Timing is per-request and browser-visible; it is not an observability platform, and substituting it for one will fail at the first on-call rotation.Adoption criteria before merging: middleware registered only outside production or behind an auth/flag gate; a small, named, low-cardinality milestone set agreed up front and capped to avoid header bloat; the package version constraint verified against current Laravel and PHP pins; and a named owner for the Laravel-major bump cadence. Two known failure modes to plan around — a missing or misordered middleware is a silent no-op with no error (absence reads as "no timing problem" rather than "instrumentation missing"), and enabling it in production without a gate is an information-disclosure risk.
For executives: This is a free, MIT-licensed diagnostic utility that shows our engineers, on any page load, how long each part of a request took — database, cache, template rendering, any custom step — inside the browser they already use. No license fee, no vendor contract, no data leaving our systems, no user-facing change. It is a fast, low-risk way to make measurable progress on performance while we deliberately defer a paid monitoring vendor. The 1.7.0 release is purely a compatibility update for the next major Laravel version: no new features, no breaking changes. That is exactly the signal we want from a small utility — actively maintained and making no demands on us.
For engineering: 1.7.0 is a single change — Laravel 13.x support via an upstream PR. No API changes, no deprecations, no migration work; it is a safe bump that also clears the path to the next framework major. Install is one composer require, middleware registration (it is not auto-registered — the service provider is, the middleware is not), and an optional config publish; expect to spend your real effort on discipline, not integration. Instrument a deliberately small set of milestones — total request, DB, cache, view render, plus one or two domain spans — and register the middleware only outside production or behind a flag, since headers are client-visible and can leak internal structure. Watch for the silent no-op: wrong position in the stack means no headers and no error. Rollback is config removal plus a composer remove — stateless and header-only, with no migrations or backfill. The highest-leverage move is baking registration and the environment gate into the shared application skeleton, which converts an ad-hoc install into a known-good default. Treat it as a developer-facing convenience that complements APM rather than replacing it, and if we standardize on OpenTelemetry long term, plan to consolidate rather than run both indefinitely.
How can I help you explore Laravel packages today?