Skip to content

Latest commit

History

History
183 lines (127 loc) · 7.59 KB

File metadata and controls

183 lines (127 loc) · 7.59 KB

Create Awesome Python App

The open-source monorepo behind create-awesome-python-app: compose templates and addons into production-ready Python, FastAPI, Django, Celery, CLI, and uv workspace projects.

One command. Any stack.

CI TestsLintTypecheckPyPIPyPI DownloadsDockerAURHomebrewLicense: MITDiscord

Package README · Official Site · Templates · Extensions · Contributing · Troubleshooting


What This Repo Contains

This repository contains the source code for create-awesome-python-app, the CLI that composes curated templates, addons, custom options, and AI-ready conventions into working projects.

Use this README if you want to understand the codebase, run it locally, contribute a fix, improve documentation, or work on the CLI packages. If you only want to generate an app, start with the package README.


Quick Start For Users

uvx create-awesome-python-app@latest my-app

Run headlessly for scripts, CI, or platform automation:

uvx create-awesome-python-app my-api \
--template fastapi-starter \
--addons github-setup \
--addons fastapi-sqlalchemy \
--no-interactive

More examples live in the CLI package README.


Ecosystem

RepositoryRole
create-python-app (this repo)CLI (create-awesome-python-app) and scaffolding engine (create-python-app-core)
cpa-templatesOfficial templates and extensions (templates.json catalog)
websiteDocs + catalog UI (create-awesome-python-app.vercel.app)
homebrew-tapHomebrew formula
aur-packageAUR PKGBUILD mirror

The CLI fetches the catalog from:

https://raw.githubusercontent.com/Create-Python-App/cpa-templates/main/templates.json

Override with CPA_CATALOG_URL for forks or local testing (file:// supported).


Repository Map

This is a virtual uv workspace: the root is not published; packages live under packages/* and share one uv.lock / .venv.

PathPurpose
packages/create-awesome-python-appMain CLI package (Typer), interactive wizard, catalog listing
packages/create-python-app-coreScaffolding engine: resolve sources, merge layers, install, git init
docs/Brand, troubleshooting, migration, distribution, versioning
.github/workflowsCI, release, Docker / Homebrew / AUR publish, distribution smoke

Template and extension data is maintained in Create-Python-App/cpa-templates. This repo consumes that catalog remotely.

create-python-app/ # virtual workspace root (no [project] table)
├── pyproject.toml # [tool.uv.workspace] members = ["packages/*"]
├── uv.lock
├── .venv/
└── packages/
├── create-python-app-core/ # scaffolding engine
└── create-awesome-python-app/ # CLI (depends on core via workspace)

Local Development

Requires Python 3.12+ (pinned in .python-version) and uv:

git clone https://github.com/Create-Python-App/create-python-app.git
cd create-python-app
uv sync --group dev
uv run create-awesome-python-app --help

Non-interactive local smoke test:

uv run create-awesome-python-app smoke-app \
--template fastapi-starter \
--addons github-setup \
--no-interactive \
--no-install

Install git hooks: uv run pre-commit install


Development Commands

TaskMakeEquivalent
Install workspacemake syncuv sync --group dev
Testsmake testuv run pytest
Lintmake lintuv run ruff check .
Type-checkmake typecheckuv run pyright
Build packagesmake builduv build --all

Install Channels (published package)

# PyPI / uv
uvx create-awesome-python-app@latest my-app
# Homebrew
brew tap Create-Python-App/tap
brew install create-awesome-python-app
# AUR
yay -S create-awesome-python-app
# Docker
docker run --rm -it -v "${PWD}:/app" -w /app \
ulisesjeremias/create-awesome-python-app:latest my-app \
--template fastapi-starter

Published image: ulisesjeremias/create-awesome-python-app

Local image build (installs the given PyPI version into the image):

docker build --build-arg VERSION=0.2.5 -t create-awesome-python-app .
docker run --rm create-awesome-python-app --help

License

MIT — see LICENSE.

Reference

👥 Contributors

Contributors

Made with contributors-img.