digital-creative/nova-apex-chart
Digital Creative's Nova Apex Chart package adds ApexCharts-powered chart cards to Laravel Nova dashboards. Build customizable line, bar, area, pie, donut, and radial charts from model data using a simple fluent PHP API, with responsive layouts and easy configuration.
Architecture fit. digital-creative/nova-apex-chart is a thin Nova add-on: a Composer package that registers a service provider, ships a PHP component class extending Nova's field/card contract, and hands an ApexCharts options payload to a compiled Vue component mounted through Nova's asset pipeline. That is a good architectural fit only if we are on Nova 2.x/3.x, which is the 2020-era surface this was built against. Nova 4 moved to Vue 3/Inertia and Nova 5 continued that line; a component last released in July 2020 almost certainly will not mount without modification. The package adds no server-side rendering, no data layer, and no aggregation — it is purely presentation, so it does not conflict with our application architecture, but it also provides nothing we could not assemble ourselves in roughly a day.
Integration feasibility. Mechanically trivial: composer require, publish assets, register the component, feed it series/options. The gate is not effort, it is version compatibility. With 7 stars and zero dependents there is no installed base generating compatibility evidence, no one filing issues against Nova 4/5, and no CI matrix confirming PHP 8.2/8.3 or Laravel 10/11 support. Feasibility should be treated as unproven until we run a spike.
Technical risk. High, concentrated in four places:
Key questions.
Trend/Value/Partition metrics sufficient for the dashboards in scope?Stack fit. Laravel + Nova, Composer-distributed, assets published into public/vendor. It assumes Nova's own asset compilation conventions; if we run a custom nova:publish or Vite-based build step, we should expect to reconcile two asset pipelines. ApexCharts itself is a sound, widely used library — the risk is the wrapper, not the renderer.
Migration path. Do not consume this as an upstream dependency. MIT license permits the pragmatic route: fork into our org, keep the PHP component class (it is small and mostly a config passthrough), and replace the bundled ApexCharts build with a current pinned version. That converts an unmaintained dependency into a ~200-line vendored component we fully control. The alternative — build the field from scratch against Nova's documented custom-field API — is a comparable amount of work and gives a cleaner audit trail.
Compatibility. Target Laravel 10/11, PHP 8.2+, Nova 4/5. The Vue 2 → Vue 3 migration of the component is the single largest work item; if we cannot staff it, we must scope the package to Nova 3 only and attach a hard decommission date rather than let it drift. Verify against Nova's dark mode and responsive breakpoints, which the 2020 build predates.
Sequencing.
1.0.0-internal.Maintenance. We become the maintainer. Budget roughly 1–2 engineer-days per quarter for dependency bumps and Nova compatibility patches, plus a mandatory 3–5 day re-evaluation on every Nova major. Automate with Renovate/Dependabot on the fork and a CI matrix so breakage surfaces in a PR rather than in a customer's dashboard.
Support. No upstream. Issues on the source repo are effectively unread; there are no security advisories and no one to escalate to. Internally we must designate an owner and a fallback, and document the component in our own runbook. For an admin-panel visualization this is tolerable; it would not be for anything on the customer-facing path.
Scaling. All rendering cost is client-side. Server load is negligible; browser load is not. Ten chart cards on one Nova dashboard multiply the ApexCharts payload and the render pass. Mitigate by capping series count and point count, downsampling server-side before handing data to the component, and lazy-loading cards below the fold. Treat the options payload as a contract — large series arrays serialized into the page will show up as slow TTFB on the dashboard route.
Failure modes.
Ramp-up. Low for any developer already fluent in Nova custom fields — the API is a config passthrough and the PHP side is a few dozen lines. The real ramp is the Vue 2/3 gap and Nova's asset pipeline, which is where a mid-level developer will lose time. Plan for one engineer to own it end-to-end rather than distributing knowledge across the team; with a package this small, single-owner is cheaper than documentation overhead.
Verdict. Adopt only as a forked, internally owned component with a pinned ApexCharts build, or skip it entirely in favor of Nova's native metrics for simple cases. The package is a reasonable starting shape and a poor long-term dependency.
How can I help you explore Laravel packages today?