khill/lavacharts
Lavacharts is a Laravel wrapper for Google Charts that lets you build interactive charts with a fluent PHP API. Define data tables, render charts and dashboards, and add controls or events without writing JavaScript.
Consider it when:
RenderableTrait blocker, issue #322) specifically unblocks Composer 2 installs, so a modern-composer shop can now evaluate it without forking. Confirm in a spike that this is the only install blocker on your matrix.Look elsewhere when:
To executives: Lavacharts is a low-cost, high-speed way to put charts into internal tools. It wraps Google's free charting engine, so there's no license fee and no front-end build effort — a reporting dashboard that would otherwise take a month of engineering can land in days. A recent patch (3.1.14) fixed the Composer 2 installation blocker, so we can now trial it on our standard toolchain without vendor hacking. The trade-off is unchanged: it's a tactical accelerator, not a strategic platform — it went roughly four years without a release, its license needs a quick legal confirmation, and it renders by pulling scripts from Google's CDN, which rules it out for regulated or customer-facing surfaces. My recommendation is to use it for internal dashboards and prototypes where it buys real schedule, and to keep an explicit exit path — the chart definitions are simple enough to port to a maintained library if reporting becomes a product priority.
To engineering: It's a thin PHP wrapper over the Google Charts JS API — you define chart config in PHP, it emits the JS. That means no new build tooling and no JS ownership for the data team. 3.1.14 only addresses the RenderableTrait Composer 2 blocker (#322); treat it as an install fix, not evidence that PHP 8 / current Laravel is supported — validate that in a one-day spike before committing. The other costs are a runtime dependency on Google's CDN, a client-side rendering model (so no clean server-side/PDF export), and a thin maintenance record — assume we may fork and pin it. If we go ahead, isolate chart definitions behind one service so swapping renderers later is a contained change.
How can I help you explore Laravel packages today?