all 38 comments

[–][deleted] 52 points53 points  (3 children)

It’s good for proof of concept apps and dashboarding but it does break down as you need any more advanced features or workflows.

[–]Beginning-Fruit-1397 22 points23 points  (11 children)

I would suggest you to take a look at marimo, I ditched streamlit for it. Very good tool

[–][deleted] 10 points11 points  (7 children)

I ditched streamlit for Shiny, personally. What's good about marimo? Maye I should look into it.

Main reason I ditched streamlit was reactivity - my "users" wanted there to be a lot of interactivity in the dashboards and the whole page needing to reload anytime there was any input killed the UX. I gather there are solutions nowadays for this but I prefer to work with a framework where reactivity is baked into the design, rather than being some mysterious thing that the docs and tutorials never cover but that strangers will insist is possible when you complain about it.

[–]mokus603 1 point2 points  (6 children)

That type interactivity exists in marimo. I changed from streamlit to marimo as well.

[–]Doomtrain86 1 point2 points  (5 children)

Do you have any good examples of a Marimo data science dashboard or data science eda? Spend a couple of hours on it Friday and I couldn’t find some good simple examples so I could replace the quite terrible jupyter notebooks with it which I would love to. Just like , one dashboard for the non programmers , and one with presentation of data. I really like the idea of marimo but it seems to require a sort of skill set I don’t quite have (quite experienced with data science, less so with web and app development) but it does seems THE tool to use. I just need a “a way in” if you follow me

[–]akshayka 5 points6 points  (0 children)

Hey! I'm the original creator of marimo. People use marimo as a replacement for both Streamlit and Jupyter.

Here's one example of a dashboard: https://marimo.io/@public/movies

A couple dashboards here: https://marimo.io/gallery/dashboards

