mydnic/nova-kustomer
A Laravel Nova integration for Kustomer, letting you view and manage customer service data from Kustomer directly inside your Nova admin panel. Quickly surface customer profiles, conversations, and support context without leaving your dashboard.
Architecture fit. mydnic/nova-kustomer is a Laravel Nova Tool — a package that registers a ToolServiceProvider, ships compiled front-end assets, and adds a menu entry inside the Nova admin panel. Architecturally it is a thin presentation-layer plugin: a Vue view plus server-side calls to the Kustomer REST API. That shape fits our stack only if two preconditions hold: (1) the internal admin surface where support/CS agents work is already Nova, and (2) we want Kustomer context embedded next to our own models (orders, accounts, tenants) rather than sending agents to a second tab. If either is false, the package has no architectural role and a simple link-out to Kustomer's own inbox is the better design. Note the package is a convenience affordance, not infrastructure — nothing else in the system should depend on it.
Integration feasibility. Superficially a one-command install (composer require, register the provider, publish config, set an API key). In practice, a December 2019 publish date places this in the Nova 2/3 era: webpack/Mix asset pipeline, Vue 2 components, and a composer.json almost certainly constrained to Laravel 5.8–6.x and PHP 7.x. Nova 4+ moved to Vite and Vue 3, and Nova 5 requires PHP 8.2+. The likelihood that the tool's compiled JS entry loads and mounts unmodified on a current Nova install is low, and the Composer resolver will likely block the install before we even get that far. Treat "install it" as a spike, not a plan.
Technical risk. High across the board:
Key questions.
Stack fit. Laravel (+ Nova) on the host side, Kustomer REST on the remote side. The package's only genuinely reusable asset is its API-call shape and field mapping — the front end will not survive a Nova 4/5 upgrade. Plan to keep the former and discard the latter.
Migration path. Two viable routes, decided by a timeboxed spike:
path repository, bump composer.json (php: ^8.2, laravel/framework: ^11, laravel/nova: ^5), replace the Mix build with Vite, port Vue 2 components to Vue 3, and re-register the tool in NovaServiceProvider::tools(). Viable only if the diff stays under roughly 2–3 days.KustomerClient service class with caching and rate-limit handling. This is the default recommendation: the surface area required is small, the result is maintainable, and it drops the abandoned-dependency flag from composer audit/Dependabot entirely.Compatibility. Assume breakage at three seams: Composer platform constraints, the Nova asset-registration API, and Kustomer API versioning. Verify each independently in the spike rather than discovering them stacked. If the host app is on Nova 3 or earlier (unlikely but possible), the original package may run with minimal patching — confirm before committing to a rewrite.
Sequencing.
composer.json entirely; keep the repo link in a comment for provenance.Maintenance. Effectively 100% ownership from day one. Even the fork route transfers all maintenance to us while preserving a misleading upstream provenance — contributors and scanners will assume it is supported. Budget recurring effort for two independent upgrade streams: Kustomer API changes and Nova major releases (roughly annual). The rebuild route collapses this to a single small file we fully understand.
Support. No maintainer SLA, stale issues, no disclosure process. When it breaks, it breaks silently and we debug a stranger's 2019 code. The MIT license is the one unambiguously good property here: forking and relicensing internally is clean, no legal review needed.
Scaling. The real hazard is request amplification. If the tool renders on Nova index pages, a 50-row table can mean 50 Kustomer API calls per page load, against per-org rate limits we do not control. Constrain it to detail views, cache aggressively (30–60s TTL is plenty for CRM context), batch where the API allows, and degrade to a "View in Kustomer" link when throttled.
Failure modes.
Ramp-up. A mid-level Laravel developer reads this package in under a day — it is small, which is also why rebuilding is cheap. The hidden cost is not comprehension, it is the archaeology of making 2019 front-end tooling work against a 2025 Nova build. Realistic end-to-end estimate for an equivalent, owned, maintained integration: 3–5 developer-days, with the spike de-risking the upper bound.
Recommendation: do not adopt as a dependency. Use it as a reference implementation for the Kustomer API call and auth pattern, then rebuild as a scoped Nova Card. The package's value is that it proves the integration is small — not that it is a solution.
How can I help you explore Laravel packages today?