Blog

Donating VegaFusion to the Vega community

We’re still supporting VegaFusion, but you can now find it under the official Vega umbrella

Hex-VegaFusion-donation-Illustration Final

We’re excited to announce that we are donating the VegaFusion project back to the Vega community, maintaining the BSD-3 license we added after acquiring the project in 2022. We will continue to support development and maintenance of VegaFusion, and hope that this new official home makes it the first choice for Vega developers looking to add server-side acceleration to their charts.

Why VegaFusion?

At Hex, we’ve always relied on the Vega ecosystem to power our visualizations and keep those eternally cookie-hungry viz mice well fed. Build nice legends? Easy. Make them 50% opacity and float inside the top left of the chart? Sure! Our charts are all Vega-Lite under the hood, which supports a dizzying array of config options and lets Hex users make beautiful, interactive visualizations with just a couple of clicks.

knowledge

🧠 Want to nerd out about using LLMs to generate accurate Vega-Lite charts? Read our recent blog “Making AI Charts go brrrr”.

But one long-standing problem that Vega doesn’t solve out of the box is data scale. You might have bumped into error messages before in tools that warned you about charting more than 5,000 rows, or 10,000, or some other arbitrary but relatively small limit.

This limitation is really an architecture problem, not a viz library problem. Interactive visualizations need to run on the frontend, which means computation happens in your browser, on your computer. And no matter how performant and beautiful the Vega codebase might be, your little browser will always start to sweat if you load millions of rows of data into memory. It’s just not designed for that! Cue fans whirring, pages glitching, and the spinny beachball of death.

But sometimes — actually, a lot of times!— you really need to work with more than 5,000 rows of data.

So when we saw VegaFusion, which seamlessly integrates with Vega to push aggregation to the backend while still allowing for frontend interactivity, we jumped at the chance to integrate it into Hex. We wound up liking it so much that we brought Jon Mease and the VegaFusion project directly onto the team to invest in the project, and incorporate it deeply into the Hex viz architecture.

Thanks to VegaFusion, Hex charts can now push aggregation to the backend, letting users visually explore data of any size. The interactive chart below showing month-aggregated bike trip counts is being computed over 20 million rows of raw data:

The future of the project

Over the past two years of stewardship, we’ve contributed a ton of new VegaFusion features, from:

  • Supporting many additional Vega transforms including stack, pivot, and impute.

  • Support for faceted charts.

  • Most importantly, we've integrated VegaFusion as an optional dependency into Vega-Altair itself. VegaFusion is now the recommended approach to scaling Vega-Altair charts to large datasets.

We feel great about the state of the project now, and are excited to donate it back to the Vega community along with the new BSD-3 open source license we’ve been using. You can now find VegaFusion over in the Vega Github organization!

Jon will continue to be a maintainer of the project, so we’re still dedicated to supporting and growing VegaFusion. This change just means more people will have access to the tools they need to build highly scalable and beautiful visualizations.

We can’t wait to see what you build 😄.

If you made it this far, and are interested in working on stuff like this, drop us a line at [email protected] — we would love to hear from you.