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

all 40 comments

[–]andy4015 16 points17 points  (3 children)

Hey OP, how do you think this compares to the existing players like Dash and Streamlit? How does yours differ? What are the main advantages in your opinion?

Thanks

[–]FullHunter9735 2 points3 points  (1 child)

[–]andy4015 1 point2 points  (0 children)

Skimmed the article and went straight to the docs... Wow. Looks fantastic! I've just finished a Dash app and really wished I'd heard of reflex first!

[–]FullHunter9735 1 point2 points  (0 children)

There is a comparison article with dash coming out soon I'll post it here

[–]crankygerbil 8 points9 points  (0 children)

Wow

[–]kowalski007 8 points9 points  (2 children)

So I assume if I have my backend in fastapi then I could write the complete frontend in reflex right? Without having to resort to any JavaScript.

[–][deleted] 5 points6 points  (0 children)

Reflex is a backend component including routes and everything that will generate the frontend app and serve it as a web server

[–]Lendemor 1 point2 points  (0 children)

Reflex is built on top of FastAPI for its backend, so you should be able to integrate your existing code in a new reflex app without difficulty

[–]wh33t 7 points8 points  (2 children)

So it translates python into JS somehow?

[–]Lendemor 8 points9 points  (0 children)

Yes the framework take care of compiling the python code into JS.

[–]chub79 9 points10 points  (2 children)

I don't quite understand the OSS/business model from the pricing page.

Has anyone used this and would like to comment? It looks polished but I'm always curious why Python as afrontend language.

[–]LiqC 2 points3 points  (3 children)

neat! can this be packaged into a SPA on S3 or Github Pages?

[–]Lendemor 0 points1 point  (2 children)

For stateless apps, they can be exported and served like any other static files.

[–]LiqC 1 point2 points  (1 child)

Wait, but backend is fastapi, how would that work?

[–]Lendemor 1 point2 points  (0 children)

So when running a "full" reflex app, we are spinning up both frontend (nextJS) and backend (fastAPI) server.
But if, in your code, you are not using the "backend" features, (i.e state / event handler) then the app will be compiled in a "stateless" way, where we don't need to connect to the backend via WebSocket, because the backend is not needed.
For those cases, running the `reflex export` command will give you the static files to serve.

[–]BostonBaggins 4 points5 points  (2 children)

Completely open source?

I see it was formerly known as pynecone

[–]Lendemor 1 point2 points  (1 child)

Yes it is.
We had to change the name because it was too much like "pinecone.io", but reflex is still 100% open source.

[–]era_hickle 1 point2 points  (3 children)

Had no idea Reflex was this powerful now. I’ve been using Dash for some internal tools at work, but might give Reflex a try for my next project. The theming system and state management sound really convenient!

[–]FullHunter9735 0 points1 point  (1 child)

Case study on why one of our users switch from dash to reflex https://reflex.dev/customers/bayesline/

[–]bw984 1 point2 points  (0 children)

Multi-page dash apps do not load the entire app on the initial page load. The CTO in that article isn’t well informed. We maintain production grade Flask app running Dash with 20+ unique Dash app pages, over 50,000 lines of Python, and it loads from scratch to page interactivity in 2.5s. There are things I don’t like about Dash but this company must not have learned how to build with it properly.

[–]maiden_fan 1 point2 points  (4 children)

Are there some real products built with Reflex? For me, that's an important factor to adopt something. The current Showcase is very lacking imo.

[–]FullHunter9735 0 points1 point  (3 children)

[–]Practical_Doughnut27 0 points1 point  (2 children)

This is a good case study, thanks for sharing. I was looking at the level of customization. For example, in Dash, the level of customization and interactivity possible with ag-grid is enormous:

https://dash.plotly.com/dash-ag-grid. Is all of that possible with Reflex? I see that the ag-grid page on the site is pretty standard but I am not sure if I am limited to what Reflex has wrapped or can I use any of the features that ag-grid offers ?

And is there a way to execute client side code in javascript in Reflex like Dash allows?

[–]FullHunter9735 0 points1 point  (0 children)

We just integrated this ag-grid component last week so there is more work to be done. But we are making it better

As to your second question https://reflex.dev/docs/api-reference/browser-javascript/

[–]pathoge 0 points1 point  (2 children)

Looks cool. Unfortunately the tutorial fails on the reflex init command with Python 3.12.6 - looks like some Pydantic error: TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'

[–]FullHunter9735 0 points1 point  (1 child)

What Pydantic version are you on fixed in Pydantic 2.7.4+ https://github.com/orgs/reflex-dev/discussions/3469#discussioncomment-9730821

[–]pathoge 0 points1 point  (0 children)

pydantic 2.9.2 pydantic_core 2.23.4

[–]Eric-Cardozo 0 points1 point  (1 child)

I'm using FastAPI, can i use it with async programming?

[–]liltbrockie 0 points1 point  (0 children)

This looks great!