lwekuiper/statamic-hubspot
A Statamic addon that connects your site to HubSpot. Embed HubSpot forms, route Statamic form submissions into HubSpot, and keep contacts and lead data synced with your CRM through a simple, config-driven setup managed from the Statamic control panel.
Architecture fit: The package is a Statamic add-on layered on Laravel, evidenced by its use of Statamic's registerSerializableClasses API and its handling of FormConfig entries. Architecturally it is a thin, well-behaved citizen of the Laravel service container and Statamic's addon lifecycle — but it is tightly version-coupled to two upstream frameworks simultaneously. That coupling, not the code itself, is the dominant architectural consideration.
Integration feasibility: Feasible but only on the tip of the stack. v2.1.0 requires PHP ≥ 8.3, Laravel 13, and Statamic ≥ 6.5. Any environment not already on all three cannot consume this release. Because the release notes describe the floors as required by Laravel 13 rather than as an independent choice, there is no indication of a parallel compatibility track for Laravel 12 / Statamic 6.4.
Technical risk:
FormConfig entries failing to deserialize from Laravel 13's hardened cache — is the concerning one. Deserialization failures of configuration objects typically surface as empty or malformed forms rather than as loud exceptions, and they are environment-dependent (invisible in dev with caching disabled, visible in production). The fix is an allowlist registration, which means prior 2.x builds on Laravel 13 may have been silently mis-serving form configuration.Key questions:
Stack fit: Only adopt if the target application is on, or is about to be on, Laravel 13 with a PHP 8.3+ runtime and Statamic 6.5+. If the application is mid-cycle on Laravel 12, this package version is out of scope until that upgrade completes.
Migration path: This cannot be an isolated composer update. It must be executed as a coordinated platform upgrade: PHP runtime → Statamic → Laravel → package. Upgrading the package first will fail resolution; upgrading Laravel first without Statamic 6.5 will fail resolution. Plan a single maintenance window with a full dependency solve rather than incremental bumps.
Compatibility: Backwards compatibility below the new floors is explicitly unsupported per the release notes. Assume no dual-support. Pin the package version in composer.json and rely on the lockfile — a floating constraint here will silently drag the application's framework floors forward on an unrelated composer update.
Sequencing:
FormConfig renders and submits correctly in a staging environment with production-equivalent caching enabled.Maintenance: Expect a narrow, fast-moving support window. This release already raised two floors and dropped the prior framework generation. Budget for at least an annual coordinated upgrade, and track upstream Laravel/Statamic release calendars rather than waiting for this package to announce support — the package's floor is dictated by upstream, so its releases will lag Laravel's by an amount outside your control.
Support: The dependency chain runs package → Statamic → Laravel. When something breaks at the Laravel 13 boundary, the fix often lives upstream in Statamic, which constrains what this package's maintainers can do and lengthens time-to-resolution. Escalation paths should be understood before adoption.
Scaling: The change is about correctness, not throughput — cache deserialization is not a hot path in the way query or rendering code is. No scaling concern introduced. The one thing worth watching is whether the serializable-class allowlist is consulted per-request or once at boot; if per-request, validate under load, though for form configuration the volume is likely negligible.
Failure modes:
FormConfig fails to deserialize, the likely symptom is a form rendering with missing fields or defaults rather than an error. Post-deploy verification should assert on rendered form output, not just on HTTP 200.Ramp-up: Low for day-to-day use — it is a standard Laravel package with conventional installation. Moderate for the upgrade itself: whoever owns it needs working familiarity with Statamic's serializable-class registration API and with how Laravel 13's hardened cache treats payloads, because that is precisely where the only reported defect lived. Assign the upgrade to someone who can reason about cache serialization, not just run composer update.
How can I help you explore Laravel packages today?