PyCon DE & PyData 2025

FastHTML vs. Streamlit - The Dashboarding Face Off
2025-04-25 , Helium3

In the right corner, we have the go-to dashboarding solution for showcasing ML models or visualizing data, STREAMLIT (*crowd cheers*). Simple yet powerful, it defends the throne of Python dashboarding, but have you ever tried to create complex interactions with it? Things like drill-downs or logins, can make your control flow become messy really quick (*crowd nods knowlingly*).

And in the left corner, the new contender in the arena of Python web frameworks which, according to its docs, "excels at building dashboards", FastHTML (*crowd whoops*). We will see if this is true, in the ultimate dashboarding face off (*crowd gasps*). By building the same dashboard, step by step, in both frameworks, investigate their strengths and weaknesses, we will see which framework can claim the crown.


Streamlit is the go-to dashboarding solution for showcasing ML models or visualizing data. It has a vibrant community, multiple years of development under its belt, and tons of third-party integrations. On the other hand, everyone that tried to create complex interactions, like drill-downs or logins, knows that control flow can get messy really quick. Initially simple dashboards often evolve into something bigger and the simple-but-powerful Streamlit formula may not always be up to the tasks.

FastHTML is a new contender in the arena of Python web frameworks and, according to its docs, "it excels at building dashboards." FastHTML stands on the shoulders of giants, giving you a smooth Python experience for authoring web pages, while allowing access to the foundations of the web, like CSS and JS, at any time. We will see if FastHTML can put code where its mouth is, by building the same dashboard, step by step, in both frameworks and investigate their strengths and weaknesses.

This is a talk for data enthusiasts that dabble in web technologies for the sake of showcasing their work or building internal tooling. Do not expect a course on building customer-facing web apps. We will build a dashboard that features:

  • an interactive Plotly chart
  • a drill-down with detailed information shown in a second plot
  • a login
  • multiple pages and navigation

We will examine how hard or easy it is to implement each of these features and how interacting with them in the browser feels. At the end we will see if the reigning champion can defend their crown or if the ambitious contender takes the win.


Expected audience expertise: Domain:

Novice

Expected audience expertise: Python:

Intermediate

I'm a data scientist, machine learning engineer, AI developer, or whatever else you want to call it. After finishing my PhD I am now working as a consultant at Dataciders ixto, where I'm helping our customers to never make wrong decisions again.