kanuu-io/kanuu-laravel
Official Laravel integration for Kanuu, a hosted customer portal for SaaS billing. Quickly let customers manage subscriptions, update payment details, and view invoices. The package provides simple configuration, routes, and helpers for connecting your Laravel app to Kanuu and Stripe.
Architecture fit. This is a Laravel package reaching its first stable tag, so the relevant architecture question is less "does it fit Laravel" and more "what contract does it now commit to." v1.0.0 signals a semver stability promise: public API, config keys, and published assets should be treated as frozen until 2.0. That is good for planning and bad for anyone who adopted a pre-1.0 branch and now must absorb the 1.0 surface as-is. The package's internal design (service provider registration, facade, config publishing, package discovery) is not described in the release note; assume Laravel conventions but verify.
Integration feasibility. The release note defines the supported matrix by exclusion and inclusion: PHP 7.4 out, Laravel 7 out, Laravel 9 in, PHP 8.1 confirmed. Read conservatively, that means a floor of PHP 8.0+ and Laravel 8+, with Laravel 9 and PHP 8.1 as the tested frontier. Any application still on Laravel 7 or PHP 7.4 cannot install v1.0.0 at all — Composer will refuse resolution, so this is a hard gate, not a soft deprecation.
Technical risk. Moderate and mostly concentrated in two places. First, the 1.0.0 tag is itself a breaking change for pre-1.0 consumers: any code written against dev-main or 0.x may need edits with no upgrade guide referenced in the note. Second, the support ceiling is unstated — Laravel 10+ and PHP 8.2/8.3 are not mentioned, so the package may become a blocker at our next framework upgrade. The removal of Laravel 7 and PHP 7.4 is low-risk in substance: both are long past upstream end-of-life, so the maintainer is following the ecosystem rather than abandoning it.
Key questions.
Stack fit. Adoption is conditional on our fleet already being on PHP 8.0+ and Laravel 8+. If any production service is on Laravel 7 or PHP 7.4, this package is not the thing to change first — the framework upgrade is. The package should be treated as a downstream consumer of that upgrade, not a driver of it.
Migration path. Two distinct paths. (a) From a pre-1.0 install: pin ^1.0, read the diff against whatever commit we currently resolve to, and expect config or API renames; budget a half-day of remediation for a small integration. (b) From Laravel 7/PHP 7.4: no path exists. Upgrade PHP to 8.1 and Laravel to 9 first, verify the app is green, then add the package. Do not attempt to co-schedule the two.
Compatibility. The practical constraint is transitive: this package's PHP and Laravel constraints must intersect with every other package in the lockfile. Run composer why-not against the current dependency graph before committing, and check that no other dependency still requires Laravel 7 or PHP 7.4 — one legacy package holding the floor will block the whole install regardless of this package's merits.
Sequencing.
^1.0) and an upgrade note for anyone on pre-1.0.Maintenance. A 1.0.0 tag typically reduces maintenance drag — fewer surprise breaks, predictable upgrade cadence. The offsetting cost is that we now depend on the maintainer's willingness to track new Laravel majors; if they lag, we inherit a ceiling. Track release frequency and time-to-support for Laravel 10 as leading indicators. Pin to ^1.0 and let Renovate/Dependabot surface minors rather than floating.
Support. Dropping PHP 7.4 and Laravel 7 shrinks the supported surface, which is a supportability improvement — fewer branches, fewer divergent code paths, and no obligation to reproduce bugs on EOL platforms. It also means we get no security patches routed through this package for legacy stacks; those stacks are already unsupported upstream regardless.
Scaling. Unknown from the release note. For most Laravel packages of this shape the runtime profile is a thin wrapper over framework primitives and scales with the host application; the risk is only if it introduces per-request I/O, caching layers, or queue workers that need their own capacity planning. Confirm before any high-throughput deployment.
Failure modes.
Ramp-up. Low. Any Laravel-fluent engineer should be productive within a day, assuming conventional provider/facade/config structure and reasonable docs. The cost is not learning the package; it is the platform upgrade prerequisite and the dependency-graph audit, both of which are team-agnostic work items that should be estimated and owned before a decision is taken.
Assessment status: provisional. The release note establishes a support matrix and a stability commitment but not the package's function, scope, or ceiling; those gaps should be closed before this is treated as an adoption decision.
How can I help you explore Laravel packages today?