From dfc161fbd9839c8cfe6058d8f283d2e15781478c Mon Sep 17 00:00:00 2001 From: ulises-jeremias Date: Sat, 18 Jul 2026 03:25:16 -0300 Subject: [PATCH 1/2] chore: update docs and recipes for CNA-parity extension slugs Replace python-* addon examples with fastapi-*/django-*/celery-docker and all-* catalog slugs so the website matches cpa-templates. Co-authored-by: Cursor --- src/app/docs/advanced/usage/page.tsx | 4 +- src/app/docs/extensions/page.tsx | 31 +- src/app/docs/installation/page.tsx | 2 +- src/app/docs/page.tsx | 2 +- .../TemplateCustomizationClientPage.tsx | 26 +- src/app/docs/templates/page.tsx | 4 +- src/app/page.tsx | 4 +- src/components/animated-terminal.tsx | 12 +- src/components/recipes-section.tsx | 24 +- src/components/saas-ai-banner.tsx | 2 +- src/lib/__tests__/schemas.test.ts | 6 +- src/lib/__tests__/utils.test.ts | 2 +- src/lib/mock-data.ts | 337 ++++++++++-------- 13 files changed, 247 insertions(+), 209 deletions(-) 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`}

Docker

- 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
                   
diff --git a/src/app/docs/extensions/page.tsx b/src/app/docs/extensions/page.tsx index 279aa0d..ed9cea6 100644 --- a/src/app/docs/extensions/page.tsx +++ b/src/app/docs/extensions/page.tsx @@ -1,4 +1,15 @@ -import { ArrowLeft, ArrowRight, Cloud, Code, Container, Database, Monitor, Shield, Terminal, Wrench } from 'lucide-react'; +import { + ArrowLeft, + ArrowRight, + Cloud, + Code, + Container, + Database, + Monitor, + Shield, + Terminal, + Wrench, +} from 'lucide-react'; import type { Metadata } from 'next'; import Link from 'next/link'; @@ -24,25 +35,25 @@ const categories = [ name: 'Containers', description: 'Docker images and Compose stacks for local and production runs.', icon: , - examples: ['python-docker'], + examples: ['fastapi-docker', 'django-docker', 'celery-docker'], }, { name: 'Database', description: 'PostgreSQL services, ORM helpers, and migration scaffolding.', icon: , - examples: ['python-postgres', 'python-sqlalchemy', 'python-redis'], + examples: ['postgres', 'fastapi-sqlalchemy', 'fastapi-redis'], }, { name: 'Observability', description: 'Error tracking and production diagnostics.', icon: , - examples: ['python-sentry'], + examples: ['fastapi-sentry'], }, { name: 'Security', description: 'Authentication and authorization skeletons.', icon: , - examples: ['python-auth-jwt'], + examples: ['fastapi-auth-jwt'], }, { name: 'CI & GitHub', @@ -54,19 +65,19 @@ const categories = [ name: 'Developer Experience', description: 'Editor integrations and remote development environments.', icon: , - examples: ['python-devcontainer'], + examples: ['development-container'], }, { name: 'API & Services', description: 'Backend-focused add-ons for FastAPI and similar templates.', icon: , - 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: , - examples: ['github-setup', 'python-devcontainer'], + examples: ['github-setup', 'development-container'], }, ]; @@ -102,8 +113,8 @@ export default function DocsExtensionsPage() {
                 
-                  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
                 
               
diff --git a/src/app/docs/installation/page.tsx b/src/app/docs/installation/page.tsx index 4c9672c..f339cac 100644 --- a/src/app/docs/installation/page.tsx +++ b/src/app/docs/installation/page.tsx @@ -327,7 +327,7 @@ makepkg -si`}
{`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`}
diff --git a/src/app/docs/page.tsx b/src/app/docs/page.tsx index 2c2e36d..e85f1d6 100644 --- a/src/app/docs/page.tsx +++ b/src/app/docs/page.tsx @@ -324,7 +324,7 @@ export default function DocsPage() {
                     
-                      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() { Project Structure Customization -

- 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:

@@ -230,13 +228,13 @@ uv remove unused-package`}
  • Routers: Register new routers in the app factory; pair with{' '} - python-sqlalchemy or python-auth-jwt when needed. + fastapi-sqlalchemy or fastapi-auth-jwt when needed.
  • Settings: Extend the generated Settings class for new env vars.
  • - Observability: Add python-sentry during scaffold or wire Sentry + Observability: Add fastapi-sentry during scaffold or wire Sentry manually in lifespan hooks.
@@ -262,11 +260,13 @@ app.include_router(users.router, prefix="/users", tags=["users"])`} INSTALLED_APPS.
  • - DRF: Define serializers and viewsets; keep URL routing in{' '} - urls.py. + DRF: Define serializers and viewsets; keep URL routing in urls.py. +
  • +
  • + Database: Pair with postgres for local Compose services.
  • - Database: Pair with python-postgres for local Compose services. + Containers: Add django-docker for gunicorn/runserver images.
  • @@ -311,8 +311,8 @@ def greet(name: str) -> None: Shared tooling: Keep Ruff/pytest config at the workspace root.
  • - Running: Use uv run --package <member> ... to target a specific - app or library. + Running: Use uv run --package <member> ... to target a + specific app or library.
  • @@ -327,7 +327,9 @@ def greet(name: str) -> None:

    Environment Variables

    -

    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'], }, ], }; From a6d817d45505914ee229d4703e2086d7936dc9ed Mon Sep 17 00:00:00 2001 From: ulises-jeremias Date: Sat, 18 Jul 2026 04:08:56 -0300 Subject: [PATCH 2/2] chore: fix cspell and markdown table for MegaLinter Co-authored-by: Cursor --- .cspell.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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",