matheusmarnt/livecharts
LiveCharts is a reactive chart abstraction for Laravel that unifies ApexCharts and Chart.js behind one fluent PHP API. Define 18 chart types in PHP, render with a single Livewire component, and update them reactively from application state—no JavaScript boilerplate.
Chart::poll(), Livewire property binding, Echo broadcasting) and the click/zoom/selection → Livewire event bridge map directly to the top three asks in almost every dashboard discovery: refresh cadence, drill-down, and export-the-thing-you-clicked-on.registerEngine() for adapters) means the engine choice is a configuration value, not an architectural commitment. That supports a legitimate PM position: "pick the default engine on preference and revisit later without a rewrite." It softens the usual "which chart library do we standardize on?" debate that otherwise eats a design review. Treat it as partial insurance — see the risk in the next section.TwColor enum, named dark:/light: color arguments, and TwPalette presets let a PM ask for theme tokens as an acceptance criterion rather than filing per-chart color bugs. Live re-color on dark-mode toggle without a Livewire roundtrip is a small UX detail that repeatedly shows up in accessibility and QA tickets; here it's a default.<livewire:livecharts :chart="$chart" /> contract plus make:chart stubs means multiple squads produce charts the same way. That's a maintainability argument a PM can make to engineering leadership in one sentence: it makes chart rendering a convention, not a per-team craft.Adopt (or, realistically, pilot) when most of the following hold:
Look elsewhere when:
--min=90 coverage gate, PHPStan level 8, and PHP 8.2–8.5 × Laravel 11/12/13 × Livewire 3/4 × Ubuntu/Windows CI matrix are genuinely stronger engineering hygiene than most 5-star packages — but hygiene is not the same as a support contract.registerEngine() project or a fork. Verify against your actual most-complex chart before committing; the abstraction is easiest to outgrow at the top end.Recommended posture: pilot on one internal or low-blast-radius dashboard surface, timeboxed, with a written exit criterion (can we reproduce our three hardest charts with no engine-specific leakage, and can platform own the asset pipeline?). Promote to standard only after that. Do not lead with this package on a customer-facing commitment.
For executives (30 seconds): LiveCharts is an MIT-licensed Laravel package that turns chart-building into a few lines of PHP instead of custom JavaScript per chart. If we're doing dashboard or reporting work on the roadmap, it can compress that work materially and give us consistent theming and live updates for free. The honest caveat: it's a young, single-maintainer open-source project with minimal adoption, so we should pilot it on one non-critical surface rather than build a revenue-critical feature on it out of the gate. The cost of finding out is small; the cost of hand-rolling it is a recurring sprint tax.
For engineering leadership (the substance):
Chart subclass — and re-render from application state. No per-engine config in Blade.livecharts:install, LIVECHARTS_ASSETS_MODE) and a dependency we may end up maintaining ourselves.How can I help you explore Laravel packages today?