1- # create-python-app
1+ <!-- lint disable double-link awesome-heading awesome-git-repo-age awesome-toc-->
2+
3+ <div align =" center " >
4+
5+ # Create Awesome Python App
6+
7+ ** 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.**
8+
9+ One command. Any stack.
210
311[ ![ CI Tests] ( https://github.com/Create-Python-App/create-python-app/actions/workflows/test.yml/badge.svg )] ( https://github.com/Create-Python-App/create-python-app/actions/workflows/test.yml )
412[ ![ Lint] ( https://github.com/Create-Python-App/create-python-app/actions/workflows/lint.yml/badge.svg )] ( https://github.com/Create-Python-App/create-python-app/actions/workflows/lint.yml )
917[ ![ Homebrew] ( https://img.shields.io/badge/homebrew-Create--Python--App%2Ftap-orange?logo=homebrew )] ( https://github.com/Create-Python-App/homebrew-tap )
1018[ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( ./LICENSE )
1119
12- Composable scaffolding CLI for production-ready Python apps.
20+ [ Package README ] ( ./packages/create-awesome-python-app/README.md ) · [ Official Site ] ( https://create-awesome-python-app.vercel.app ) · [ Templates ] ( https://create-awesome-python-app.vercel.app/templates ) · [ Extensions ] ( https://create-awesome-python-app.vercel.app/extensions ) · [ Contributing ] ( ./CONTRIBUTING.md ) · [ Troubleshooting ] ( ./docs/TROUBLESHOOTING.md )
1321
14- > ** Status: ** CLI monorepo bootstrapped. Template bank: [ ` cpa-templates ` ] ( https://github.com/Create-Python-App/cpa-templates ) . Roadmap: [ # 1 ] ( https://github.com/Create-Python-App/create-python-app/issues/1 ) .
22+ </ div >
1523
16- ## Ecosystem
24+ ---
1725
18- | Repository | Role |
19- | ------------| ------|
20- | [ create-python-app] ( https://github.com/Create-Python-App/create-python-app ) (this repo) | CLI (` create-awesome-python-app ` ) and scaffolding engine (` create-python-app-core ` ) |
21- | [ cpa-templates] ( https://github.com/Create-Python-App/cpa-templates ) | Official templates and extensions (` templates.json ` catalog) |
22- | [ homebrew-tap] ( https://github.com/Create-Python-App/homebrew-tap ) | Homebrew formula |
23- | [ aur-package] ( https://github.com/Create-Python-App/aur-package ) | AUR PKGBUILD mirror |
26+ ## What This Repo Contains
2427
25- The CLI fetches the catalog from:
28+ This repository contains the source code for [ ` create-awesome-python-app ` ] ( https://pypi.org/project/create-awesome-python-app/ ) , the CLI that composes curated templates, addons, custom options, and AI-ready conventions into working projects.
2629
27- ` https://raw.githubusercontent.com/Create-Python-App/cpa-templates/main/templates.json `
30+ 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 ] ( ./packages/create-awesome-python-app/README.md ) .
2831
29- Override with ` CPA_CATALOG_URL ` for forks or local testing ( ` file:// ` supported).
32+ ---
3033
31- ## Install
34+ ## Quick Start For Users
3235
3336``` bash
34- # PyPI / uv
3537uvx create-awesome-python-app@latest my-app
36-
37- # Homebrew
38- brew tap Create-Python-App/tap
39- brew install create-awesome-python-app
40-
41- # AUR
42- yay -S create-awesome-python-app
43-
44- # Docker
45- docker run --rm -it -v " ${PWD} :/app" -w /app \
46- ulisesjeremias/create-awesome-python-app my-app
4738```
4839
49- Or pin a version :
40+ Run headlessly for scripts, CI, or platform automation :
5041
5142``` bash
52- uvx create-awesome-python-app@0.1.0 my-app --template fastapi-starter --no-interactive
43+ uvx create-awesome-python-app my-api \
44+ --template fastapi-starter \
45+ --addons github-setup \
46+ --addons fastapi-sqlalchemy \
47+ --no-interactive
5348```
5449
55- From this workspace (development):
50+ More examples live in the [ CLI package README ] ( ./packages/create-awesome-python-app/README.md ) .
5651
57- ``` bash
58- uv sync
59- uv run create-awesome-python-app --help
60- ```
52+ ---
6153
62- ### Shell completion
54+ ## Ecosystem
6355
64- ``` bash
65- create-awesome-python-app --install-completion # bash / zsh / fish
66- create-awesome-python-app --show-completion # print script only
67- ```
56+ | Repository | Role |
57+ | ------------| ------|
58+ | [ create-python-app] ( https://github.com/Create-Python-App/create-python-app ) (this repo) | CLI (` create-awesome-python-app ` ) and scaffolding engine (` create-python-app-core ` ) |
59+ | [ cpa-templates] ( https://github.com/Create-Python-App/cpa-templates ) | Official templates and extensions (` templates.json ` catalog) |
60+ | [ website] ( https://github.com/Create-Python-App/website ) | Docs + catalog UI ([ create-awesome-python-app.vercel.app] ( https://create-awesome-python-app.vercel.app ) ) |
61+ | [ homebrew-tap] ( https://github.com/Create-Python-App/homebrew-tap ) | Homebrew formula |
62+ | [ aur-package] ( https://github.com/Create-Python-App/aur-package ) | AUR PKGBUILD mirror |
6863
69- ## License
64+ The CLI fetches the catalog from:
7065
71- MIT — see [ LICENSE] ( ./LICENSE ) .
66+ ` https://raw.githubusercontent.com/Create-Python-App/cpa-templates/main/templates.json `
67+
68+ Override with ` CPA_CATALOG_URL ` for forks or local testing (` file:// ` supported).
7269
73- ## Monorepo layout (uv workspaces)
70+ ---
7471
75- This repository is a ** virtual uv workspace** : the root is not published; packages live under ` packages/* ` and share one ` uv.lock ` / ` .venv ` .
72+ ## Repository Map
73+
74+ This is a ** virtual uv workspace** : the root is not published; packages live under ` packages/* ` and share one ` uv.lock ` / ` .venv ` .
75+
76+ | Path | Purpose |
77+ | ------| ---------|
78+ | [ ` packages/create-awesome-python-app ` ] ( ./packages/create-awesome-python-app ) | Main CLI package (Typer), interactive wizard, catalog listing |
79+ | [ ` packages/create-python-app-core ` ] ( ./packages/create-python-app-core ) | Scaffolding engine: resolve sources, merge layers, install, git init |
80+ | [ ` docs/ ` ] ( ./docs ) | Brand, troubleshooting, migration, distribution, versioning |
81+ | [ ` .github/workflows ` ] ( ./.github/workflows ) | CI, release, Docker / Homebrew / AUR publish, distribution smoke |
82+
83+ Template and extension data is maintained in [ ` Create-Python-App/cpa-templates ` ] ( https://github.com/Create-Python-App/cpa-templates ) . This repo consumes that catalog remotely.
7684
7785``` text
7886create-python-app/ # virtual workspace root (no [project] table)
@@ -84,16 +92,34 @@ create-python-app/ # virtual workspace root (no [project] table)
8492 └── create-awesome-python-app/ # CLI (depends on core via workspace)
8593```
8694
87- ### Setup
95+ ---
96+
97+ ## Local Development
98+
99+ Requires ** Python 3.12+** (pinned in ` .python-version ` ) and [ uv] ( https://docs.astral.sh/uv/ ) :
88100
89101``` bash
90- # Requires uv: https://docs.astral.sh/uv/
102+ git clone https://github.com/Create-Python-App/create-python-app.git
103+ cd create-python-app
91104uv sync --group dev
105+ uv run create-awesome-python-app --help
92106```
93107
94- ## Development commands
108+ Non-interactive local smoke test:
95109
96- From the repo root (requires [ uv] ( https://docs.astral.sh/uv/ ) ):
110+ ``` bash
111+ uv run create-awesome-python-app smoke-app \
112+ --template fastapi-starter \
113+ --addons github-setup \
114+ --no-interactive \
115+ --no-install
116+ ```
117+
118+ Install git hooks: ` uv run pre-commit install `
119+
120+ ---
121+
122+ ## Development Commands
97123
98124| Task | Make | Equivalent |
99125| ------| ------| ------------|
@@ -103,38 +129,45 @@ From the repo root (requires [uv](https://docs.astral.sh/uv/)):
103129| Type-check | ` make typecheck ` | ` uv run pyright ` |
104130| Build packages | ` make build ` | ` uv build --all ` |
105131
106- Install git hooks: ` uv run pre-commit install `
107-
108- ## Python version
132+ ---
109133
110- - ** Pin file:** ` .python-version ` → ` 3.12 `
111- - ** Constraint:** every workspace member sets ` requires-python = ">=3.12" `
112- - ** CI:** workflows install Python 3.12+ matching this pin
134+ ## Install Channels (published package)
113135
114136``` bash
115- uv python install
116- uv sync --group dev
117- ```
137+ # PyPI / uv
138+ uvx create-awesome-python-app@latest my-app
118139
119- ## Docker
140+ # Homebrew
141+ brew tap Create-Python-App/tap
142+ brew install create-awesome-python-app
120143
121- Published image: [ ` ulisesjeremias/create-awesome-python-app ` ] ( https://hub.docker.com/r/ulisesjeremias/create-awesome-python-app )
144+ # AUR
145+ yay -S create-awesome-python-app
122146
123- ``` bash
124- docker run --rm ulisesjeremias/create-awesome-python-app:0.1.0 --version
147+ # Docker
125148docker run --rm -it -v " ${PWD} :/app" -w /app \
126- ulisesjeremias/create-awesome-python-app my-app --template fastapi-starter --no-interactive
149+ ulisesjeremias/create-awesome-python-app:latest my-app \
150+ --template fastapi-starter
127151```
128152
129- Local build (installs the given PyPI version into the image):
153+ Published image: [ ` ulisesjeremias/create-awesome-python-app ` ] ( https://hub.docker.com/r/ulisesjeremias/create-awesome-python-app )
154+
155+ Local image build (installs the given PyPI version into the image):
130156
131157``` bash
132- docker build --build-arg VERSION=0.1.0 -t create-awesome-python-app .
158+ docker build --build-arg VERSION=0.2.5 -t create-awesome-python-app .
133159docker run --rm create-awesome-python-app --help
134160```
135161
162+ ---
163+
164+ ## License
165+
166+ MIT — see [ LICENSE] ( ./LICENSE ) .
167+
136168### Reference
137169
170+ - [ Package README] ( ./packages/create-awesome-python-app/README.md ) — user-facing CLI docs
138171- [ uv workspaces handbook] ( https://pydevtools.com/handbook/how-to/how-to-set-up-a-python-monorepo-with-uv-workspaces/ )
139172- [ cpa-templates] ( https://github.com/Create-Python-App/cpa-templates ) — template and extension bank
140173- Node parity: [ Create-Node-App/create-node-app] ( https://github.com/Create-Node-App/create-node-app ) + [ cna-templates] ( https://github.com/Create-Node-App/cna-templates )
0 commit comments