1 comments

  • ritwiktiwari 3 hours ago
    I got tired of spending 30-60 minutes setting up the same Python project boilerplate every time: pyproject.toml, GitHub Actions, pre-commit, MkDocs, Dockerfile. So I built a Copier template that does it in one command.

    What it sets up:

    - uv for package management (10-100x faster than pip)

    - ruff for linting + formatting (replaces flake8, black, isort)

    - ty for type checking (Astral's Rust-based type checker)

    - pytest + hatch for multi-version matrix testing

    - prek for git hooks (Rust-based pre-commit alternative)

    - MkDocs with Material theme + mkdocstrings

    - GitHub Actions CI/CD with release automation

    - Docker multi-stage build with non-root user

    - git-cliff for changelog generation from conventional commits

    - Typer CLI scaffold

    Why Copier over cookiecutter:

    Copier supports copier update — you can pull template improvements into existing projects. With cookiecutter you're stuck with a snapshot.

    Try it: uvx copier copy --trust gh:ritwiktiwari/copier-astral my-project

    Repo: https://github.com/ritwiktiwari/copier-astral

    Docs: https://ritwiktiwari.github.io/copier-astral/

    Example output: https://github.com/ritwiktiwari/copier-astral-example