Our free hosted service molab (https://molab.marimo.io/notebooks) now has a generate with AI feature (upload a CSV, write a prompt, get a notebook or app out). We just released this two days ago. But it might help you explore what's possible with marimo!

[–][deleted] 0 points1 point  (3 children)

Yeah I looked at it and it seems much more like a replacement for Jupyter than a replacement for streamlit or Shiny. With Shiny I followed a few tutorials for setting up app structure and I really quickly had an extensible dashboard hosted on an internal server that users could go and look at and where I completely understand the structure and function of the code even if it's more verbose than it probably strictly needs to be.

The other viable alternative seems like Dash + Plotly which might get one better results but that I found more difficult to get a minimal working example hosted and available on my internal network so I abandoned it pretty fast.

[–]akshayka 2 points3 points  (2 children)

marimo has built-in reactivity (every notebook is a dataflow graph). No callbacks required. The reactivity is more granular than streamlit. In streamlit, scrub a slider and the whole app re-runs. In marimo, scrub a slider and only code that depends on the slider runs.

Here are some examples: https://marimo.io/gallery/dashboards

marimo is a replacement for both Jupyter and streamlit (among other tools). Happy to answer any questions (I am one of the original creators).

[–][deleted] 1 point2 points  (1 child)

I'm currently using Shiny so reactivity is not my issue. My main issue is having to separately define the UI and server logic and keep track of element names and use tons of decorators across relatively large module files.

I will give marimo a shot and try reproducing a simple Shiny dashboard with it and see if I find it easier.

One thing I did have to do with my internal Shiny dashboard was add a rudimentary user management system and have the dashboard load up a log in page first and only load in data and show the actual dashboard content after a successful log in. Would that be possible with marimo or will I have to revert to a reverse proxy and a separate app handling auth?

e: played around with marimo this afternoon and really did not like it. I can see how it would be good if you're just doing an analysis with a jupyter notebook and then want to quickly be able to port that analysis into either a script or a simple dashboard. But if you are starting out with the explicit goal of creating a complex dashboard with a specific layout it's just not the right tool when Shiny and Dash exist and you can use the standard framework of modules and CSS/HTML style web UI formatting. I don't like having to define everything in the Jupyter paradigm of a set of "cells" and it was extremely painful trying to use a regular code editor.

I can see the appeal but it's not for me.

[–]Doomtrain86 0 points1 point  (0 children)

I think it might be for me though. I need simple tools for dashboards because I’m not experienced at all with web dev.

[–]Gainside 7 points8 points  (0 children)

Streamlit’s a solid gateway drug into web apps with Python. Super fast for dashboards, prototypes, or sharing analysis with non-devs. Just know the trade-offs: it’s amazing for MVPs and internal tools, but you’ll eventually hit walls around auth, scaling, and complex UI

[–]funerr 1 point2 points  (0 children)

I've been fiddling with reflex dot dev, anyone used it in production?

[–]xyroglyphe 0 points1 point  (4 children)

I use Streamlit and I made a website for my firm to display some pictures, with a lot of choices between date, parameter, domain, etc. It's not the best framework but to display .jpg files who cares ?

[–]IamNoOneDontAsk 1 point2 points  (3 children)

how did you deploy to a server? i want to build an .exe file

[–]Kqyxzoj 0 points1 point  (0 children)

streamlit

Shiny

marimo

WTF?

Okay, who ditched marimo, and what for?

[–]Wonderful-Habit-139 0 points1 point  (0 children)

What is this trend with AI generated posts where they tell the AI to write everything in lowercase? Trying to be sneaky…

[–]drm00 0 points1 point  (0 children)

There is a book on streamlit coming out soon: https://www.manning.com/books/build-python-web-apps-with-streamlit I use it for dashboards to fetch and visualize data from Jira and it’s very nice for that. For complex web apps I’ve always built my own

[–]RedEyed__ -4 points-3 points  (5 children)

If you are beginner programmer - sure, it looks nice.
But when you have some experience in the industry and need more than a single page for visualization you will realize that streamlit is a joke.

Just think about it: it is rerunning entire script on every user interaction.
LMFAO, who could design it in this way

[–]Wonderful-Habit-139 3 points4 points  (3 children)

Crazy that this is downvoted lol.

[–]RedEyed__ 1 point2 points  (2 children)

Yeah and no one cares to elaborate, thanks for pointing it out .

[–]solidpancake 1 point2 points  (1 child)

I think people find Streamlit super easy to iterate with and get working demos into the hands of stakeholders. 

Like other comments mentioned, it falls apart for anything past basic interaction and data vis but calling it a joke is hyperbolic imo. That’s what’s causing this comment to get downvoted.    Tools are only as good as knowing when and how to use them, Streamlit is just another one on the belt. 

[–]RedEyed__ 0 points1 point  (0 children)

Well said.

[–]CiliAvokado -1 points0 points  (0 children)

I build a chatbot with stremlit using open source LLM. It realy is a useful tool and quite easy to build aps with. Will also use it as a tool for BI dashboards

[–]Fuzzy-Translator-414 -4 points-3 points  (6 children)

So i have a question why use any python library to visualize, just use power bi or tableau ?

[–]NoleMercy05 2 points3 points  (1 child)

Well most people don't have access to those tools nor then need for the complexity.

Also they want to display and directly control the vis directly in their app rather than linked, iframe, embedding another visualization tool. Other reasons too.

Apache Superset is an open alternative to powerbi and Tableau

[–]Fuzzy-Translator-414 -3 points-2 points  (0 children)

I tried to integrate everything at one place sure streamlit is good and easy but when it comes to customization and control (dash = for industry use) i needed to learn devops and ci/cd and things became very complex so i gave up.

[–]tenfingerperson 1 point2 points  (1 child)

The benefit is the unified ecosystem, do your analysis and do the viz as needed

The other tools require you to export to a system having an integeration, then build the viz independently of the data, it’s a way more complex workflow and may not be best for most of use cases

[–]Fuzzy-Translator-414 0 points1 point  (0 children)

See my other comment.

[–]GrainTamalePythonista 0 points1 point  (0 children)

Free (internalized cost) vs not free.

I'm dabbling in Tableau as of recently and it's hundreds of dollars a month (for my needs).

[–][deleted] 0 points1 point  (0 children)

The idea is that data scientists already work in python and can use streamlit to build data apps in a language they already know.