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

Pulse Panphp Laravel Package

schmeits/pulse-panphp

A Laravel Pulse card that integrates PanPHP's privacy-friendly analytics into your Pulse dashboard, letting you monitor page views, visitors, and traffic trends alongside application health metrics. Simple to install and configure.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What the release actually tells us. The entire signal is: a Laravel/PHP package exists and shipped version 0.0.1, described only as "First release." The release payload provided for this assessment was empty — no composer.json, no README, no changelog beyond the one line, no CI status, no license, no maintainer history. This is therefore a baseline assessment with an explicit information deficit, not a verdict. Every point below is conditional on artifacts a TPM should obtain before any adoption decision.

Architecture fit. Laravel packages of this shape integrate through a small number of well-understood seams, and fit should be judged against which of them this package uses:

  • Service provider registration via composer.json → extra.laravel.providers (auto-discovery) versus manual registration in config/app.php/bootstrap/providers.php. Auto-discovery is fine for prototypes but is a hidden coupling in apps that build providers dynamically.
  • Config surface via mergeConfigFrom + publishes; presence of a publishable config file signals opinionated defaults we will inherit.
  • Migrations, routes, commands, middleware, facades, queue jobs — each expands blast radius. A package that ships migrations is an order of magnitude more invasive than one that ships a pure-PHP service class.
  • Whether it is a library (framework-agnostic helpers), an integration package (thin wrapper over a third-party SDK), or an application module (ships domain logic) is unresolved and determines everything downstream.

Integration feasibility. Unknown but cheaply testable. The gating facts are: required PHP version, illuminate/* constraint range, total transitive dependency count, license, and whether it performs network or filesystem I/O during service-provider boot. A package that talks to the network at boot is a categorically different risk from one that resolves lazily from the container.

Technical risk. High, and dominated by maturity rather than by any observed defect.

  • 0.0.1 is pre-alpha by convention. Under SemVer, 0.x permits breaking changes on any minor bump; 0.0.x permits them on patch bumps. There is no API stability commitment of any kind.
  • Zero release history means zero upgrade signal: we cannot infer maintainer responsiveness, release cadence, or whether Laravel major-version support is tracked (Laravel ships a major annually, so an untracked package becomes an upgrade blocker within ~12 months).
  • No evidence of test suite, static analysis, or CI matrix across supported Laravel/PHP versions. Absence of evidence is not evidence of absence, but for adoption purposes it is treated as absent.
  • Single-maintainer / bus-factor and abandonment risk are unquantifiable at this stage; no security disclosure policy is documented.
  • Supply-chain exposure is unassessed pending a dependency audit.

Key questions to resolve before any decision.

  1. What problem does this package solve that our own code or a mature alternative cannot, and what is the cost of the alternative?
  2. Who maintains it, and is there a public commit history predating this release?
  3. Which PHP and Laravel versions are supported, and is the constraint range (^10|^11|^12) or a narrow pin?
  4. What is the full transitive dependency tree, and does anything in it conflict with our locked versions?
  5. Does it ship migrations, routes, or middleware — i.e., what is the blast radius on provider boot failure?
  6. Is it Octane-safe (no mutable singleton state) and queue-worker-safe?
  7. License and security disclosure process?
  8. Is it a facade over a third-party SDK we would otherwise depend on directly — and if so, does the wrapper add enough to justify an extra link in the chain?

Integration Approach

Stack fit. Must be validated against our actual pinned matrix — PHP runtime version, Laravel major, and test/dev tooling (PHPUnit/Pest, Larastan). Two failure modes to check explicitly: (a) a package whose illuminate/support constraint excludes our current Laravel major, and (b) a package that force-upgrades a shared dependency (Guzzle, Carbon, Symfony components) and thereby destabilises unrelated code.

Migration path. There is none — this is a greenfield dependency with no predecessor version to migrate from. That is the one genuine advantage of a first release: adoption is a clean add, and removal is a clean composer remove provided we do not let it bleed into domain code.

Compatibility and pinning strategy. Pin exactly ("vendor/package": "0.0.1") rather than using a caret range. A ^0.0.1 constraint will silently pull 0.0.2, which is permitted to be breaking. Commit the lock file; treat every version bump as a code review event, not a routine update. Run the dependency audit in the same change window.

Sequencing.

  1. Intake — obtain source, composer.json, README, license, and commit history. If any of these are missing or the repo is private-and-unshared, stop here.
  2. Isolated spike (time-boxed, ≤ 1 day) — install into a throwaway Laravel skeleton matching our production version; exercise happy path and one failure path; record boot-time cost, published config/migration footprint, and dependency delta.
  3. Containment design — if the spike passes, wrap usage behind our own interface/adapter so the package is swappable. No direct package types in domain or controller signatures.
  4. Prototype behind a flag — non-production environment only, feature-flagged, with the adapter boundary intact.
  5. Promotion gate — production adoption requires at minimum a 0.1.x release with a changelog, evidence of a test suite, and a demonstrated response to at least one issue. Absent that, keep the adapter and drop the package.

Operational Impact

Maintenance. The recurring cost is not installation, it is the annual Laravel major upgrade. An unmaintained package converts a routine framework upgrade into a fork-or-rewrite decision on someone else's timeline. Budget for this explicitly: either we accept ownership of a vendored fork, or we accept a hard dependency on a third party's cadence. At 0.0.1 we should assume the latter is unavailable and plan for the former.

Support. No commercial support, no SLA, community-only channels, no documented security disclosure process. Internal escalation path is effectively "the one maintainer's issue tracker," which is not an escalation path. If this package touches authentication, payments, or PII, that alone is disqualifying at 0.0.1.

Scaling.

  • Boot cost — service providers run on every request; a provider that performs I/O or registers heavy bindings adds latency linearly with traffic. Measure, don't assume.
  • Config caching — must be compatible with php artisan config:cache and route:cache; packages that read env() at runtime rather than through config break under caching.
  • Octane — long-lived workers turn accidental singleton state into cross-request data leakage. This is the most common way a Laravel package that "works fine" becomes a production incident.
  • Queue workers — same class of issue for job payloads and serialised state.

Failure modes.

  1. Provider boot failure — a thrown exception in register()/boot() takes down the entire application, not just the feature. Highest-severity, lowest-probability-at-install, highest-probability-at-upgrade.
  2. Silent breaking change — a routine composer update on a 0.x range changes behaviour with no migration guide. Mitigated by exact pinning.
  3. Abandonment at framework upgrade — package stops tracking Laravel; blocks our upgrade; forces scheduled fork work.
  4. Config publish drift — package changes its default config keys after we've published; our file masks the new defaults and we get confusing behaviour.
  5. Transitive CVE — package's dependency tree inherits a vulnerability we now own without owning the fix.
  6. Hidden side effects — migrations, scheduled tasks, or global scopes registered implicitly and discovered in production.

Ramp-up. Low engineer ramp-up if it follows conventional package structure (provider + config + facade): a mid-level Laravel engineer is productive in under a day, and the adapter boundary keeps the learning confined. The real ramp-up cost is organisational, not technical — the team must internalise "this dependency can break on a patch bump" and route updates through review. Estimated ongoing ownership cost is small in engineer-hours but non-zero in process discipline, which is exactly the kind of cost that quietly lapses.

Recommendation. Do not adopt for production on 0.0.1. Acquire the missing artifacts, run the time-boxed spike, and if the package is genuinely valuable, integrate behind an adapter and re-evaluate at 0.1.x or later. Treat the empty release payload itself as the primary finding: we cannot assess what we cannot read, and a first release with no documentation is a signal about the maintainer's operating model as much as about the code.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console