diff --git a/.cspell.json b/.cspell.json index cbcd0d6..0291cd7 100644 --- a/.cspell.json +++ b/.cspell.json @@ -20,6 +20,8 @@ "contenido", "controlado", "copypaste", + "CPA", + "cpa", "cpath", "crect", "cspell", @@ -66,8 +68,13 @@ "PKGBUILD", "preconfigured", "pydantic", + "pygobject", + "PyPI", + "pypi", + "pyproject", "pyright", "pytest", + "pywal", "radix", "Reakit", "recharts", @@ -86,13 +93,15 @@ "transpiling", "trivy", "trufflehog", - "turborepo", "Turborepo", + "turborepo", "typer", "ulises", "ulisesjeremias", "unmemoized", "unvetted", + "uvicorn", + "uvx", "vaul", "vercel", "vite", @@ -101,15 +110,16 @@ "Vlang", "webextension", "workdir", + "wpgtk", "wscript" ], "ignorePaths": [ - "node_modules/**", + "**/*.svg", ".next/**", - "pnpm-lock.yaml", "megalinter-reports/**", + "node_modules/**", + "pnpm-lock.yaml", "public/**", - "**/*.svg", "tools/danger/package-lock.json" ] } diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index d3c0a79..37c8b58 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,5 +2,5 @@ blank_issues_enabled: false contact_links: - name: ๐Ÿ’ฌ General Question - url: https://github.com/Create-Node-App/create-node-app/discussions/categories/q-a + url: https://github.com/Create-Python-App/create-python-app/discussions/categories/q-a about: Please ask and answer questions as a discussion thread diff --git a/src/app/extensions/[slug]/ExtensionDetailsClient.tsx b/src/app/extensions/[slug]/ExtensionDetailsClient.tsx index 2a72434..e0ee44e 100644 --- a/src/app/extensions/[slug]/ExtensionDetailsClient.tsx +++ b/src/app/extensions/[slug]/ExtensionDetailsClient.tsx @@ -111,7 +111,7 @@ export function ExtensionDetailsClient({ extension, compatibleTemplates }: Exten

To use this extension with a compatible template, run the following command:

-

npx create-awesome-node-app --template [template-name] --addons {extension.slug}

+

uvx create-awesome-python-app --template [template-name] --addons {extension.slug}

