Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Matomo Bundle Laravel Package

nucleos/matomo-bundle

Symfony bundle for integrating Matomo analytics into your application. It offers configuration for Matomo tracking, Twig helpers to embed the tracking code, and services that simplify adding privacy-friendly web analytics to Symfony projects without boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: This remains a Symfony bundle (nucleos/matomo-bundle), not a Laravel package. The prompt frames it as a "Laravel/PHP package," but the artifact is explicitly a Symfony bundle providing a block service for embedding Matomo tracking inside Symfony applications. For a Laravel-based product, there is no native architecture fit — the bundle depends on Symfony's bundle/kernel, service container, and config component conventions. Any Laravel adoption would require shimming Symfony services into Laravel's container or, more realistically, using raw matomo/matomo-php-tracker directly and skipping the bundle entirely. Release 4.4.0 does not change this: it adds a Symfony 8 constraint, which widens the Symfony compatibility envelope but does nothing for non-Symfony consumers.

Integration feasibility: Within a Symfony codebase, integration is straightforward: register the bundle, configure Matomo host/site ID/auth token via bundle config, and inject the block/tracker service where analytics events are emitted. 4.4.0 confirms the bundle is viable through Symfony 8, so a greenfield Symfony 7→8 migration no longer requires dropping the bundle. Outside Symfony, feasibility drops sharply — the value the bundle adds (DI wiring, config schema, Twig/block rendering hooks) is exactly what doesn't transfer to Laravel. The underlying Matomo PHP tracker is the portable part; the bundle is the framework-glue part.

Technical risk: Unchanged at the level that matters. Six GitHub stars and zero dependents still indicate a narrow user base — likely internal to the Nucleos ecosystem. The 4.4.0 release is a mild positive signal: it lands Symfony 8 support, PHPUnit 13 compatibility, and routine dependency refreshes, which directly addresses the common "analytics bundle lags Symfony majors" failure mode. But the release data also sharpens the bus-factor concern: 5 PRs from 2 contributors, one of whom is renovate[bot]. Effective human maintainership is one person (core23). License (MIT) is clean, lowering legal risk. Note also that this was a feature (minor) release containing zero functional changes — no new tracking capability, no deprecations, no API changes. It is maintenance churn, not product evolution; do not read it as growing investment in the package.

Key questions:

  • Is our actual application Symfony or Laravel? The answer likely ends the evaluation — if Laravel, this bundle is the wrong tool regardless of Symfony 8 support.
  • If Symfony, are we on 7.x heading to 8.x? 4.4.0 removes a prior blocker; confirm the constraint range is ^6.4 || ^7 || ^8 or similar rather than an additive-only ^8 that would strand us on the old branch.
  • Do we need the "block service" abstraction, or do we just need to fire _paq/tracker calls? If the latter, a thin wrapper around matomo/matomo-php-tracker is lower-dependency.
  • Who maintains this internally if Nucleos stops? With one human committer, we would be the maintainer of last resort — and this release provided no evidence of a second maintainer onboarding.

Integration Approach

Stack fit: Only viable for a Symfony stack that already uses Nucleos conventions or is willing to adopt them. 4.4.0 strengthens this narrow case by extending support to Symfony 8. For a Laravel stack — which the prompt implies — the correct approach is unchanged: treat this repository as reference material, not a dependency. Read how it wires the Matomo tracker, then implement equivalent logic in a small Laravel service provider wrapping matomo/matomo-php-tracker. That keeps us on a well-maintained upstream and avoids a Symfony-in-Laravel compatibility layer that no one will want to own.

Migration path: If we are currently on direct Matomo snippet injection (JS) and want server-side tracking, migrate incrementally: keep the JS tracker, add server-side events behind a feature flag, compare event fidelity, then retire duplicated paths. If we are currently on a different analytics vendor, do not use a bundle migration as the excuse for a vendor swap — sequence them separately. If we are already on an earlier 4.x of this bundle, 4.4.0 is a low-risk in-place bump: it is dependency-only, with no functional delta and no deprecation surface to remediate.

Compatibility: Verify PHP version range, Symfony major version support, and whether the bundle's config schema is stable across the versions we would pin. 4.4.0 explicitly adds Symfony 8 and bumps the test toolchain (PHPUnit 13, symfony/phpunit-bridge v8), which means CI is now exercising the newer matrix — a good sign for Symfony 8 readiness. Because there are zero dependents, expect to be the first to hit edge cases on any new major; pin exact versions rather than floating constraints.

Sequencing:

  1. Confirm framework reality (Symfony vs Laravel) — gate decision, unaffected by this release.
  2. If Symfony on 7.x with an 8.x upgrade on the roadmap, take 4.4.0 now rather than deferring — it is the release that unblocks that path.
  3. If Symfony but not upgrading, 4.4.0 is optional; bump opportunistically, not urgently.
  4. If Laravel or mixed, spike matomo/matomo-php-tracker directly and treat the bundle as documentation.
  5. Only after a successful spike, decide on pinning and internal ownership.

Operational Impact

Maintenance: The bundle's small user base shifts maintenance burden onto us. We should budget for reading the source rather than relying on docs, and for occasionally patching or forking. 4.4.0 shows the dependency-refresh treadmill is being handled by automation plus one human, which is sustainable short-term but fragile: a single unresponsive maintainer stalls Symfony 9 readiness the same way it would have stalled 8. A single-maintainer dependency in the analytics path is tolerable only if analytics is non-critical to revenue flows.

Support: No meaningful community support surface — six stars means Stack Overflow and forum answers will be sparse. Internal runbooks and a named owner are prerequisites, not nice-to-haves. Expect to answer your own Symfony 8 compatibility questions by reading the constraint in composer.json rather than finding a migration guide.

Scaling: Analytics tracking is I/O-bound on the outbound Matomo request. Server-side tracking adds latency to request paths unless batched or queued. Design for async dispatch (queue or buffered flush) from day one; do not let a bundle's convenience API silently put a synchronous HTTP call in the hot path. Nothing in 4.4.0 addresses dispatch behaviour — the convenience API is unchanged, so the latency warning stands.

Failure modes:

  • Matomo endpoint down or slow → request latency or dropped events; needs timeout and circuit-breaking.
  • Bundle incompatible with a future Symfony upgrade → blocks framework upgrades. 4.4.0 mitigates the immediate Symfony 8 instance of this risk but does not eliminate the pattern; pin and monitor.
  • Config drift (site ID, host) between environments → events land in the wrong Matomo site; validate config at boot.
  • Silent tracking failures → no errors, no data; add a health check and event-count assertions.
  • Maintainer unavailability → no upstream fix for the next framework major; track time-to-merge on the Symfony constraint each cycle as an early-warning metric.

Ramp-up: Low for a Symfony engineer already familiar with packages — perhaps half a day to wire, a day to validate, and near-zero incremental effort to absorb 4.4.0. For a Laravel team, ramp-up is inverted: the effort is not learning the bundle but deciding not to use it and building the equivalent in ~a day with the upstream tracker. The real ramp-up cost is organizational: establishing ownership of a thinly-adopted dependency. The 4.4.0 release improves the framework-compatibility story but does not change the adoption calculus — six stars, zero dependents, one human committer, and a Laravel context that the bundle cannot serve. My recommendation is unchanged: do not adopt this bundle as a dependency for a Laravel codebase; instead either (a) adopt matomo/matomo-php-tracker directly, or (b) for a genuine Symfony codebase on or heading to 8.x, take 4.4.0 as a low-risk maintenance bump with a documented exit path to the upstream tracker.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo