Last week, we talked about dataviz tools and how everyone will probably “move to the right” of this diagram thanks to AI.
Today, I want to zoom in on what I call bridge tools (in red). Like Shiny, Streamlit, and HTML Widgets.
These tools are amazing and have been at the heart of the R community for years. In fact, they’re what made me fall in love with dataviz 10 years ago. My very first published app is even still online! 😳
But here’s the thing: I believe these bridge tools are becoming obsolete. Today, I want to explain why. And what you should do instead.
What is Shiny? Streamlit?
Your browser speaks only three languages: HTML, CSS, and JavaScript. Any web application, in the end, has to use them.
Tools like Shiny act as a wrapper: they let you write R code that magically generates HTML, CSS, and JS behind the scenes. We call it a layer of abstraction.
It’s brilliant!
Data analysts can go from zero web experience to a working app in a few days, instead of spending months learning new languages and paradigms.
But, like any abstraction, it comes with a cost.
Associated Caveats.
I’m not going to list everything, but there are a few key reasons Shiny is less powerful than a “real” web app:
❌ Speed. R isn’t exactly fast. Shiny apps often take forever to load, leaving you staring at the dreaded spinner. That’s because every reactive update triggers R computations on the backend, and R wasn’t designed for high-performance, real-time web interactions.
❌ Design. Ever noticed that 99% of Shiny apps look the same? That’s because customizing them is hard. You can do it, but you’ll need more HTML and CSS knowledge than if you were building a real web app, because you’re constantly working around Shiny’s abstraction layer.
❌ User Experience. Every button click triggers a full state update: charts disappear, the backend rebuilds them, and they reappear, often with a blink. Smooth, animated transitions like below are impossible in Shiny.
❌ Hosting. You need a server to run Shiny. So you'll have to build and maintain it forever. Or pay someone forever to host it. Most of the Shiny apps I see could be static sites, served for free on GitHub and handling thousands of simultaneous users. Why rely on a server when the browser can do the work?
the difference between Static and Dynamic webpages is fundamental. I've tried to explain it here.
❌ Dataviz. R and Python mostly produce static charts. HTML widgets are nice, but they’re wrappers too, and come with limitations. Switch to D3.js, and suddenly customization is limitless.
The future (or maybe the present?)
Shiny’s biggest advantage used to be its simplicity. But with AI, writing code isn’t the bottleneck it once was.
Now, the tool you choose should depend on what the final product really needs, not on how hard it is to code.
If your app is running a super niche Bayesian model that only exists in an R package, Shiny might still make sense.
But if “saving time” was your main reason, it’s worth seriously considering a switch to real web tools.
Just today, I was on a 1:1 consultancy call with a client reviewing their dataviz work. Their big Pharma company is now planning to migrate all Shiny apps to real web apps 😳! I think the trend will rise.
What this means for you
I made the switch 7 years ago, and there’s no turning back. I wouldn’t write a single line of Shiny code today.
Shiny and its friends were a brilliant idea, but my advice is: don’t spend time learning them now. If you need to build something tomorrow, start with a modern web tech stack instead.
I expect many people will make the switch soon.
Since I work with R, Python, and the web for 12 years, I’m preparing a course that teaches all the fundamentals of dataviz on the web. By the end, you’ll have the building blocks to create beautiful, interactive visualizations using React, D3.js, and AI tools.
The first limited cohort starts February 16th. I’ll share more details soon, but you can already hit reply to reserve your spot. It's also a good time to talk to your employer to finance it!
Next week, I’ll dive into the 9 tools in my tech stack that make building interactive dataviz websites a breeze.
See you next Saturday,
Yan
PS: I know this will ruffle some feathers. Shiny and Streamlit are beloved tools in the R and Python communities. I love them too. But they’re not as useful today as they once were imo. I still have immense respect and gratitude to everyone who’s built and invested in them. PPS: There are tools that remain extremely important to master in the AI era: Quarto, Git and Github. I'll never repeat enough how important they are!!