With Specific Templates @@ -123,7 +123,7 @@ export function ExtensionDetailsClient({ extension, compatibleTemplates }: Exten className="bg-muted rounded-md p-4 font-mono text-sm overflow-x-auto shimmer mb-4" >

- npx create-awesome-node-app --template {template.slug} --addons {extension.slug} + uvx create-awesome-python-app --template {template.slug} --addons {extension.slug}

))} @@ -178,7 +178,7 @@ export function ExtensionDetailsClient({ extension, compatibleTemplates }: Exten
-

$ npx create-awesome-node-app \\

+

$ uvx create-awesome-python-app \\

--template [template-name] \\

--addons {extension.slug}

@@ -186,7 +186,7 @@ export function ExtensionDetailsClient({ extension, compatibleTemplates }: Exten

    -
  • Pre-configured development environment
  • -
  • Modern tooling and best practices
  • -
  • TypeScript support out of the box
  • -
  • Linting and formatting setup
  • -
  • Testing infrastructure ready to go
  • +
  • Pre-configured uv project with lockfile workflow
  • +
  • Ruff, pytest, and type checking out of the box
  • +
  • Python 3.12+ with modern typing patterns
  • +
  • AGENTS.md for AI assistant guardrails
  • +
  • Extension-ready structure for Docker, Postgres, and CI
@@ -127,7 +131,7 @@ export function TemplateDetailsClient({ template, compatibleExtensions }: Templa

To use this template, run the following command:

-

npx create-awesome-node-app --template {template.slug}

+

uvx create-awesome-python-app --template {template.slug}

With Extensions @@ -135,7 +139,7 @@ export function TemplateDetailsClient({ template, compatibleExtensions }: Templa

You can also add extensions to enhance your template:

- npx create-awesome-node-app --template {template.slug} --addons{' '} + uvx create-awesome-python-app --template {template.slug} --addons{' '} {compatibleExtensions.length >= 2 ? `${compatibleExtensions[0].slug} ${compatibleExtensions[1].slug}` : compatibleExtensions.length === 1 @@ -153,20 +157,20 @@ export function TemplateDetailsClient({ template, compatibleExtensions }: Templa

{[ { - title: 'TypeScript Support', - desc: 'Full TypeScript integration with properly configured tsconfig.', + title: 'uv & pyproject.toml', + desc: 'Dependencies and scripts managed with uv and a single pyproject.toml.', }, { - title: 'Modern Tooling', - desc: 'ESLint, Prettier, and other tools preconfigured for code quality.', + title: 'Quality tooling', + desc: 'Ruff, pytest, and mypy/pyright preconfigured for Python 3.12+.', }, { - title: 'Testing Setup', - desc: 'Testing framework and utilities ready for unit and integration tests.', + title: 'Testing setup', + desc: 'pytest fixtures and examples ready for unit and integration tests.', }, { - title: 'Optimized Build', - desc: 'Production-ready build configuration for optimal performance.', + title: 'Production patterns', + desc: 'Settings, health checks, and extension hooks aligned with CPA best practices.', }, ].map((f) => ( @@ -194,14 +198,14 @@ export function TemplateDetailsClient({ template, compatibleExtensions }: Templa
-

$ npx create-awesome-node-app \

+

$ uvx create-awesome-python-app \

--template {template.slug}

@@ -340,7 +344,7 @@ export function TemplateDetailsClient({ template, compatibleExtensions }: Templa size="lg" className="bg-gradient-to-r from-primary to-teal-600 hover:from-primary/90 hover:to-teal-600/90 glow transition-all duration-300" onClick={() => { - navigator.clipboard?.writeText?.(`npx create-awesome-node-app --template ${template.slug}`); + navigator.clipboard?.writeText?.(`uvx create-awesome-python-app --template ${template.slug}`); }} > Get Started diff --git a/src/app/templates/[slug]/extensions/[extensionSlug]/page.tsx b/src/app/templates/[slug]/extensions/[extensionSlug]/page.tsx index 1a8757e..4b0939b 100644 --- a/src/app/templates/[slug]/extensions/[extensionSlug]/page.tsx +++ b/src/app/templates/[slug]/extensions/[extensionSlug]/page.tsx @@ -193,7 +193,7 @@ export default function TemplateExtensionPage({

- $ npx create-awesome-node-app{' '} + $ uvx create-awesome-python-app{' '} --template {template.slug}{' '} --addons {extension.slug}

@@ -292,7 +292,7 @@ export default function TemplateExtensionPage({

- $ npx create-awesome-node-app{' '} + $ uvx create-awesome-python-app{' '} --template {template.slug}{' '} --addons {extension.slug}

@@ -301,7 +301,7 @@ export default function TemplateExtensionPage({
@@ -401,7 +401,7 @@ export default function TemplateExtensionPage({

- The composition-first scaffolding approach is coming to more ecosystems. Start with Node.js today โ€” Python + The composition-first scaffolding approach is coming to more ecosystems. Start with Python today โ€” Node.js and V are on the way.

diff --git a/src/components/layout-shell.tsx b/src/components/layout-shell.tsx index 4bcf926..960abc5 100644 --- a/src/components/layout-shell.tsx +++ b/src/components/layout-shell.tsx @@ -76,13 +76,13 @@ export function LayoutShell({ children }: { children: ReactNode }) { /> - create-node-app + create-python-app

- One command. Any stack. Compose templates and extensions into production-ready Node.js apps. + One command. Any stack. Compose templates and extensions into production-ready Python apps.

- © {new Date().getFullYear()} Create Awesome Node App. + © {new Date().getFullYear()} Create Awesome Python App.

{/* Col 2 โ€” Resources */} @@ -95,7 +95,7 @@ export function LayoutShell({ children }: { children: ReactNode }) { { href: '/docs', label: 'Documentation' }, { href: '/docs/contributing', label: 'Contributing Guide' }, { - href: 'https://github.com/Create-Node-App/cna-templates/releases', + href: 'https://github.com/Create-Python-App/cpa-templates/releases', label: 'Changelog', external: true, }, @@ -117,19 +117,19 @@ export function LayoutShell({ children }: { children: ReactNode }) {

Community