Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reflex Roadmap #2727

Open
7 of 18 tasks
picklelo opened this issue Feb 27, 2024 · 8 comments
Open
7 of 18 tasks

Reflex Roadmap #2727

picklelo opened this issue Feb 27, 2024 · 8 comments
Assignees

Comments

@picklelo
Copy link
Contributor

picklelo commented Feb 27, 2024

NOTE: We recently released Reflex 0.4.0 with new core components and a theming system - see the blog post for more info and for a guide on upgrading existing projects.


This page is a living document outlining the major projects we're working on next for reflex 0.5.0. The projects are ordered more-or-less in the order we plan to complete them.

Feel free to comment to leave feedback or upvote any issues you'd like to see prioritized, and we welcome outside contributions for any issues.

Focus for 0.5.0 and Beyond

Stability: As we approach our 1.0 release, we're focused on making our core API stable and limiting breaking changes so Reflex can be a solid foundation for long-term projects.

Simplicity: We want to improve the out of the box experience so users can focus on their ideas rather than implementation. This includes building a 3rd party component ecosystem, as well as simplifying the APIs for many of our core components.

Speed: Reflex apps should be fast, both for the end user and for the developer. We have projects to make sure apps stay fast as they grow in size, and to improve the compile / hot-reload times so devs can iterate quickly when building.

Roadmap 0.5.0 (Target Release: May 6, 2024)

Roadmap 0.6.0

Performance

Usability

  • Improve out of the box layout of apps
  • High Level API for Core Components
  • DataTable / DataEditor Improvements
  • Graphing Improvements
  • Consistent Theming
  • Simplify Component Type Annotations
  • Responsive Support For All Props
  • Decentralized Var Operations

REF-2092

Please leave comments on what you think about this tentative plan.

@picklelo picklelo changed the title Reflex 0.5.0 Roadmap [REF-2092] Reflex 0.5.0 Roadmap Feb 27, 2024
@Alek99 Alek99 pinned this issue Feb 27, 2024
@Alek99 Alek99 changed the title [REF-2092] Reflex 0.5.0 Roadmap [REF-2092] Reflex 0.5.0 Roadmap [WIP] Feb 27, 2024
@Alek99 Alek99 changed the title [REF-2092] Reflex 0.5.0 Roadmap [WIP] Reflex 0.5.0 Roadmap [WIP] Feb 27, 2024
@abulvenz
Copy link
Contributor

Firstly, I ❤️ like the plans and think the three main goals are a good focusing point for 0.5.0.
One minor drop of bitterness (at least for my current code):
Remove the middleware 🙀 ? I would need new ideas for authorization then. I do not want to rely entirely on the routing and if-statements. What are the ideas how authorization (I don't mean solely authentication here) might be added to an app?
Other things that middleware is good for: Checking when the last action of a user had been carried out. Conditionally having fine-grained influence on states. Debugging event orders by mere printing.
Maybe there are plans to have a similar mechanism that replaces this nice (not tremendously over-documented ;) feature?

@benedikt-bartscher
Copy link
Contributor

Awesome, love to see how reflex evolves! 🚀
Is Pydantic v2 fixed on this roadmap? If so, I would offer my help regarding SQLAlchemy support and adjust my affected PRs to pydantic v2.

@picklelo
Copy link
Contributor Author

@abulvenz Thanks for the feedback - I will modify that project, we don't want to break any existing functionality.

We want to move certain internal events like the initial state hydration away from using middleware, but we will still have easy ways to support other use cases.

@picklelo
Copy link
Contributor Author

@benedikt-bartscher Yes we either want to upgrade to Pydantic v2.0 for the performance and compatibility benefits

In the long-term we can potentially remove the Pydantic dependency altogether and use Python dataclasses, since we don't use many of its features anymore internally. Though that would require moving away from FastAPI and SQLModel, so not planned anytime soon.

@cllatser
Copy link
Contributor

cllatser commented Mar 2, 2024

Hi everyone, as I have said before. I have been programming for a short time, I did a Python Bootcamp and for the final project I used Reflex when it was called Pynecone. I could have used Django or Flask, but I chose Reflex because I think it will have a future.

What would I like from Reflex 1.0?

Let's see if I can explain. I would like Reflex to be from a base agnostic of any external framework, using as it can be done now 100% html and css. So as not to depend on third party libraries, such as Astro (Javascript).

From there, when starting the project the user will be asked whether or not to use a framework or not, for example Radix-Ui, Taildwind.

Then the ability to share components with (3rd Party Component Ecosystem) seems to me great.

Good job to all the team, long life to Reflex.

Best regards.

@dentro-innovation
Copy link

Perhaps these thoughts help you in finding the right direction for your product.

Started to use reflex because:

  • wanted same coding language as most ML frameworks -> python
  • wanted a low code tool that's flexible. Using little code to achieve common use cases with the possibility to customize easily
  • wanted frontend and backend in one, allowing for a single code base that can handle auth and user management
  • used streamlit before, but can't build any serious project with it because customizing look of components is a pain, page randomly refreshes deleting existing state, weird logic where the code is rendered top to bottom making common use cases difficult to implement (or at least much different)
  • need to be able to self-host it for GDPR critical use cases

Like it even more since I started:

  • wrappers of 3rd party libraries like motion
  • askInkeep on discord
  • team on discord is very responsive
  • hosted version for non GDPR criticial use cases
  • lots of inbuilt components that actually do work out of the box such as file upload or scrollable area

@include
Copy link

include commented Mar 21, 2024

Really like to see the "Simplicity" point here. box system is really a pita :) - thank you for Reflex!

@picklelo picklelo changed the title Reflex 0.5.0 Roadmap [WIP] Reflex 0.5.0 Roadmap Apr 3, 2024
@Sprocketer
Copy link

@benedikt-bartscher Yes we either want to upgrade to Pydantic v2.0 for the performance and compatibility benefits

In the long-term we can potentially remove the Pydantic dependency altogether and use Python dataclasses, since we don't use many of its features anymore internally. Though that would require moving away from FastAPI and SQLModel, so not planned anytime soon.

@picklelo In terms of improving performance - I'm not sure how much Javascript next.js (which seems to be under the hood) uses, but have you seen Astro? Seems to be super fast because it renders static JS components as HTML. Might be a reach, but maybe there's some way to include something similar at build-time?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants