2026-01-12
I began using Plotly in 2016 to add interactivity to what were previously static matplotlib charts. When I launched my personal website in 2017 and began publishing data visualizations, Plotly was the default tool I chose. And for the last eight years, my charts lived on in Plotly's "Chart Studio".
In the interim, my toolkit expanded. In my master's I used R a little and matplotlib a fair bit. Professionally, I've used countless data viz platforms/tools. Yet, Plotly remained my site's default, until Plotly shut down Chart Studio this past October. And with it, all my charts (embedded iframes) showed a polite 404 with no easy (or free) way to resurrect them.
D3 was the immediate choice for a replacement, but I recognized that my limited familiarity with the library meant this migration would take longer than I wanted—especially for a project where "success" simply meant returning to the status quo.
So I vibe coded it.
For background, I've mostly been underwhelmed with AI coding tools. In my career, I've been working in large codebases with distributed architectures and project specific quirks. I’ve often winced at the screen, weighing whether an LLM would provide a usable solution or if I'd end up in an infinite loop. More often than not, I decided the risk of going in circles wasn't worth the prompt.
But here, the scope was tight and the requirements were spelled out. The generated code came together quickly, worked, and I was able to easily style the D3 charts. Now, I've got the CSS in place to quickly add new charts that match the aesthetic of my site. Best of all, these visualizations are no longer reliant on a third-party platform, and should last well beyond the next eight years.