Skip to content

Commit 17db765

Browse files
Remove GitHub Actions and SEO addons
1 parent 3172b5b commit 17db765

File tree

12 files changed

+49
-242
lines changed

12 files changed

+49
-242
lines changed

.changeset/fluffy-schools-speak.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"create-better-t-stack": patch
3+
---
4+
5+
Remove GitHub Actions and SEO addons

apps/cli/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ Options:
4242
--auth Include authentication
4343
--no-auth Disable authentication
4444
--docker Include Docker setup
45-
--github-actions Add GitHub Actions workflows
46-
--seo Configure SEO optimizations
4745
--git Initialize a new git repo (default)
4846
--no-git Skip git initialization
4947
--npm Use npm as package manager

apps/cli/src/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ export const DEFAULT_CONFIG: ProjectConfig = {
1919

2020
export const dependencyVersionMap = {
2121
// Authentication
22-
"better-auth": "^1.1.16",
22+
"better-auth": "^1.2.4",
2323

2424
// Database - Drizzle
2525
"drizzle-orm": "^0.38.4",
26-
"drizzle-kit": "^0.30.4",
26+
"drizzle-kit": "^0.30.5",
2727

2828
// Database - SQLite/PostgreSQL
2929
"@libsql/client": "^0.14.0",

apps/cli/src/helpers/addons-setup.ts

Lines changed: 0 additions & 191 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,6 @@ export async function setupAddons(projectDir: string, addons: ProjectAddons[]) {
66
if (addons.includes("docker")) {
77
await setupDocker(projectDir);
88
}
9-
10-
if (addons.includes("github-actions")) {
11-
await setupGithubActions(projectDir);
12-
}
13-
14-
if (addons.includes("SEO")) {
15-
// log.info(
16-
// pc.yellow(
17-
// "SEO feature is still a work-in-progress and will be available in a future update.",
18-
// ),
19-
// );
20-
await setupSEO(projectDir);
21-
}
229
}
2310

2411
async function setupDocker(projectDir: string) {
@@ -103,181 +90,3 @@ node_modules
10390
dockerignoreContent,
10491
);
10592
}
106-
107-
async function setupGithubActions(projectDir: string) {
108-
const workflowsDir = path.join(projectDir, ".github/workflows");
109-
await fs.ensureDir(workflowsDir);
110-
111-
const ciWorkflowContent = `name: CI
112-
113-
on:
114-
push:
115-
branches: [ main ]
116-
pull_request:
117-
branches: [ main ]
118-
119-
jobs:
120-
build:
121-
runs-on: ubuntu-latest
122-
123-
steps:
124-
- uses: actions/checkout@v3
125-
126-
- name: Setup Node.js
127-
uses: actions/setup-node@v3
128-
with:
129-
node-version: '18'
130-
cache: 'npm'
131-
132-
- name: Install dependencies
133-
run: npm ci
134-
135-
- name: Type check
136-
run: npm run check-types
137-
138-
- name: Build
139-
run: npm run build
140-
`;
141-
142-
const deployWorkflowContent = `name: Deploy
143-
144-
on:
145-
push:
146-
branches: [ main ]
147-
148-
# Enable manual trigger
149-
workflow_dispatch:
150-
151-
jobs:
152-
deploy:
153-
runs-on: ubuntu-latest
154-
155-
steps:
156-
- uses: actions/checkout@v3
157-
158-
- name: Setup Node.js
159-
uses: actions/setup-node@v3
160-
with:
161-
node-version: '18'
162-
cache: 'npm'
163-
164-
- name: Install dependencies
165-
run: npm ci
166-
167-
- name: Build
168-
run: npm run build
169-
170-
# Add your deployment steps here
171-
# This is just a placeholder for your actual deployment logic
172-
- name: Deploy
173-
run: echo "Add your deployment commands here"
174-
`;
175-
176-
await fs.writeFile(path.join(workflowsDir, "ci.yml"), ciWorkflowContent);
177-
await fs.writeFile(
178-
path.join(workflowsDir, "deploy.yml"),
179-
deployWorkflowContent,
180-
);
181-
}
182-
183-
async function setupSEO(projectDir: string) {
184-
const robotsContent = `# Instructions: Customize this file to control how search engines crawl your site
185-
# Learn more: https://developers.google.com/search/docs/advanced/robots/create-robots-txt
186-
187-
# Allow all crawlers (default)
188-
User-agent: *
189-
Allow: /
190-
191-
# Disallow crawling of specific directories (uncomment and customize as needed)
192-
# Disallow: /admin/
193-
# Disallow: /private/
194-
195-
# Specify the location of your sitemap
196-
Sitemap: https://yourdomain.com/sitemap.xml
197-
`;
198-
199-
await fs.writeFile(
200-
path.join(projectDir, "packages", "client", "robots.txt"),
201-
robotsContent,
202-
);
203-
204-
const sitemapContent = `<?xml version="1.0" encoding="UTF-8"?>
205-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
206-
207-
<url>
208-
<loc>https://yourdomain.com/</loc>
209-
<lastmod>2025-03-01</lastmod>
210-
<changefreq>weekly</changefreq>
211-
<priority>1.0</priority>
212-
</url>
213-
214-
<url>
215-
<loc>https://yourdomain.com/about</loc>
216-
<lastmod>2025-03-01</lastmod>
217-
<changefreq>monthly</changefreq>
218-
<priority>0.8</priority>
219-
</url>
220-
221-
</urlset>
222-
`;
223-
await fs.writeFile(
224-
path.join(projectDir, "packages", "client", "sitemap.xml"),
225-
sitemapContent,
226-
);
227-
228-
const metaContent = `<!doctype html>
229-
<html lang="en">
230-
231-
<head>
232-
<meta charset="UTF-8" />
233-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
234-
<title>TanStack Router</title>
235-
<meta name="description"
236-
content="Replace this with your page description - keep it between 150-160 characters for optimal display in search results." />
237-
<meta name="keywords" content="keyword1, keyword2, keyword3, customize based on your content" />
238-
<meta name="robots" content="index, follow" />
239-
<link rel="icon" href="/favicon.ico" />
240-
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
241-
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
242-
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
243-
244-
<!-- OPEN GRAPH TAGS: Optimize how your content appears when shared on Facebook, LinkedIn, etc. -->
245-
<meta property="og:title" content="Replace with your page title" />
246-
<meta property="og:description"
247-
content="Replace with your page description (typically the same as meta description)" />
248-
<meta property="og:image" content="path-to-image" />
249-
<meta property="og:type" content="website" />
250-
<meta property="og:site_name" content="Your Site Name" />
251-
252-
<!-- TWITTER CARD TAGS: Optimize how your content appears when shared on Twitter -->
253-
<meta name="twitter:card" content="summary_large_image" />
254-
<meta name="twitter:title" content="Replace with your page title" />
255-
<meta name="twitter:description" content="Replace with your page description" />
256-
<meta name="twitter:image" content="path-to-image" />
257-
<meta name="twitter:creator" content="@yourtwitterhandle" />
258-
259-
<!-- STRUCTURED DATA: Help search engines understand your content better (JSON-LD format) -->
260-
<script type="application/ld+json">
261-
{
262-
"@context": "https://schema.org",
263-
"@type": "WebPage",
264-
"name": "Replace with your page title",
265-
"description": "Replace with your page description",
266-
"url": "https://yourdomain.com/your-page-url"
267-
}
268-
</script>
269-
</head>
270-
271-
<body>
272-
<div id="app"></div>
273-
<script type="module" src="/src/main.tsx"></script>
274-
</body>
275-
276-
</html>
277-
`;
278-
279-
await fs.writeFile(
280-
path.join(projectDir, "packages", "client", "index.html"),
281-
metaContent,
282-
);
283-
}

apps/cli/src/helpers/create-readme.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,6 @@ function generateFeaturesList(
9999
for (const feature of features) {
100100
if (feature === "docker") {
101101
featuresList.push("- **Docker** - Containerized deployment");
102-
} else if (feature === "github-actions") {
103-
featuresList.push("- **GitHub Actions** - CI/CD workflows");
104-
} else if (feature === "SEO") {
105-
featuresList.push("- **SEO** - Search engine optimization tools");
106102
}
107103
}
108104

apps/cli/src/index.ts

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ async function main() {
3131
.option("--auth", "Include authentication")
3232
.option("--no-auth", "Exclude authentication")
3333
.option("--docker", "Include Docker setup")
34-
.option("--github-actions", "Include GitHub Actions")
35-
.option("--seo", "Include SEO setup")
3634
.option("--no-addons", "Skip all additional addons")
3735
.option("--git", "Include git setup")
3836
.option("--no-git", "Skip git initialization")
@@ -72,18 +70,11 @@ async function main() {
7270
...("git" in options && { git: options.git }),
7371
...("install" in options && { noInstall: !options.install }),
7472
...("turso" in options && { turso: options.turso }),
75-
...((options.docker ||
76-
options.githubActions ||
77-
options.seo ||
78-
options.addons === false) && {
73+
...((options.docker || options.addons === false) && {
7974
addons:
8075
options.addons === false
8176
? []
82-
: ([
83-
...(options.docker ? ["docker"] : []),
84-
...(options.githubActions ? ["github-actions"] : []),
85-
...(options.seo ? ["SEO"] : []),
86-
] as ProjectAddons[]),
77+
: ([...(options.docker ? ["docker"] : [])] as ProjectAddons[]),
8778
}),
8879
};
8980

apps/cli/src/prompts/addons.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,6 @@ export async function getAddonsChoice(
1515
label: "Docker setup",
1616
hint: "Containerize your application",
1717
},
18-
{
19-
value: "github-actions",
20-
label: "GitHub Actions",
21-
hint: "CI/CD workflows",
22-
},
23-
{
24-
value: "SEO",
25-
label: "Basic SEO setup",
26-
hint: "Search engine optimization configuration",
27-
},
2818
],
2919
required: false,
3020
});

apps/cli/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export type ProjectDatabase = "sqlite" | "postgres" | "none";
22
export type ProjectOrm = "drizzle" | "prisma" | "none";
33
export type PackageManager = "npm" | "pnpm" | "yarn" | "bun";
4-
export type ProjectAddons = "docker" | "github-actions" | "SEO";
4+
export type ProjectAddons = "docker";
55

66
export interface ProjectConfig {
77
projectName: string;

apps/cli/template/base/packages/client/index.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6-
<title>TanStack Router</title>
76
</head>
87

98
<body>

apps/cli/template/base/packages/client/package.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,40 @@
1111
"check-types": "tsc --noEmit"
1212
},
1313
"devDependencies": {
14-
"@tanstack/router-plugin": "^1.101.0",
15-
"@types/node": "^22.13.1",
16-
"@types/react": "^19.0.8",
17-
"@types/react-dom": "^19.0.3",
14+
"@tanstack/router-plugin": "^1.114.25",
15+
"@types/node": "^22.13.10",
16+
"@types/react": "^19.0.12",
17+
"@types/react-dom": "^19.0.4",
1818
"@vitejs/plugin-react": "^4.3.4",
19-
"postcss": "^8.5.1",
20-
"prettier": "^3.4.2",
19+
"postcss": "^8.5.3",
20+
"prettier": "^3.5.3",
2121
"prettier-plugin-tailwindcss": "^0.6.11",
22-
"tailwindcss": "^4.0.5",
23-
"vite": "^6.1.0"
22+
"tailwindcss": "^4.0.14",
23+
"vite": "^6.2.2"
2424
},
2525
"dependencies": {
2626
"@hookform/resolvers": "^3.10.0",
2727
"@radix-ui/react-dropdown-menu": "^2.1.6",
2828
"@radix-ui/react-label": "^2.1.2",
2929
"@radix-ui/react-slot": "^1.1.2",
30-
"@tailwindcss/vite": "^4.0.5",
3130
"@tanstack/react-form": "^1.0.5",
32-
"@tanstack/react-query": "^5.66.0",
33-
"@tanstack/react-query-devtools": "^5.66.0",
34-
"@tanstack/react-router": "^1.101.0",
35-
"@tanstack/react-router-devtools": "^1.114.25",
36-
"@trpc/client": "^11.0.0-rc.748",
37-
"@trpc/react-query": "^11.0.0-rc.748",
38-
"@trpc/server": "^11.0.0-rc.748",
31+
"@tailwindcss/vite": "^4.0.14",
32+
"@tanstack/react-query": "^5.69.0",
33+
"@tanstack/react-query-devtools": "^5.69.0",
34+
"@tanstack/react-router": "^1.114.25",
35+
"@tanstack/router-devtools": "^1.114.25",
36+
"@trpc/client": "^11.0.0-rc.840",
37+
"@trpc/react-query": "^11.0.0-rc.840",
38+
"@trpc/server": "^11.0.0-rc.840",
3939
"class-variance-authority": "^0.7.1",
4040
"clsx": "^2.1.1",
4141
"lucide-react": "^0.473.0",
42-
"next-themes": "^0.4.4",
42+
"next-themes": "^0.4.6",
4343
"react": "^19.0.0",
4444
"react-dom": "^19.0.0",
4545
"sonner": "^1.7.4",
4646
"tailwind-merge": "^2.6.0",
4747
"tailwindcss-animate": "^1.0.7",
48-
"zod": "^3.24.1"
48+
"zod": "^3.24.2"
4949
}
5050
}

0 commit comments

Comments
 (0)