Skip to content

Commit 88cfd62

Browse files
chore: rebrand site identity and catalog to Create-Python-App (#1)
* chore: rebrand site identity and catalog to Create-Python-App Point SEO/site URLs, README, AGENTS, catalog fetch, mock fallback data, and danger metadata at CPA / cpa-templates / PyPI. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: unblock MegaLinter cspell and README markdown checks Add CPA/Python dictionary words and contributor image alt text so the identity rebrand CI can pass MegaLinter. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent dda90a0 commit 88cfd62

13 files changed

Lines changed: 244 additions & 149 deletions

File tree

.cspell.json

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@
77
"alstr",
88
"animatedgradient",
99
"Behaviour",
10+
"bunx",
11+
"celery",
1012
"Chakra",
1113
"checkov",
1214
"clsx",
1315
"cmdk",
1416
"cna",
17+
"Codegen",
1518
"codepaths",
1619
"commitlint",
1720
"contenido",
@@ -22,6 +25,8 @@
2225
"cspell",
2326
"csvg",
2427
"dangerfile",
28+
"deployables",
29+
"django",
2530
"dompurify",
2631
"dotenv",
2732
"Elipssis",
@@ -30,6 +35,7 @@
3035
"eslintcache",
3136
"extraida",
3237
"extraída",
38+
"fastapi",
3339
"grype",
3440
"hookform",
3541
"interactiva",
@@ -39,45 +45,50 @@
3945
"jspm",
4046
"jumpstart",
4147
"linaria",
48+
"Lingui",
4249
"lintstagedrc",
4350
"lucide",
51+
"makepkg",
4452
"megalinter",
4553
"mermaid",
4654
"minimatch",
4755
"misconfig",
56+
"mypy",
4857
"nextjs",
4958
"npmjs",
5059
"nums",
5160
"Pagespeed",
61+
"paru",
5262
"PBAC",
5363
"pgvector",
5464
"picomatch",
5565
"pids",
66+
"PKGBUILD",
5667
"preconfigured",
68+
"pydantic",
69+
"pyright",
70+
"pytest",
5771
"radix",
5872
"Reakit",
5973
"recharts",
60-
"bunx",
61-
"Codegen",
62-
"Lingui",
63-
"makepkg",
64-
"paru",
65-
"PKGBUILD",
74+
"ruff",
6675
"saas",
67-
"Supabase",
6876
"Selenoid",
6977
"shadcn",
7078
"sonner",
79+
"sqlalchemy",
7180
"srcset",
7281
"SSCCE",
7382
"stefanzweifel",
83+
"Supabase",
7484
"syft",
7585
"tailwindcss",
7686
"transpiling",
7787
"trivy",
7888
"trufflehog",
7989
"turborepo",
8090
"Turborepo",
91+
"typer",
8192
"ulises",
8293
"ulisesjeremias",
8394
"unmemoized",

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
Marketing and documentation site for create-node-app.
5+
Marketing and documentation site for create-python-app.
66

77
## Tech Stack
88

README.md

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
# Create Awesome Node App - Official Website
1+
# Create Awesome Python App - Official Website
22

3-
[![npm](https://img.shields.io/npm/v/create-awesome-node-app?style=flat-square&color=cb3837)](https://www.npmjs.com/package/create-awesome-node-app)
4-
[![npm downloads](https://img.shields.io/npm/dm/create-awesome-node-app?style=flat-square&color=cb3837)](https://www.npmjs.com/package/create-awesome-node-app)
5-
[![Templates](https://img.shields.io/badge/templates-cna--templates-blue?style=flat-square)](https://github.com/Create-Node-App/cna-templates)
6-
[![GitHub org](https://img.shields.io/badge/GitHub-Create--Node--App-black?style=flat-square&logo=github)](https://github.com/Create-Node-App)
3+
[![PyPI](https://img.shields.io/pypi/v/create-awesome-python-app?style=flat-square&color=3776ab)](https://pypi.org/project/create-awesome-python-app/)
4+
[![Templates](https://img.shields.io/badge/templates-cpa--templates-blue?style=flat-square)](https://github.com/Create-Python-App/cpa-templates)
5+
[![GitHub org](https://img.shields.io/badge/GitHub-Create--Python--App-black?style=flat-square&logo=github)](https://github.com/Create-Python-App)
76

8-
This is the official website for [Create Awesome Node App](https://www.npmjs.com/package/create-awesome-node-app), a tool that helps you quickly set up Node.js projects with best practices and modern tooling.
7+
This is the official website for [Create Awesome Python App](https://pypi.org/project/create-awesome-python-app/), a tool that helps you quickly set up Python projects with best practices and modern tooling (uv-first).
98

109
## Project Links
1110

12-
- [Official website](https://create-awesome-node-app.vercel.app)
13-
- [CLI package on npm](https://www.npmjs.com/package/create-awesome-node-app)
14-
- [Main Create-Node-App repository](https://github.com/Create-Node-App/create-node-app)
15-
- [Templates and extensions catalog](https://github.com/Create-Node-App/cna-templates)
16-
- [Create-Node-App GitHub organization](https://github.com/Create-Node-App)
11+
- [Official website](https://create-awesome-python-app.vercel.app)
12+
- [CLI package on PyPI](https://pypi.org/project/create-awesome-python-app/)
13+
- [Main Create-Python-App repository](https://github.com/Create-Python-App/create-python-app)
14+
- [Templates and extensions catalog](https://github.com/Create-Python-App/cpa-templates)
15+
- [Create-Python-App GitHub organization](https://github.com/Create-Python-App)
1716

1817
> [!TIP]
19-
> This project was initialized with [create-awesome-node-app](https://www.npmjs.com/package/create-awesome-node-app). **DO NOT USE THIS TEMPLATE DIRECTLY!** Instead, create your own project using the command and following the interactive menu options. For more information, refer to the documentation!
18+
> Scaffold new apps with [`create-awesome-python-app`](https://pypi.org/project/create-awesome-python-app/) — do not clone template snapshot repos for production work. Prefer:
19+
>
20+
> ```bash
21+
> uvx create-awesome-python-app my-api --template fastapi-starter
22+
> ```
2023
2124
## Features
2225
@@ -66,12 +69,12 @@ Scripts for preparing and viewing the production version:
6669
6770
## Contributing
6871
69-
Bug reports, feature requests, and pull requests are welcome on the [Create-Node-App/website](https://github.com/Create-Node-App/website) repository!
72+
Bug reports, feature requests, and pull requests are welcome on the [Create-Python-App/website](https://github.com/Create-Python-App/website) repository!
7073
7174
## 👥 Contributors
7275
73-
<a href="https://github.com/Create-Node-App/website/contributors">
74-
<img src="https://contrib.rocks/image?repo=Create-Node-App/website"/>
76+
<a href="https://github.com/Create-Python-App/website/contributors">
77+
<img src="https://contrib.rocks/image?repo=Create-Python-App/website" alt="Contributors to Create-Python-App/website"/>
7578
</a>
7679
77-
Made with [contributors-img](https://contrib.rocks).
80+
Made with [contributors-img](https://contrib.rocks).

docs/PROJECT_CONFIGURATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ⚙️ Project Configuration
22

3-
The application has been bootstrapped using [create-awesome-node-app](https://www.npmjs.com/package/create-awesome-node-app) for simplicity reasons. It allows us to create applications quickly without dealing with a complex tooling setup such as bundling, transpiling etc.
3+
The application has been bootstrapped using [create-awesome-python-app](https://pypi.org/project/create-awesome-python-app/) for simplicity reasons. It allows us to create applications quickly without dealing with a complex tooling setup such as bundling, transpiling etc.
44

55
You should always configure and use the following tools:
66

src/app/layout.tsx

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,45 @@ import '@/app/globals.css';
55
import { LayoutShell } from '@/components/layout-shell';
66
import { jsonLdScript, organizationJsonLd, websiteJsonLd } from '@/lib/seo';
77

8-
const siteUrl = 'https://create-awesome-node-app.vercel.app';
8+
const siteUrl = 'https://create-awesome-python-app.vercel.app';
99

1010
export const metadata: Metadata = {
1111
metadataBase: new URL(siteUrl),
1212
title: {
13-
default: 'Create Awesome Node App',
14-
template: '%s | Create Awesome Node App',
13+
default: 'Create Awesome Python App',
14+
template: '%s | Create Awesome Python App',
1515
},
1616
description:
17-
'One command. Any stack. Choose a template, add addons, and ship production-ready Node, Web, and AI-ready apps.',
17+
'One command. Any stack. Choose a template, add addons, and ship production-ready Python APIs, CLIs, and workers.',
1818
keywords: [
19-
'node templates',
20-
'node.js starter',
21-
'create node app',
22-
'typescript boilerplate',
23-
'next.js template',
24-
'nestjs starter',
25-
'node extensions',
19+
'python templates',
20+
'python starter',
21+
'create python app',
22+
'fastapi boilerplate',
23+
'django api template',
24+
'celery worker starter',
25+
'python extensions',
2626
],
27-
authors: [{ name: 'Create Awesome Node App Team', url: siteUrl }],
28-
creator: 'Create Awesome Node App',
29-
publisher: 'Create Awesome Node App',
27+
authors: [{ name: 'Create Awesome Python App Team', url: siteUrl }],
28+
creator: 'Create Awesome Python App',
29+
publisher: 'Create Awesome Python App',
3030
openGraph: {
31-
title: 'Create Awesome Node App',
32-
description: 'One command. Any stack. Compose templates and addons into production-ready Node.js apps.',
31+
title: 'Create Awesome Python App',
32+
description: 'One command. Any stack. Compose templates and addons into production-ready Python apps.',
3333
url: siteUrl,
34-
siteName: 'Create Awesome Node App',
34+
siteName: 'Create Awesome Python App',
3535
images: [
3636
{
3737
url: '/og-default.png', // raster fallback
3838
width: 1200,
3939
height: 630,
40-
alt: 'Create Awesome Node App – Templates & Extensions',
40+
alt: 'Create Awesome Python App – Templates & Extensions',
4141
},
4242
{
4343
url: '/og-default.svg', // some platforms now support SVG (fallback above covers others)
4444
width: 1200,
4545
height: 630,
46-
alt: 'Create Awesome Node App – Templates & Extensions',
46+
alt: 'Create Awesome Python App – Templates & Extensions',
4747
type: 'image/svg+xml',
4848
},
4949
],
@@ -52,8 +52,8 @@ export const metadata: Metadata = {
5252
},
5353
twitter: {
5454
card: 'summary_large_image',
55-
title: 'Create Awesome Node App',
56-
description: 'Discover Node.js templates and extensions to accelerate your development workflow.',
55+
title: 'Create Awesome Python App',
56+
description: 'Discover Python templates and extensions to accelerate your development workflow.',
5757
images: ['/og-default.png', '/og-default.svg'],
5858
creator: '@',
5959
},

src/app/robots.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { MetadataRoute } from 'next';
22

3-
const siteUrl = 'https://create-awesome-node-app.vercel.app';
3+
const siteUrl = 'https://create-awesome-python-app.vercel.app';
44

55
export default function robots(): MetadataRoute.Robots {
66
return {

src/app/sitemap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { MetadataRoute } from 'next';
22
import { getTemplatesData } from '@/lib/data';
33

4-
const siteUrl = 'https://create-awesome-node-app.vercel.app';
4+
const siteUrl = 'https://create-awesome-python-app.vercel.app';
55

66
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
77
const { templates, extensions, categories } = await getTemplatesData();

src/lib/__tests__/schemas.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,26 @@ describe('categorySchema', () => {
2525
describe('templateSchema', () => {
2626
it('should validate a valid template', () => {
2727
const validTemplate = {
28-
name: 'React Vite Starter',
28+
name: 'FastAPI Starter',
2929
description: 'A fast React boilerplate with Vite.',
30-
url: 'https://github.com/Create-Node-App/cna-templates/tree/main/templates/react-vite-starter',
30+
url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/templates/fastapi-starter',
3131
type: 'react',
3232
category: 'frontend-applications',
3333
labels: ['React', 'Vite', 'TypeScript'],
34-
slug: 'react-vite-starter',
34+
slug: 'fastapi-starter',
3535
};
3636
expect(templateSchema.safeParse(validTemplate).success).toBe(true);
3737
});
3838

3939
it('should reject a template with invalid url', () => {
4040
const invalidTemplate = {
41-
name: 'React Vite Starter',
41+
name: 'FastAPI Starter',
4242
description: 'A fast React boilerplate.',
4343
url: 'not-a-url',
4444
type: 'react',
4545
category: 'frontend-applications',
4646
labels: ['React'],
47-
slug: 'react-vite-starter',
47+
slug: 'fastapi-starter',
4848
};
4949
expect(templateSchema.safeParse(invalidTemplate).success).toBe(false);
5050
});
@@ -55,7 +55,7 @@ describe('extensionSchema', () => {
5555
const validExtension = {
5656
name: 'Tailwind CSS',
5757
description: 'Add Tailwind CSS.',
58-
url: 'https://github.com/Create-Node-App/cna-templates/tree/main/extensions/react-tailwindcss',
58+
url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/python-docker',
5959
type: 'react',
6060
category: 'UI',
6161
labels: ['Tailwind', 'CSS'],
@@ -68,7 +68,7 @@ describe('extensionSchema', () => {
6868
const validExtension = {
6969
name: 'GitHub Setup',
7070
description: 'Add GitHub automation.',
71-
url: 'https://github.com/Create-Node-App/cna-templates/tree/main/extensions/all-github-setup',
71+
url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/github-setup',
7272
type: ['react', 'nextjs', 'backend'],
7373
category: 'Tooling',
7474
labels: ['GitHub', 'CI/CD'],
@@ -83,13 +83,13 @@ describe('templatesDataSchema', () => {
8383
const validData = {
8484
templates: [
8585
{
86-
name: 'React Vite Starter',
86+
name: 'FastAPI Starter',
8787
description: 'A fast React boilerplate.',
8888
url: 'https://github.com/example/react-vite',
8989
type: 'react',
9090
category: 'frontend-applications',
9191
labels: ['React'],
92-
slug: 'react-vite-starter',
92+
slug: 'fastapi-starter',
9393
},
9494
],
9595
extensions: [

src/lib/__tests__/utils.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ describe('validateTemplate', () => {
2121

2222
it('should return data for valid template', () => {
2323
const validData = {
24-
name: 'React Vite Starter',
24+
name: 'FastAPI Starter',
2525
description: 'A fast React boilerplate.',
26-
url: 'https://github.com/Create-Node-App/cna-templates/tree/main/templates/react-vite-starter',
26+
url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/templates/fastapi-starter',
2727
type: 'react',
2828
category: 'frontend-applications',
2929
labels: ['React', 'Vite'],
30-
slug: 'react-vite-starter',
30+
slug: 'fastapi-starter',
3131
};
3232
const result = validateTemplate(validData);
3333
expect(result).not.toBeNull();
34-
expect(result?.name).toBe('React Vite Starter');
34+
expect(result?.name).toBe('FastAPI Starter');
3535
});
3636
});
3737

@@ -45,7 +45,7 @@ describe('validateExtension', () => {
4545
const validData = {
4646
name: 'Tailwind CSS',
4747
description: 'Add Tailwind CSS.',
48-
url: 'https://github.com/Create-Node-App/cna-templates/tree/main/extensions/react-tailwindcss',
48+
url: 'https://github.com/Create-Python-App/cpa-templates/tree/main/extensions/python-docker',
4949
type: 'react',
5050
category: 'UI',
5151
labels: ['Tailwind'],

src/lib/data.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { getFallbackData } from './mock-data';
22
import { type TemplatesData, templatesDataSchema } from './schemas';
33

4-
const TEMPLATES_URL = 'https://raw.githubusercontent.com/Create-Node-App/cna-templates/main/templates.json';
4+
const TEMPLATES_URL = 'https://raw.githubusercontent.com/Create-Python-App/cpa-templates/main/templates.json';
55

66
export async function getTemplatesData(): Promise<TemplatesData> {
77
try {

0 commit comments

Comments
 (0)