nowo-tech/beacon-bundle
Nowo Tech Beacon Bundle gives your Laravel/PHP app a simple, configurable beacon endpoint for collecting lightweight telemetry, page views, and custom events without bulky third-party scripts. Quick to install, framework-friendly, and privacy-conscious by design.
composer require nowo-tech/beacon-bundle. Confirm the package supports your PHP version (the bundle targets PHP >=8.2 and Symfony 7/8; Laravel 11/12 ships PHP 8.2+ so the runtime constraint is usually fine, but the Symfony framework constraint is not a Laravel constraint).DependencyInjection/*Extension.php and Resources/config/services.php). The important artifact is the client service that accepts the DSN — that is the piece you can reuse from Laravel.scheme://publicKey:secret@host:port/projectId. Port and secret are optional; project id is required. Keep it in .env (e.g. BEACON_DSN=...) and reference it from config/services.php rather than hard-coding it.bootstrap/app.php's withExceptions callback or a custom reportable.php artisan vendor:publish, a facade, or a config/beacon.php. If the bundle's client has Symfony-specific constructor dependencies (HTTP client, event dispatcher), check whether those can be satisfied with Laravel equivalents before committing to the integration.config('services.beacon.dsn'). Keep this wrapper behind your own small interface (e.g. TelemetryClient) so the rest of the app is not coupled to the bundle's concrete class.bootstrap/app.php, use ->withExceptions(function (Exceptions $exceptions) { $exceptions->report(function (Throwable $e) { app(TelemetryClient::class)->captureException($e); }); }). Guard against reporting the reporter's own failures.local and testing via a config flag checked in your wrapper, not by editing bundle config.beacon:test) that sends a synthetic envelope is the fastest way to validate DSN, network egress, and server acceptance after deploy.try/catch and log locally.projectId is the last path segment; a missing secret means the publicKey@host form. Test both forms, especially if you rotate keys per environment.config:cache will not see Symfony bundle configuration. Pass the DSN explicitly through Laravel config; do not rely on the bundle reading BEACON_DSN from the environment on its own.Http::fake in tests). Most failures are DSN typos, missing project id, TLS/proxy issues, or the self-hosted server rejecting the envelope version — not client code.How can I help you explore Laravel packages today?