Flet vs Streamlit vs Gradio: when to use each
Posted 2026-03-28 on the pythondeck.com blog
All three let you ship a Python-only web UI with a handful of lines of code, but they aim at different jobs. Picking the wrong one will frustrate you for weeks.
Streamlit
Streamlit is optimised for data apps. The entire script re-runs top-to-bottom on every interaction - which is brilliant for dashboards ("show this chart for this slider value") and awful for stateful apps. Use it for internal analytics tools, model demos and reports.
Gradio
Gradio is optimised for ML model demos: inputs in, outputs out. The default components match common ML modalities (image, audio, text, file). It auto-generates a shareable URL via tunnels, which is unique among the three. Use it for Hugging Face demos and quick prototype interfaces.
Flet
Flet is a general-purpose UI framework that happens to run in the browser. State is yours to manage, layouts are explicit, the look is Material 3. Use it when Streamlit's re-run model fights you, when you need real navigation between views, or when you want the same code to also run as a desktop or mobile app.
Comparison cheat sheet
| Need | Best fit |
|---|---|
| Dashboard with sliders + charts | Streamlit |
| ML model demo | Gradio |
| Multi-screen web app w/ state | Flet |
| Same code for web + desktop + mobile | Flet |
| Public shareable URL in 1 line | Gradio |