jlevy/simple-modern-uv — explained in plain English
Analysis updated 2026-05-18
Create a new Python project preconfigured with uv, ruff, and pytest in minutes.
Automatically publish a package to PyPI when you tag a release.
Pull future template improvements into your project like a git merge, via Copier.
Read through a small, fully understandable project configuration in about ten minutes.
| jlevy/simple-modern-uv | davestephens/ansible-nas | geerlingguy/internet-pi | |
|---|---|---|---|
| Stars | 281 | 3,735 | 4,687 |
| Language | Jinja | Jinja | Jinja |
| Setup difficulty | easy | hard | moderate |
| Complexity | 2/5 | 4/5 | 3/5 |
| Audience | developer | ops devops | ops devops |
Figures from each repo's GitHub metadata at analysis time.
One command, uvx uvtemplate, walks you through creating a new project.
simple-modern-uv is a starter template for new Python projects. It gives you a ready-made project layout configured with a specific set of modern tools, so you do not have to spend time researching which tools to use or how to wire them together. The template is built around uv, a fast Python package and project manager written in Rust. uv handles installing Python itself, creating isolated environments, managing dependencies, and publishing packages to PyPI. The template adds ruff for code formatting and linting (a faster replacement for the older black and flake8 tools), BasedPyright for type checking (chosen because it works well across VSCode-based editors including Cursor and Windsurf), pytest for running tests, and GitHub Actions for continuous integration and automated publishing to PyPI when you create a release tag. One design goal of the template is to keep it small enough to read in about ten minutes. It is roughly 300 lines of code. The intention is that you can look at everything it includes and understand each choice, rather than inheriting a large amount of configuration you do not fully control. The template uses a tool called Copier for instantiation. Copier lets you copy the template into a new directory and fill in your project name and other details. Unlike simpler template tools, Copier also lets you pull future updates to the template back into your existing project, similar to a git merge, so your project can benefit from improvements over time. The quickest way to use it is to run uvx uvtemplate in a terminal. That command walks you through creating a new project from the template. Alternatively, you can run Copier directly, or use the GitHub template button to copy the repository. The template does not include Docker, private package repositories, documentation site generation, or Conda support. Those can be added manually if needed.
A starter template that sets up a new Python project with modern tools like uv, ruff, and pytest already configured.
Mainly Jinja. The stack also includes Python, uv, ruff.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.