Thanks for contributing! This repo powers create-awesome-python-app.
For a full explanation of how templates, extensions, and the file system work, read docs/AUTHORING.md. A Spanish translation is also available: docs/AUTHORING.es.md (English remains canonical).
- Create
extensions/<your-slug>/ - Add files to copy into the generated project (use
template/if you only want a subset copied) - Register it in
templates.jsonunder"extensions":
{
"name": "My Extension",
"slug": "my-extension",
"description": "Adds X to your project",
"url": "https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/my-extension",
"type": ["fastapi-backend"],
"category": "backend-applications",
"labels": ["FastAPI", "Tooling"]
}- Create
templates/<your-slug>/with apyproject.toml(and optionaltemplate/subdirectory) - Add
cpa.config.jsonfor interactive options when needed - Register it in
templates.jsonunder"templates"(same fields as extensions)
Use conventional commits: feat:, fix:, docs:, chore:, refactor:.
- Directory name matches the
slugintemplates.json -
urlpoints to the correct path on themainbranch -
slugis globally unique across templates and extensions - All required fields present:
name,slug,description,url,type,category,labels - Extension
typeis an array if it supports multiple template types - Tested locally — see docs/TESTING.md
Open an issue or start a discussion.