vincentbean/laravel-plausible
A lightweight Laravel integration for Plausible Analytics. It provides a simple facade and Blade helpers to track pageviews and custom events, supports self-hosted instances, and enables privacy-friendly, cookie-free analytics with minimal configuration.
Architecture fit
laravel-plausible is a thin, single-purpose integration package: a Laravel service provider that wires a client for Plausible Analytics' HTTP Events API, plus (typically) a Blade directive for the script tag and a config file for domain/API host. This is a shallow, well-bounded integration — it does not touch the ORM, routing, auth, or queue internals. For any Laravel application that has already chosen Plausible as its analytics provider, architectural fit is high and blast radius is small. For applications without a Plausible decision, this package is not a reason to make that decision — it is downstream of a product/vendor choice (Plausible Cloud vs. self-hosted).
The one architectural consideration worth flagging: server-side event dispatch means outbound HTTP from the request lifecycle. Whether the package ships a queued job or fires synchronously is the single largest determinant of whether this is "install and forget" or "requires engineering review."
Integration feasibility
Low friction for a standard Laravel app: Composer install, config publish, environment variables, and (for Laravel 11+) auto-discovery removes the manual provider registration step. The 2.4.0 change — adding Laravel 13 support via PR #29 — is an additive compatibility widening, not a behavioral change. No migrations, no schema changes, no public API breakage is implied by the changelog. Realistic integration effort: hours for the happy path, plus a half-day to a day for the surrounding analytics governance work (event taxonomy, consent handling, PII review) that the package itself does not solve.
Technical risk
illuminate/support constraints and adding a CI matrix entry. The risk is not in this release but in the pattern: when a framework major lands, this package must follow, and there is a window where your Laravel upgrade is blocked by a dependency that has not caught up. Conversely, if 2.4.0 replaced rather than widened constraints, adopting it could pin you off older Laravel versions — the changelog does not tell us which.Key questions
illuminate/* constraints to include Laravel 13, or replace the floor? Does 2.4.0 still support Laravel 10/11/12, and what is the stated minimum PHP version?plausible.io?Stack fit
Target stack is a Laravel application on PHP 8.x with Composer 2. The package is framework-native and requires no additional runtime (no Node build step, no sidecar, no extension). It coexists cleanly with the usual Laravel observability stack — it will not conflict with queue drivers, HTTP clients, or middleware ordering, though if it dispatches via the shared Http client facade it will inherit your global HTTP middleware and timeout configuration, which is worth verifying.
Migration path
composer update vincentbean/laravel-plausible with no application code changes. Treat as a patch-equivalent upgrade in risk terms despite the minor version bump.composer.json before merging. If it now requires Laravel 13, adopting it on a Laravel 12 application will resolve to 2.3.1 anyway — harmless, but it means your lockfile pin is doing the real work, not your intent.Compatibility
The only compatibility signal in this release is the Laravel 13 addition. Confirm the full supported matrix (Laravel majors × PHP minors) before assuming it is a superset of 2.3.1. If your application is on Laravel 12 or earlier, this release is a no-op for you in practice — the value accrues when you plan your Laravel 13 upgrade and find the dependency already green.
Sequencing
composer.json diff and the full commit range between 2.3.1 and 2.4.0 to confirm no behavioral change.php artisan config:cache still succeeds with the package's config file.Maintenance
Very low steady-state cost: no migrations, no scheduled jobs owned by the package, no config drift beyond the initial publish. The real maintenance burden is external — tracking the package's releases against your Laravel upgrade calendar. A dependency that only ships when a framework major lands means you should subscribe to its releases rather than assume silence equals health. Budget roughly one dependency-review cycle per Laravel major, and verify each time that the maintainer is still active.
Support
Community-supported only: GitHub issues and PRs, no vendor SLA, no commercial backing evident from the release notes. For a package this small, first-line support is effectively "read the source" — which is acceptable precisely because the source is small. Assign an internal owner (typically the platform or backend lead) so that a stalled upstream does not become an unowned blocker during a framework upgrade.
Scaling
Scaling characteristics are dominated by outbound event volume, not by application load. Two things to settle before high-traffic use: (a) server-side events must not add latency to user-facing requests — if dispatch is synchronous, move it to a queue or drop it from the hot path; (b) outbound request volume must be checked against Plausible's API rate limits, with batching or sampling considered for high-event environments. Client-side pageview tracking via the script tag scales independently and costs nothing on your infrastructure. Cost is bounded by your Plausible plan tier, not by server capacity.
Failure modes
config:cache leaves production reporting to the old domain.Ramp-up
For a Laravel-fluent engineer: well under a day to install, configure, and verify delivery. Call it two to four hours including the reading of the source. The larger cost is the adjacent work that the package does not do for you — event taxonomy design, consent/opt-out handling, PII scrubbing policy, and dashboard access provisioning — which is roughly one to two days of product and legal-adjacent coordination for a team instrumenting analytics for the first time. Teams already running Plausible will see near-zero ramp-up; this release, for them, is a routine compatibility bump with no action required until their Laravel 13 upgrade.
How can I help you explore Laravel packages today?