Reflex Changelog · Reflex Docs
For AI agents: the complete documentation index is at llms.txt. Markdown versions are available by appending .md or sending Accept: text/markdown.
Reflex Changelog
v0.9.10 (2026-09-01)
Bug Fixes
- Shared state updates now reach linked clients connected to other backend instances — the fan-out previously skipped any client whose websocket was not connected to the instance processing the event, so with redis and multiple workers only same-instance clients received live updates. ( #6934)
- Allow static IDs on document-root head components without generating React hooks. ( #7005)
v0.9.9 (2026-08-28)
Breaking Changes
pip install reflexno longer installspydantic; pydantic model support activates when it is installed. Use the newreflex[pydantic]extra (orreflex[db]) to keep it. ( #6786)- The compiled frontend now targets React Router 8.3.0 (from 7.18.2), and Reflex requires Node 22.22.0 or newer as a result. Apps on the default generated setup need no
rxconfig.pyor app code changes. One change is required if you wrote a custom component againstreact-router-dom: that package no longer exists upstream and is no longer installed, solibrary = "react-router-dom"must becomereact-router(orreact-router/domforRouterProvider/HydratedRouter). ( #6854) - A
RegistrationContextcan only be associated with a singleAppinstance, so creating a second barerx.App()in one process now raisesReflexRuntimeError(0.9.8 allowed it); use a freshRegistrationContext(e.g.RegistrationContext.fork()) to create multiple apps. ( #6382)
Changelog Summary
- reflex
- reflex-base
- reflex-components-code
- reflex-components-core
- reflex-components-dataeditor
- reflex-components-lucide
- reflex-components-markdown
- reflex-components-moment
- reflex-components-plotly
- reflex-components-radix
- reflex-components-react-player
- reflex-components-recharts
- reflex-components-sonner
- reflex-docgen
- reflex-enterprise
- reflex-hosting-cli
- reflex-release
v0.9.8 (2026-08-04)
Features
- Added content-hash cache busting to
rx.assetURLs. ( #6550) - Add a
previewrun mode (reflex run --env preview) that hot reloads likedevbut serves a freshly built, un-minified frontend bundle mounted into the backend instead of running the Vite dev server. Minification, CSS minification, autoprefixer, and sourcemaps are disabled by default for faster rebuilds and readable output (each overridable viaVITE_MINIFY,REFLEX_NO_AUTOPREFIXER, andVITE_SOURCEMAP). ( #6663) - Support using mutable state proxies as async context managers. ( #6689)
Performance Improvements
- Remove the per-update
asyncio.create_taskwrapper inEventNamespace.emit_update, cutting scheduling overhead roughly in half for every outgoing state update. ( #6734) - Speed up reading mutable state vars (lists, dicts, dataclasses) through
MutableProxy. The per-element check that detectsdataclasses.asdict/astuplerecursion now readsframe.f_code.co_filenamedirectly instead of callinginspect.getfile(), cutting proxy read overhead by roughly 3-4x on large containers without changing behavior. ( #6600)
Miscellaneous
- Introduced towncrier-based changelog management. Each PR that changes package source now adds a fragment under the affected package's
news/directory; fragments are assembled intoCHANGELOG.mdat release time. See CONTRIBUTING.md for the full workflow. ( #6350)
Built with Reflex.