diff --git a/.cspell.json b/.cspell.json index 97f66fc..7d9f5d9 100644 --- a/.cspell.json +++ b/.cspell.json @@ -40,10 +40,11 @@ "esbuild", "eslintcache", "extraida", - "extraída", + "extra\u00edda", "fastapi", "filterwarnings", "grype", + "gunicorn", "hookform", "httpx", "interactiva", @@ -87,6 +88,7 @@ "Reakit", "recharts", "ruff", + "runserver", "saas", "Selenoid", "shadcn", diff --git a/src/app/docs/advanced/usage/page.tsx b/src/app/docs/advanced/usage/page.tsx index fd9dfcb..a47bade 100644 --- a/src/app/docs/advanced/usage/page.tsx +++ b/src/app/docs/advanced/usage/page.tsx @@ -113,12 +113,12 @@ uv remove unused-package`}
- The python-docker extension adds a Dockerfile and Compose files for local and production
+ The fastapi-docker extension adds a Dockerfile and Compose files for local and production
container runs.
- uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons python-docker
+ uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons fastapi-docker
,
- examples: ['python-sqlalchemy', 'python-redis', 'python-auth-jwt'],
+ examples: ['fastapi-sqlalchemy', 'fastapi-redis', 'fastapi-auth-jwt'],
},
{
name: 'Tooling',
description: 'Cross-cutting workflow improvements for Python projects.',
icon:
- uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons python-docker
- python-postgres github-setup
+ uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons fastapi-docker
+ postgres github-setup
{`docker run --rm -it \\
-v "\${PWD}:/app" -w /app \\
ulisesjeremias/create-awesome-python-app:0.2.0 \\
- my-app --template fastapi-starter --addons python-docker github-setup --no-interactive`}
+ my-app --template fastapi-starter --addons fastapi-docker github-setup --no-interactive`}
- uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons python-docker
+ uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons fastapi-docker
github-setup
diff --git a/src/app/docs/templates/customization/TemplateCustomizationClientPage.tsx b/src/app/docs/templates/customization/TemplateCustomizationClientPage.tsx
index 03a3452..4c0116b 100644
--- a/src/app/docs/templates/customization/TemplateCustomizationClientPage.tsx
+++ b/src/app/docs/templates/customization/TemplateCustomizationClientPage.tsx
@@ -31,9 +31,7 @@ export default function TemplateCustomizationClientPage() {
- After scaffolding, reorganize modules to match your domain. Common patterns across CPA templates: -
+After scaffolding, reorganize modules to match your domain. Common patterns across CPA templates:
python-sqlalchemy or python-auth-jwt when needed.
+ fastapi-sqlalchemy or fastapi-auth-jwt when needed.
Settings class for new env vars.
python-sentry during scaffold or wire Sentry
+ Observability: Add fastapi-sentry during scaffold or wire Sentry
manually in lifespan hooks.
INSTALLED_APPS.
urls.py.
+ DRF: Define serializers and viewsets; keep URL routing in urls.py.
+ postgres for local Compose services.
python-postgres for local Compose services.
+ Containers: Add django-docker for gunicorn/runserver images.
uv run --package <member> ... to target a specific
- app or library.
+ Running: Use uv run --package <member> ... to target a
+ specific app or library.
Use .env locally (never commit secrets) and typed settings in code:
+ Use .env locally (never commit secrets) and typed settings in code:
+
@@ -353,7 +355,7 @@ class Settings(BaseSettings):
Docker & Compose
- When you scaffold with python-docker, customize Dockerfile,{' '}
+ When you scaffold with fastapi-docker, customize Dockerfile,{' '}
compose.yml, and health checks for your deployment target. Rebuild with{' '}
docker compose up --build after changes.
diff --git a/src/app/docs/templates/page.tsx b/src/app/docs/templates/page.tsx
index a3cda05..4dbd106 100644
--- a/src/app/docs/templates/page.tsx
+++ b/src/app/docs/templates/page.tsx
@@ -140,8 +140,8 @@ export default async function DocsTemplatesPage() {
- uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons python-docker
- python-postgres
+ uvx create-awesome-python-app@latest my-app --template fastapi-starter --addons fastapi-docker
+ postgres
diff --git a/src/app/page.tsx b/src/app/page.tsx
index fbae744..f0405af 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -187,10 +187,10 @@ export default async function Home() {
$ uvx create-awesome-python-app my-app \
--template fastapi-starter \
- --addons python-docker github-setup
+ --addons fastapi-docker github-setup
diff --git a/src/components/animated-terminal.tsx b/src/components/animated-terminal.tsx
index 52024de..869de97 100644
--- a/src/components/animated-terminal.tsx
+++ b/src/components/animated-terminal.tsx
@@ -8,7 +8,7 @@ const STACKS = [
lines: [
{ prefix: '$', text: ' uvx create-awesome-python-app my-api', color: 'text-foreground' },
{ prefix: '✔', text: ' Template fastapi-starter', color: 'text-green-400' },
- { prefix: '✔', text: ' Extensions python-docker · github-setup · python-postgres', color: 'text-green-400' },
+ { prefix: '✔', text: ' Extensions fastapi-docker · github-setup · postgres', color: 'text-green-400' },
{ prefix: '✔', text: ' Syncing with uv...', color: 'text-muted-foreground' },
{ prefix: '✔', text: ' Ready. cd my-api && uv run uvicorn app.main:app --reload', color: 'text-primary' },
],
@@ -18,7 +18,7 @@ const STACKS = [
lines: [
{ prefix: '$', text: ' uvx create-awesome-python-app my-cli', color: 'text-foreground' },
{ prefix: '✔', text: ' Template cli-starter', color: 'text-green-400' },
- { prefix: '✔', text: ' Extensions github-setup · python-devcontainer', color: 'text-green-400' },
+ { prefix: '✔', text: ' Extensions github-setup · development-container', color: 'text-green-400' },
{ prefix: '✔', text: ' Syncing with uv...', color: 'text-muted-foreground' },
{ prefix: '✔', text: ' Ready. cd my-cli && uv run my-cli --help', color: 'text-primary' },
],
@@ -28,9 +28,13 @@ const STACKS = [
lines: [
{ prefix: '$', text: ' uvx create-awesome-python-app my-worker', color: 'text-foreground' },
{ prefix: '✔', text: ' Template celery-worker', color: 'text-green-400' },
- { prefix: '✔', text: ' Extensions python-redis · python-docker', color: 'text-green-400' },
+ { prefix: '✔', text: ' Extensions celery-docker · github-setup', color: 'text-green-400' },
{ prefix: '✔', text: ' Syncing with uv...', color: 'text-muted-foreground' },
- { prefix: '✔', text: ' Ready. cd my-worker && uv run celery -A app worker', color: 'text-primary' },
+ {
+ prefix: '✔',
+ text: ' Ready. cd my-worker && uv run celery -A worker.celery_app worker --loglevel=INFO',
+ color: 'text-primary',
+ },
],
},
];
diff --git a/src/components/recipes-section.tsx b/src/components/recipes-section.tsx
index a1b9cb5..533c043 100644
--- a/src/components/recipes-section.tsx
+++ b/src/components/recipes-section.tsx
@@ -31,10 +31,10 @@ const recipes: Recipe[] = [
templateFlag: '--template',
templateValue: ' fastapi-starter ',
addonsFlag: '--addons',
- addonsValue: ' python-docker github-setup',
+ addonsValue: ' fastapi-docker github-setup',
},
rawCommand:
- 'uvx create-awesome-python-app my-api --template fastapi-starter --addons python-docker github-setup --no-interactive',
+ 'uvx create-awesome-python-app my-api --template fastapi-starter --addons fastapi-docker github-setup --no-interactive',
href: '/templates/fastapi-starter',
},
{
@@ -47,42 +47,42 @@ const recipes: Recipe[] = [
templateFlag: '--template',
templateValue: ' cli-starter ',
addonsFlag: '--addons',
- addonsValue: ' python-devcontainer github-setup',
+ addonsValue: ' development-container github-setup',
},
rawCommand:
- 'uvx create-awesome-python-app my-cli --template cli-starter --addons python-devcontainer github-setup --no-interactive',
+ 'uvx create-awesome-python-app my-cli --template cli-starter --addons development-container github-setup --no-interactive',
href: '/templates/cli-starter',
},
{
title: 'Celery worker',
- description: 'Background worker with Redis and Docker for async task pipelines.',
+ description: 'Background worker with Celery Docker for async task pipelines.',
icon: Workflow,
- labels: ['Celery', 'Redis', 'Docker', 'Workers'],
+ labels: ['Celery', 'Docker', 'Workers', 'uv'],
command: {
base: 'uvx create-awesome-python-app my-worker ',
templateFlag: '--template',
templateValue: ' celery-worker ',
addonsFlag: '--addons',
- addonsValue: ' python-redis python-docker',
+ addonsValue: ' celery-docker github-setup',
},
rawCommand:
- 'uvx create-awesome-python-app my-worker --template celery-worker --addons python-redis python-docker --no-interactive',
+ 'uvx create-awesome-python-app my-worker --template celery-worker --addons celery-docker github-setup --no-interactive',
href: '/templates/celery-worker',
},
{
title: 'Django API',
- description: 'Django API starter with Postgres and JWT auth extensions.',
+ description: 'Django API starter with Postgres and Django Docker.',
icon: Sparkles,
- labels: ['Django', 'Postgres', 'JWT', 'API'],
+ labels: ['Django', 'Postgres', 'Docker', 'API'],
command: {
base: 'uvx create-awesome-python-app my-django ',
templateFlag: '--template',
templateValue: ' django-api ',
addonsFlag: '--addons',
- addonsValue: ' python-postgres python-auth-jwt',
+ addonsValue: ' postgres django-docker',
},
rawCommand:
- 'uvx create-awesome-python-app my-django --template django-api --addons python-postgres python-auth-jwt --no-interactive',
+ 'uvx create-awesome-python-app my-django --template django-api --addons postgres django-docker --no-interactive',
href: '/templates/django-api',
},
];
diff --git a/src/components/saas-ai-banner.tsx b/src/components/saas-ai-banner.tsx
index ea7f5ff..412b0a4 100644
--- a/src/components/saas-ai-banner.tsx
+++ b/src/components/saas-ai-banner.tsx
@@ -112,7 +112,7 @@ export function SaasAiBanner() {
$ uvx create-awesome-python-app my-api \
--template fastapi-starter \
- --addons python-docker github-setup
+ --addons fastapi-docker github-setup
# ✅ FastAPI scaffold ready
# ✅ uv workspace + typed settings
# ✅ Compose Docker + CI extensions
diff --git a/src/lib/__tests__/schemas.test.ts b/src/lib/__tests__/schemas.test.ts
index 020c7bd..ae335d2 100644
--- a/src/lib/__tests__/schemas.test.ts
+++ b/src/lib/__tests__/schemas.test.ts
@@ -55,7 +55,7 @@ describe('extensionSchema', () => {
const validExtension = {
name: 'Tailwind CSS',
description: 'Add Tailwind CSS.',
- url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/python-docker',
+ url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/fastapi-docker',
type: 'react',
category: 'UI',
labels: ['Tailwind', 'CSS'],
@@ -68,7 +68,7 @@ describe('extensionSchema', () => {
const validExtension = {
name: 'GitHub Setup',
description: 'Add GitHub automation.',
- url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/github-setup',
+ url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/all-github-setup',
type: ['react', 'nextjs', 'backend'],
category: 'Tooling',
labels: ['GitHub', 'CI/CD'],
@@ -96,7 +96,7 @@ describe('templatesDataSchema', () => {
{
name: 'Tailwind CSS',
description: 'Add Tailwind CSS.',
- url: 'https://github.com/example/python-docker',
+ url: 'https://github.com/example/fastapi-docker',
type: 'react',
category: 'UI',
labels: ['CSS'],
diff --git a/src/lib/__tests__/utils.test.ts b/src/lib/__tests__/utils.test.ts
index 55d6852..bca7643 100644
--- a/src/lib/__tests__/utils.test.ts
+++ b/src/lib/__tests__/utils.test.ts
@@ -45,7 +45,7 @@ describe('validateExtension', () => {
const validData = {
name: 'Tailwind CSS',
description: 'Add Tailwind CSS.',
- url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/python-docker',
+ url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/fastapi-docker',
type: 'react',
category: 'UI',
labels: ['Tailwind'],
diff --git a/src/lib/mock-data.ts b/src/lib/mock-data.ts
index 69bdf03..9022452 100644
--- a/src/lib/mock-data.ts
+++ b/src/lib/mock-data.ts
@@ -3,188 +3,209 @@ import type { TemplatesData } from './schemas';
export const mockTemplatesData: TemplatesData = {
categories: [
{
- slug: "backend-applications",
- name: "Backend Applications",
- description: "API and service starters for FastAPI and similar Python backends.",
- details: "Use when the deliverable is an HTTP API or background worker — FastAPI for async APIs with OpenAPI docs.",
- labels: ["Backend", "API", "Python", "FastAPI"],
+ slug: 'backend-applications',
+ name: 'Backend Applications',
+ description: 'API and service starters for FastAPI and similar Python backends.',
+ details:
+ 'Use when the deliverable is an HTTP API or background worker — FastAPI for async APIs with OpenAPI docs.',
+ labels: ['Backend', 'API', 'Python', 'FastAPI'],
},
{
- slug: "ci",
- name: "CI",
- description: "Continuous integration and repository automation.",
- details: "GitHub Actions, Dependabot, and related repository workflows.",
- labels: ["CI", "GitHub", "DevOps"],
+ slug: 'ci',
+ name: 'CI',
+ description: 'Continuous integration and repository automation.',
+ details: 'GitHub Actions, Dependabot, and related repository workflows.',
+ labels: ['CI', 'GitHub', 'DevOps'],
},
{
- slug: "containers",
- name: "Containers",
- description: "Docker and Compose packaging for the app.",
- details: "Add when you want container images and compose stacks for the API.",
- labels: ["Docker", "Compose", "DevOps"],
+ slug: 'containers',
+ name: 'Containers',
+ description: 'Docker and Compose packaging for the app.',
+ details: 'Add when you want container images and compose stacks for the API.',
+ labels: ['Docker', 'Compose', 'DevOps'],
},
{
- slug: "database",
- name: "Database",
- description: "Database services and connection scaffolding.",
- details: "Pair with the app when you need Postgres (or similar) locally/in compose.",
- labels: ["PostgreSQL", "Database"],
+ slug: 'database',
+ name: 'Database',
+ description: 'Database services and connection scaffolding.',
+ details: 'Pair with the app when you need Postgres (or similar) locally/in compose.',
+ labels: ['PostgreSQL', 'Database'],
},
{
- slug: "editor",
- name: "Editor",
- description: "Editor and remote development ergonomics.",
- details: "Dev Containers and related IDE integrations.",
- labels: ["DevContainer", "VS Code"],
+ slug: 'editor',
+ name: 'Editor',
+ description: 'Editor and remote development ergonomics.',
+ details: 'Dev Containers and related IDE integrations.',
+ labels: ['DevContainer', 'VS Code'],
},
{
- slug: "cli-applications",
- name: "CLI Applications",
- description: "Command-line tools and console scripts.",
- details: "Use for Typer/Click CLIs and internal utilities shipped as entry points.",
- labels: ["CLI", "Python", "Typer"],
+ slug: 'cli-applications',
+ name: 'CLI Applications',
+ description: 'Command-line tools and console scripts.',
+ details: 'Use for Typer/Click CLIs and internal utilities shipped as entry points.',
+ labels: ['CLI', 'Python', 'Typer'],
},
{
- slug: "observability",
- name: "Observability",
- description: "Error tracking, metrics, and tracing integrations.",
- details: "Add when you need production diagnostics such as Sentry.",
- labels: ["Observability", "Sentry", "Monitoring"],
+ slug: 'observability',
+ name: 'Observability',
+ description: 'Error tracking, metrics, and tracing integrations.',
+ details: 'Add when you need production diagnostics such as Sentry.',
+ labels: ['Observability', 'Sentry', 'Monitoring'],
},
{
- slug: "security",
- name: "Security",
- description: "Authentication and authorization scaffolds.",
- details: "JWT/session auth skeletons and related security helpers.",
- labels: ["Auth", "JWT", "Security"],
+ slug: 'security',
+ name: 'Security',
+ description: 'Authentication and authorization scaffolds.',
+ details: 'JWT/session auth skeletons and related security helpers.',
+ labels: ['Auth', 'JWT', 'Security'],
},
{
- slug: "monorepo",
- name: "Monorepo",
- description: "Multi-package workspaces with shared tooling and one lockfile.",
- details: "Use when you need multiple libraries and apps in one repo — uv workspaces link members locally with a single virtual environment.",
- labels: ["Monorepo", "uv", "Workspace", "Python"],
+ slug: 'monorepo',
+ name: 'Monorepo',
+ description: 'Multi-package workspaces with shared tooling and one lockfile.',
+ details:
+ 'Use when you need multiple libraries and apps in one repo — uv workspaces link members locally with a single virtual environment.',
+ labels: ['Monorepo', 'uv', 'Workspace', 'Python'],
},
],
templates: [
{
- slug: "fastapi-starter",
- name: "FastAPI Starter",
- description: "Production-ready FastAPI API with uv, Ruff, pytest, mypy, pyright, and pydantic-settings",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=templates/fastapi-starter",
- type: "fastapi-backend",
- category: "backend-applications",
- labels: ["FastAPI", "API", "Python", "uv", "Backend", "Type Hints", "mypy", "pyright"],
- },
- {
- slug: "cli-starter",
- name: "CLI Starter",
- description: "Typer CLI with uv, Ruff, pytest, and a console script entry point",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=templates/cli-starter",
- type: "cli-app",
- category: "cli-applications",
- labels: ["CLI", "Typer", "Python", "uv"],
- },
- {
- slug: "celery-worker",
- name: "Celery Worker",
- description: "Celery worker with Redis defaults, pydantic-settings, and eager-mode tests",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=templates/celery-worker",
- type: "celery-worker",
- category: "backend-applications",
- labels: ["Celery", "Worker", "Redis", "Python", "uv"],
- },
- {
- slug: "django-api",
- name: "Django API",
- description: "Django + DRF API starter with uv, Ruff, pytest-django, and health probes",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=templates/django-api",
- type: "django-backend",
- category: "backend-applications",
- labels: ["Django", "DRF", "API", "Python", "uv"],
- },
- {
- slug: "uv-workspace-starter",
- name: "uv Workspace Starter",
- description: "Python monorepo using uv workspaces: shared packages/ libraries and apps/ deployables with one lockfile, Ruff, Pyright, and pytest",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=templates/uv-workspace-starter",
- type: "uv-workspace",
- category: "monorepo",
- labels: ["Monorepo", "uv", "Workspace", "Python", "Typer"],
+ slug: 'fastapi-starter',
+ name: 'FastAPI Starter',
+ description: 'Production-ready FastAPI API with uv, Ruff, pytest, mypy, pyright, and pydantic-settings',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=templates/fastapi-starter',
+ type: 'fastapi-backend',
+ category: 'backend-applications',
+ labels: ['FastAPI', 'API', 'Python', 'uv', 'Backend', 'Type Hints', 'mypy', 'pyright'],
+ },
+ {
+ slug: 'cli-starter',
+ name: 'CLI Starter',
+ description: 'Typer CLI with uv, Ruff, pytest, and a console script entry point',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=templates/cli-starter',
+ type: 'cli-app',
+ category: 'cli-applications',
+ labels: ['CLI', 'Typer', 'Python', 'uv'],
+ },
+ {
+ slug: 'celery-worker',
+ name: 'Celery Worker',
+ description: 'Celery worker with Redis defaults, pydantic-settings, and eager-mode tests',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=templates/celery-worker',
+ type: 'celery-worker',
+ category: 'backend-applications',
+ labels: ['Celery', 'Worker', 'Redis', 'Python', 'uv'],
+ },
+ {
+ slug: 'django-api',
+ name: 'Django API',
+ description: 'Django + DRF API starter with uv, Ruff, pytest-django, and health probes',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=templates/django-api',
+ type: 'django-backend',
+ category: 'backend-applications',
+ labels: ['Django', 'DRF', 'API', 'Python', 'uv'],
+ },
+ {
+ slug: 'uv-workspace-starter',
+ name: 'uv Workspace Starter',
+ description:
+ 'Python monorepo using uv workspaces: shared packages/ libraries and apps/ deployables with one lockfile, Ruff, Pyright, and pytest',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=templates/uv-workspace-starter',
+ type: 'uv-workspace',
+ category: 'monorepo',
+ labels: ['Monorepo', 'uv', 'Workspace', 'Python', 'Typer'],
},
],
extensions: [
{
- slug: "github-setup",
- name: "GitHub Setup",
- description: "GitHub Actions CI, MegaLinter, Danger PR review, todo-to-issue, Dependabot, and issue/PR templates",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/github-setup",
- type: ["celery-worker", "cli-app", "django-backend", "fastapi-backend", "uv-workspace"],
- category: "ci",
- labels: ["GitHub", "CI", "DevOps", "MegaLinter", "Danger"],
- },
- {
- slug: "python-docker",
- name: "Python Docker",
- description: "Dockerfile, compose.yml, and compose.prod.yml for local and containerized runs",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-docker",
- type: ["celery-worker", "cli-app", "fastapi-backend"],
- category: "containers",
- labels: ["Docker", "DevOps", "Container"],
- },
- {
- slug: "python-postgres",
- name: "Python Postgres",
- description: "PostgreSQL service under docker/postgres/compose.yml plus env examples",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-postgres",
- type: ["celery-worker", "django-backend", "fastapi-backend"],
- category: "database",
- labels: ["PostgreSQL", "Database", "Docker"],
- },
- {
- slug: "python-devcontainer",
- name: "Python Dev Container",
- description: "VS Code Dev Container with Python 3.12 and uv",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-devcontainer",
- type: ["celery-worker", "cli-app", "django-backend", "fastapi-backend", "uv-workspace"],
- category: "editor",
- labels: ["DevContainer", "VS Code", "uv"],
- },
- {
- slug: "python-sqlalchemy",
- name: "Python SQLAlchemy",
- description: "SQLAlchemy 2.x session helpers and Alembic migrations for FastAPI",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-sqlalchemy",
- type: ["fastapi-backend"],
- category: "database",
- labels: ["SQLAlchemy", "Alembic", "ORM", "Database"],
- },
- {
- slug: "python-redis",
- name: "Python Redis",
- description: "Redis client helper and local Compose service",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-redis",
- type: ["fastapi-backend"],
- category: "database",
- labels: ["Redis", "Cache", "Queue"],
- },
- {
- slug: "python-sentry",
- name: "Python Sentry",
- description: "Sentry SDK for FastAPI with env-driven init helper",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-sentry",
- type: ["fastapi-backend"],
- category: "observability",
- labels: ["Sentry", "Observability", "Errors"],
- },
- {
- slug: "python-auth-jwt",
- name: "Python Auth JWT",
- description: "JWT auth feature skeleton with password hashing helpers",
- url: "https://github.com/Create-Python-App/cpa-templates?subdir=extensions/python-auth-jwt",
- type: ["fastapi-backend"],
- category: "security",
- labels: ["Auth", "JWT", "Security"],
+ slug: 'github-setup',
+ name: 'GitHub Setup',
+ description: 'GitHub Actions CI, MegaLinter, Danger PR review, todo-to-issue, Dependabot, and issue/PR templates',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/all-github-setup',
+ type: ['celery-worker', 'cli-app', 'django-backend', 'fastapi-backend', 'uv-workspace'],
+ category: 'ci',
+ labels: ['GitHub', 'CI', 'DevOps', 'MegaLinter', 'Danger'],
+ },
+ {
+ slug: 'fastapi-docker',
+ name: 'FastAPI Docker',
+ description: 'Dockerfile and Compose for uvicorn FastAPI apps under app/',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/fastapi-docker',
+ type: ['fastapi-backend'],
+ category: 'containers',
+ labels: ['Docker', 'DevOps', 'Container', 'FastAPI'],
+ },
+ {
+ slug: 'django-docker',
+ name: 'Django Docker',
+ description: 'Dockerfile and Compose for Django/gunicorn under apps/ + config/',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/django-docker',
+ type: ['django-backend'],
+ category: 'containers',
+ labels: ['Docker', 'DevOps', 'Container', 'Django'],
+ },
+ {
+ slug: 'celery-docker',
+ name: 'Celery Docker',
+ description: 'Dockerfile with Celery worker CMD for the celery-worker template',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/celery-docker',
+ type: ['celery-worker'],
+ category: 'containers',
+ labels: ['Docker', 'DevOps', 'Container', 'Celery'],
+ },
+ {
+ slug: 'postgres',
+ name: 'Postgres',
+ description: 'PostgreSQL service under docker/postgres/compose.yml plus env examples',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/all-postgres',
+ type: ['celery-worker', 'django-backend', 'fastapi-backend'],
+ category: 'database',
+ labels: ['PostgreSQL', 'Database', 'Docker'],
+ },
+ {
+ slug: 'development-container',
+ name: 'Development Container',
+ description: 'VS Code Dev Container with Python 3.12 and uv',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/all-devcontainer',
+ type: ['celery-worker', 'cli-app', 'django-backend', 'fastapi-backend', 'uv-workspace'],
+ category: 'editor',
+ labels: ['DevContainer', 'VS Code', 'uv'],
+ },
+ {
+ slug: 'fastapi-sqlalchemy',
+ name: 'FastAPI SQLAlchemy',
+ description: 'SQLAlchemy 2.x session helpers and Alembic migrations for FastAPI',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/fastapi-sqlalchemy',
+ type: ['fastapi-backend'],
+ category: 'database',
+ labels: ['SQLAlchemy', 'Alembic', 'ORM', 'Database'],
+ },
+ {
+ slug: 'fastapi-redis',
+ name: 'FastAPI Redis',
+ description: 'Redis client helper and local Compose service for FastAPI',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/fastapi-redis',
+ type: ['fastapi-backend'],
+ category: 'database',
+ labels: ['Redis', 'Cache', 'Queue'],
+ },
+ {
+ slug: 'fastapi-sentry',
+ name: 'FastAPI Sentry',
+ description: 'Sentry SDK for FastAPI with env-driven init helper',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/fastapi-sentry',
+ type: ['fastapi-backend'],
+ category: 'observability',
+ labels: ['Sentry', 'Observability', 'Errors'],
+ },
+ {
+ slug: 'fastapi-auth-jwt',
+ name: 'FastAPI Auth JWT',
+ description: 'JWT auth feature skeleton with password hashing helpers',
+ url: 'https://github.com/Create-Python-App/cpa-templates?subdir=extensions/fastapi-auth-jwt',
+ type: ['fastapi-backend'],
+ category: 'security',
+ labels: ['Auth', 'JWT', 'Security'],
},
],
};