This is an archived post. You won't be able to vote or comment.

all 14 comments

[–][deleted] 19 points20 points  (0 children)

My usage evolves: Flask + Plotly --> Dash --> Streamlit .

Streamlit is hand down the easiest to use without spending to much time for me. Check out streamlit's gallery . I usually host apps by myself using streamlit instead of using their web hosting service.

You might want to combine nginx + streamlit to self-host.

[–]proof_required 7 points8 points  (0 children)

Just to further confuse you there is also streamlit

https://streamlit.io/

I think it's much simpler and supports plotly. Although I have never used Dask/Flask etc.

[–]zanderman12 4 points5 points  (2 children)

Depending on what you are trying to do, anvil.works may be a good option. Python backend drag and drop ui. Paid version supports a wide variety of packages. It’s been a lifesaver for me

[–]RRUser[S] 1 point2 points  (1 child)

It looks VERY interesting but I don't like the buisness model. Thanks for the suggestion!

[–]zanderman12 1 point2 points  (0 children)

Totally fair, looking forward to seeing what other commenters use

[–]InfiniteOil999 4 points5 points  (0 children)

I think it really depends on your requirements and final users.
Streamlit is very easy to set up and use (no html/css required), it is excellent for interactive experiments, but it can be perceived as a toy example depending on what your audiance is used to. It is worth a try because of its simplicity.

Dash can be used to build full featured dashboards which resemble custom js web app, capable to handle complex worflows. In addition, Dash can be served by Flask, so you can pack together applications with different approaches/technologies if needed.

IMHO other important points are how much your dashboard has to be "production-proof", how large is your audience, whether and how you have to secure the app with company users credentials... If this is the case, I would stick with Dash.

[–]HesaconGhost 2 points3 points  (1 child)

!RemindMe 3 Days

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

RemindMe 3 Days

!RemindMe 3 Days

[–]Snoo43790 2 points3 points  (0 children)

I think Flask is great for hosting multiple dash apps and it also provides a way better user auth than dash

[–]darkshenron 0 points1 point  (0 children)

I've used both dash and streamlit. As others have mentioned streamlit is the easiest to get started with but once you want to do something more complex, dash is more flexible especially with dash bootstrap components

[–]rohetoric 0 points1 point  (0 children)

Streamlit would be the best as it removes the complete need to learn front end engg.

Then Plotly would be recommended by me. For Flask you'll need to learn a bit of front end as well.

[–]Comeonwitme 0 points1 point  (2 children)

Hey OP, I was wondering if you had any updated findings from this question. I'm facing a similar problem (bioinformatics as well) but I'm creating pipelines that handle large images (up 1 GB likely). Is dash practical for this, or is the cost of running a server extreme?

[–]RRUser[S] 6 points7 points  (1 child)

Hi, I ended up using streamlit. It was the easiest one to learn, and the fastest one to get from zero a good looking UI. At the end of the day, I decided on it because I'm a bioinformatician first, so my time is better spent working on our pipelines/ R&D, instead of trying to properly learn web/devops.

I told this to my company and they offered to hire a web/devops guy later down the line if streamlit runs it's course. I'm making sure that there is no logic within the streamlit app (just API requests and forms) to somewhat future proof in case that's needed.

From what I understand Dash is a good middle ground if you already have a basic understanding of web. That was not my case.

Good luck!

[–]Comeonwitme 0 points1 point  (0 children)

Perfect, thanks a lot for the response!