Summary
All documentation examples and the base project template should use uv as the recommended Python package manager, replacing pip + requirements.txt with uv + pyproject.toml. This gives users strong dependency locking by default via uv.lock.
Motivation
uv provides fast, reliable dependency resolution with a proper lock file (uv.lock) out of the box — no extra steps needed.
requirements.txt does not support locking transitive dependencies without additional tooling (pip freeze, pip-tools, etc.), which most users skip.
- Aligning on
uv improves supply chain security posture for the Python side of Reflex apps, complementing efforts to lock JS dependencies as well.
uv is rapidly becoming the standard in the Python ecosystem and is what many users already expect.
Proposed Changes
- Base template: Update
reflex init templates to generate a pyproject.toml instead of (or in addition to) requirements.txt. Include reflex as a dependency with a version constraint.
- Documentation: Update all installation and quickstart guides to use
uv commands (e.g. uv init, uv add reflex, uv run reflex init) instead of pip install.
- README / Getting Started: Reflect the
uv-first approach in the repo README and any onboarding materials.
- Backward compatibility: Continue to support
pip and requirements.txt for users who prefer it, but make uv the recommended default.
Summary
All documentation examples and the base project template should use
uvas the recommended Python package manager, replacingpip+requirements.txtwithuv+pyproject.toml. This gives users strong dependency locking by default viauv.lock.Motivation
uvprovides fast, reliable dependency resolution with a proper lock file (uv.lock) out of the box — no extra steps needed.requirements.txtdoes not support locking transitive dependencies without additional tooling (pip freeze,pip-tools, etc.), which most users skip.uvimproves supply chain security posture for the Python side of Reflex apps, complementing efforts to lock JS dependencies as well.uvis rapidly becoming the standard in the Python ecosystem and is what many users already expect.Proposed Changes
reflex inittemplates to generate apyproject.tomlinstead of (or in addition to)requirements.txt. Includereflexas a dependency with a version constraint.uvcommands (e.g.uv init,uv add reflex,uv run reflex init) instead ofpip install.uv-first approach in the repo README and any onboarding materials.pipandrequirements.txtfor users who prefer it, but makeuvthe recommended default.