Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-07-01 | 13.2 kB | |
v0.8.0 source code.tar.gz | 2025-07-01 | 2.8 MB | |
v0.8.0 source code.zip | 2025-07-01 | 3.0 MB | |
Totals: 3 Items | 5.9 MB | 0 |
https://github.com/user-attachments/assets/42b95d7f-8d5a-4e21-a12e-9f1f082cf4ec
Release Notes
Breaking Changes
Local JS files
If your app included local .js
files (from assets or elsewhere), and those files contain JSX syntax, they must be renamed with a .jsx
suffix now.
REMOVED DEPRECATIONS
The following has been removed and was previously deprecated:
-
UploadFile.filename, deprecated in
0.7.1
. UseUploadFile.name
instead (which strictly returns the file name with no slashes or such). To get the full path, useUploadFile.path
. -
App.error_boundary, deprecated in
0.7.1
. UseApp.app_wraps
(which has other app wraps as well, most likely you would like to provide those, as well as your different error wrap). -
App.api
, deprecated in0.7.9
. Useapi_transformer=your_fastapi_app
instead. Read: https://reflex.dev/docs/api-routes/overview#api-transformer -
App.add_custom_404_page
, deprecated in0.6.7
. Use add_page with/404
route instead. -
Component.__init__
, deprecated in0.7.2
. Now it only inits the component and doesn't call post init to add events and such. -
Non prefixed config env vars, deprecated in
0.7.13
. Things like ENV_FILE now have to be passed explicitly as `REFLEX_ENV_FILE. -
Gunicorn configuration env variables, deprecated in
0.7.9
. Removed:timeout
,gunicorn_worker_class
,gunicorn_workers
,gunicorn_max_requests
,gunicorn_max_requests_jitter
. If you would like to customize those, I encourage you to either call gunicorn directly (reflex.App is a factory for ASGI apps), or do so using gunicorn environment variable flags. -
Inferring TailwindV3, deprecated in
0.7.13
. We assume no Tailwind unless explicitly enabled through the plugins config. -
get_decorated_pages
, deprecated in0.7.9
. If you need to use a similar function you most likely need to implement your own page registry. -
validate_parameter_literals
, deprecated in0.7.11
. I don't think anyone but us used this function but it's nonetheless removed now. -
Var._var_name
,Var._var_name_unwrapped
,Var.create_safe
, andVar._type
. All deprecated in various releases. All have better named equivalents.
This was done in this PR:
- [0.8] remove a bunch of deprecation by @Lendemor in https://github.com/reflex-dev/reflex/pull/5422
[MAJOR REWRITE] Replace Next with React Router
NextJS has served us well, but the needs of the framework has grown and we hit certain limits that made NextJS a suboptimal choice. To not go too long, compilation times and other factors have encouraged us to cut down on a big dependency that we barely use most of its features.
- [0.8] [ENG-5825] remix over next by @adhami3310 in https://github.com/reflex-dev/reflex/pull/4984
Breaking Changes
THIS MOST DEFINITELY HAS BREAKING CHANGES. Especially if you used something deeply attached to how JS works. During this prerelease we are going to triage regressions and fix them til they are at an acceptable state.
- Static exports are now stored in
.web/build/client
(instead of.web/_static
)
[REMOVED] reflex.suneditor
We have moved suneditor to its own package: https://github.com/reflex-dev/reflex-suneditor
-
deprecate suneditor by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5407
-
[0.8] remove a bunch of deprecation by @Lendemor in https://github.com/reflex-dev/reflex/pull/5422
[REMOVED] Experimental layout
We will be leaning more heavily into less in the core package (where less, is less opinionated UI).
- remove experimental layout and clean up old experiments by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5392
[Major Rewrite] rx.State no longer inherits from Pydantic
rx.State is now a simple python Class. Nothing that fancy. The changes were made to be backwards compatible but you can optionally use rx.field(...)
(or rx.field(default_factory=...)
) to define fields more explicitly.
- [0.8] remove pydantic as a base class of state by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5396
- fix missing value for mutable state field leading to shared field value by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5416
[BREAKING] rx.Component.get_event_triggers is now a classmethod
We still invoke it mostly from a self context, but you should port it to be a classmethod.
- [0.8] get_event_triggers should be classmethod by @Lendemor in https://github.com/reflex-dev/reflex/pull/5344
[Major Rewrite] Remove Pydantic as a dependency of PropsBase
You can use it as before, it's just not a Pydantic class. (TODO: add code here about using component field)
- remove pydantic dependency for PropsBase by @Lendemor in https://github.com/reflex-dev/reflex/pull/5384
Enable TailwindV4 by default
Newly generated apps with reflex init will have the tailwindV4 plugin enabled by default instead of the v3 one.
- tailwind v4 by default and other cleanups by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5435
Add earlier checks for wrong app names
If you had your name named wrong, now we check that a tad bit earlier in the compile process and with a more helpful message.
- add a check if app_name is wrong in rxconfig by @Lendemor in https://github.com/reflex-dev/reflex/pull/5410
Additional Event Info
Now you can use information about the pointer (the mouse thingy) in pointer events. (TODO: remind me to write an example here).
Also you could use on_scroll_end when.. the scroll ends! Unless you are in Safari, in which case you have to wait until they implement that :/
- pass pointer info for on_click, on_double_click, and on_context_menu by @Lendemor in https://github.com/reflex-dev/reflex/pull/5391
- add on_scroll_end event by @Lendemor in https://github.com/reflex-dev/reflex/pull/5401
Improved Error Messaging that contains Vars
If you noticed some weird "rx__state__..." names, those are backend vars JS output. Now we strip those form compilation errors and replace them with what you might expect as more normal names. (TODO, add concrete examples)
- replace compiled state name with module and name in errors by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5381
Add suffix to user defined vars to avoid clash with JS keywords
Javascript has a decent amount of keywords, and sometimes you might accidentally call your variable package
and get a syntax error. This should solve this.
- [0.8] don't use reserve words for variable names by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5251
Built-in style reset
rx.App
now has a parameter named reset_style
that is True by default. It's there if you are not using Tailwind and you want to reset differences between the browsers.
- fix default body style by @Lendemor in https://github.com/reflex-dev/reflex/pull/5468
Hot reload with REFLEX_ENV_FILES
If you are using Granian, now we pass the REFLEX_ENV_FILES environment flag for it to watch its changes.
- reload env file on hot reload in granian by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5510
- use granian env_files option instead of reload hook by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5512
Bugfixes
- [ENG-2566] Fix accordion style without Tailwind by @masenf in https://github.com/reflex-dev/reflex/pull/5445
- handle the reload directory better if there's init.py next to rxconfig.py by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5437
- pin dynamic lucide icon by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5439
- make windowed library into a list because of recompilation inconsistencies by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5436
- fix HMR for RR by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5456
- do not export local stateful component by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5462
- Sort initial state to avoid spurious changes to context.js by @masenf in https://github.com/reflex-dev/reflex/pull/5463
- make run dev run react router dev instead of vite dev by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5460
- always install react helmet by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5466
- put __reflex_global_styles in a link by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5471
- stip env vars before interpreting them by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5470
- ENG-6363: remix: ignore some changes in .web to reduce reloads by @masenf in https://github.com/reflex-dev/reflex/pull/5473
- dedupe windowed libraries at the end by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5482
- avoid side effects of checking app module existing by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5480
- fix get_value and add unit tests by @Lendemor in https://github.com/reflex-dev/reflex/pull/5485
- move dynamic plotly to react lazy syntax by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5492
- Ensure __reflex_base CSS is declared first by @masenf in https://github.com/reflex-dev/reflex/pull/5493
- always send on load even on going on the link by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5469
- Import
useEffect
normally by @masenf in https://github.com/reflex-dev/reflex/pull/5501 - Read routes from _unevaluated_pages by @masenf in https://github.com/reflex-dev/reflex/pull/5503
- Include default metas for char_set and viewport by @masenf in https://github.com/reflex-dev/reflex/pull/5500
- remove init requirement to figure out if the app exists by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5507
- detect if port is used on IPV6 by @Lendemor in https://github.com/reflex-dev/reflex/pull/5508
- ENG-6500: Add vite-plugin-safari-cachebust to smooth out HMR issues by @masenf in https://github.com/reflex-dev/reflex/pull/5513
Misc
- add generic field to get_state in proxy by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5415
- ENG-6309: Remove on-demand prism code language loading by @masenf in https://github.com/reflex-dev/reflex/pull/5453
- copy /route/index.html to /route.html by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5455
- provide default value for theme context by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5461
- bring back the "route" in router data by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5483
- clean up random fields that aren't marked correctly as not javascript fields by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5484
- improve hot reload times in granian even more by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5499
- add better error logs for when dill or pickle fail by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5502
Chores
- upgrade to 0715 by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5379
- simplify readme image by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5386
- make args spec handle subclasses of vars by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5390
- [OPS-355] highlight reflex build by @LineIndent in https://github.com/reflex-dev/reflex/pull/5347
- bump deps by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5406
- upgrade to 080 for future development by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5412
- no sync after install for reflex-web by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5431
- allow reuse of pyi_generator by parsing args by @Lendemor in https://github.com/reflex-dev/reflex/pull/5444
- add -v for integration pytest by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5448
- bump deps 080 one last time before prerelease by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5449
- add tests for sitemap by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5451
- fix various unprefixed envs by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5457
- docker-example: update .web/_static to .web/build/client by @masenf in https://github.com/reflex-dev/reflex/pull/5459
- clean up next references by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5454
- rework poll for result by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5464
- Create Beta MCP_README by @Alek99 in https://github.com/reflex-dev/reflex/pull/5395
- improve pyi generation to not output type ignores by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5487
- bump click minimum dep by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5489
- remove psutil as a required dep (except in a windows) by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5498
- bump frontend deps for 080 by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5496
- remove axios in favor of fetch by @adhami3310 in https://github.com/reflex-dev/reflex/pull/5497
Full Changelog: https://github.com/reflex-dev/reflex/compare/v0.7.14...v0.8.0