From 17db765a022027e71410dd3d63378cd23fd4fdde Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Thu, 20 Mar 2025 23:32:40 +0530 Subject: [PATCH] Remove GitHub Actions and SEO addons --- .changeset/fluffy-schools-speak.md | 5 + apps/cli/README.md | 2 - apps/cli/src/constants.ts | 4 +- apps/cli/src/helpers/addons-setup.ts | 191 ------------------ apps/cli/src/helpers/create-readme.ts | 4 - apps/cli/src/index.ts | 13 +- apps/cli/src/prompts/addons.ts | 10 - apps/cli/src/types.ts | 2 +- .../template/base/packages/client/index.html | 1 - .../base/packages/client/package.json | 36 ++-- .../packages/client/src/routes/__root.tsx | 19 ++ .../base/packages/server/package.json | 4 +- 12 files changed, 49 insertions(+), 242 deletions(-) create mode 100644 .changeset/fluffy-schools-speak.md diff --git a/.changeset/fluffy-schools-speak.md b/.changeset/fluffy-schools-speak.md new file mode 100644 index 0000000..f615c54 --- /dev/null +++ b/.changeset/fluffy-schools-speak.md @@ -0,0 +1,5 @@ +--- +"create-better-t-stack": patch +--- + +Remove GitHub Actions and SEO addons diff --git a/apps/cli/README.md b/apps/cli/README.md index 7155343..4c3f6e2 100644 --- a/apps/cli/README.md +++ b/apps/cli/README.md @@ -42,8 +42,6 @@ Options: --auth Include authentication --no-auth Disable authentication --docker Include Docker setup - --github-actions Add GitHub Actions workflows - --seo Configure SEO optimizations --git Initialize a new git repo (default) --no-git Skip git initialization --npm Use npm as package manager diff --git a/apps/cli/src/constants.ts b/apps/cli/src/constants.ts index bdb30bd..43c292c 100644 --- a/apps/cli/src/constants.ts +++ b/apps/cli/src/constants.ts @@ -19,11 +19,11 @@ export const DEFAULT_CONFIG: ProjectConfig = { export const dependencyVersionMap = { // Authentication - "better-auth": "^1.1.16", + "better-auth": "^1.2.4", // Database - Drizzle "drizzle-orm": "^0.38.4", - "drizzle-kit": "^0.30.4", + "drizzle-kit": "^0.30.5", // Database - SQLite/PostgreSQL "@libsql/client": "^0.14.0", diff --git a/apps/cli/src/helpers/addons-setup.ts b/apps/cli/src/helpers/addons-setup.ts index ab4e26f..5d1414a 100644 --- a/apps/cli/src/helpers/addons-setup.ts +++ b/apps/cli/src/helpers/addons-setup.ts @@ -6,19 +6,6 @@ export async function setupAddons(projectDir: string, addons: ProjectAddons[]) { if (addons.includes("docker")) { await setupDocker(projectDir); } - - if (addons.includes("github-actions")) { - await setupGithubActions(projectDir); - } - - if (addons.includes("SEO")) { - // log.info( - // pc.yellow( - // "SEO feature is still a work-in-progress and will be available in a future update.", - // ), - // ); - await setupSEO(projectDir); - } } async function setupDocker(projectDir: string) { @@ -103,181 +90,3 @@ node_modules dockerignoreContent, ); } - -async function setupGithubActions(projectDir: string) { - const workflowsDir = path.join(projectDir, ".github/workflows"); - await fs.ensureDir(workflowsDir); - - const ciWorkflowContent = `name: CI - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '18' - cache: 'npm' - - - name: Install dependencies - run: npm ci - - - name: Type check - run: npm run check-types - - - name: Build - run: npm run build -`; - - const deployWorkflowContent = `name: Deploy - -on: - push: - branches: [ main ] - - # Enable manual trigger - workflow_dispatch: - -jobs: - deploy: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: '18' - cache: 'npm' - - - name: Install dependencies - run: npm ci - - - name: Build - run: npm run build - - # Add your deployment steps here - # This is just a placeholder for your actual deployment logic - - name: Deploy - run: echo "Add your deployment commands here" -`; - - await fs.writeFile(path.join(workflowsDir, "ci.yml"), ciWorkflowContent); - await fs.writeFile( - path.join(workflowsDir, "deploy.yml"), - deployWorkflowContent, - ); -} - -async function setupSEO(projectDir: string) { - const robotsContent = `# Instructions: Customize this file to control how search engines crawl your site -# Learn more: https://developers.google.com/search/docs/advanced/robots/create-robots-txt - -# Allow all crawlers (default) -User-agent: * -Allow: / - -# Disallow crawling of specific directories (uncomment and customize as needed) -# Disallow: /admin/ -# Disallow: /private/ - -# Specify the location of your sitemap -Sitemap: https://yourdomain.com/sitemap.xml -`; - - await fs.writeFile( - path.join(projectDir, "packages", "client", "robots.txt"), - robotsContent, - ); - - const sitemapContent = ` - - - - https://yourdomain.com/ - 2025-03-01 - weekly - 1.0 - - - - https://yourdomain.com/about - 2025-03-01 - monthly - 0.8 - - - -`; - await fs.writeFile( - path.join(projectDir, "packages", "client", "sitemap.xml"), - sitemapContent, - ); - - const metaContent = ` - - - - - - TanStack Router - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -`; - - await fs.writeFile( - path.join(projectDir, "packages", "client", "index.html"), - metaContent, - ); -} diff --git a/apps/cli/src/helpers/create-readme.ts b/apps/cli/src/helpers/create-readme.ts index dc45fe9..8bd7258 100644 --- a/apps/cli/src/helpers/create-readme.ts +++ b/apps/cli/src/helpers/create-readme.ts @@ -99,10 +99,6 @@ function generateFeaturesList( for (const feature of features) { if (feature === "docker") { featuresList.push("- **Docker** - Containerized deployment"); - } else if (feature === "github-actions") { - featuresList.push("- **GitHub Actions** - CI/CD workflows"); - } else if (feature === "SEO") { - featuresList.push("- **SEO** - Search engine optimization tools"); } } diff --git a/apps/cli/src/index.ts b/apps/cli/src/index.ts index f8f7758..b956df8 100644 --- a/apps/cli/src/index.ts +++ b/apps/cli/src/index.ts @@ -31,8 +31,6 @@ async function main() { .option("--auth", "Include authentication") .option("--no-auth", "Exclude authentication") .option("--docker", "Include Docker setup") - .option("--github-actions", "Include GitHub Actions") - .option("--seo", "Include SEO setup") .option("--no-addons", "Skip all additional addons") .option("--git", "Include git setup") .option("--no-git", "Skip git initialization") @@ -72,18 +70,11 @@ async function main() { ...("git" in options && { git: options.git }), ...("install" in options && { noInstall: !options.install }), ...("turso" in options && { turso: options.turso }), - ...((options.docker || - options.githubActions || - options.seo || - options.addons === false) && { + ...((options.docker || options.addons === false) && { addons: options.addons === false ? [] - : ([ - ...(options.docker ? ["docker"] : []), - ...(options.githubActions ? ["github-actions"] : []), - ...(options.seo ? ["SEO"] : []), - ] as ProjectAddons[]), + : ([...(options.docker ? ["docker"] : [])] as ProjectAddons[]), }), }; diff --git a/apps/cli/src/prompts/addons.ts b/apps/cli/src/prompts/addons.ts index ad46f6c..5b229f2 100644 --- a/apps/cli/src/prompts/addons.ts +++ b/apps/cli/src/prompts/addons.ts @@ -15,16 +15,6 @@ export async function getAddonsChoice( label: "Docker setup", hint: "Containerize your application", }, - { - value: "github-actions", - label: "GitHub Actions", - hint: "CI/CD workflows", - }, - { - value: "SEO", - label: "Basic SEO setup", - hint: "Search engine optimization configuration", - }, ], required: false, }); diff --git a/apps/cli/src/types.ts b/apps/cli/src/types.ts index f7b8bd0..680f3ba 100644 --- a/apps/cli/src/types.ts +++ b/apps/cli/src/types.ts @@ -1,7 +1,7 @@ export type ProjectDatabase = "sqlite" | "postgres" | "none"; export type ProjectOrm = "drizzle" | "prisma" | "none"; export type PackageManager = "npm" | "pnpm" | "yarn" | "bun"; -export type ProjectAddons = "docker" | "github-actions" | "SEO"; +export type ProjectAddons = "docker"; export interface ProjectConfig { projectName: string; diff --git a/apps/cli/template/base/packages/client/index.html b/apps/cli/template/base/packages/client/index.html index aed7499..d7d639d 100644 --- a/apps/cli/template/base/packages/client/index.html +++ b/apps/cli/template/base/packages/client/index.html @@ -3,7 +3,6 @@ - TanStack Router diff --git a/apps/cli/template/base/packages/client/package.json b/apps/cli/template/base/packages/client/package.json index f26826c..ee38a20 100644 --- a/apps/cli/template/base/packages/client/package.json +++ b/apps/cli/template/base/packages/client/package.json @@ -11,40 +11,40 @@ "check-types": "tsc --noEmit" }, "devDependencies": { - "@tanstack/router-plugin": "^1.101.0", - "@types/node": "^22.13.1", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@tanstack/router-plugin": "^1.114.25", + "@types/node": "^22.13.10", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", - "postcss": "^8.5.1", - "prettier": "^3.4.2", + "postcss": "^8.5.3", + "prettier": "^3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", - "tailwindcss": "^4.0.5", - "vite": "^6.1.0" + "tailwindcss": "^4.0.14", + "vite": "^6.2.2" }, "dependencies": { "@hookform/resolvers": "^3.10.0", "@radix-ui/react-dropdown-menu": "^2.1.6", "@radix-ui/react-label": "^2.1.2", "@radix-ui/react-slot": "^1.1.2", - "@tailwindcss/vite": "^4.0.5", "@tanstack/react-form": "^1.0.5", - "@tanstack/react-query": "^5.66.0", - "@tanstack/react-query-devtools": "^5.66.0", - "@tanstack/react-router": "^1.101.0", - "@tanstack/react-router-devtools": "^1.114.25", - "@trpc/client": "^11.0.0-rc.748", - "@trpc/react-query": "^11.0.0-rc.748", - "@trpc/server": "^11.0.0-rc.748", + "@tailwindcss/vite": "^4.0.14", + "@tanstack/react-query": "^5.69.0", + "@tanstack/react-query-devtools": "^5.69.0", + "@tanstack/react-router": "^1.114.25", + "@tanstack/router-devtools": "^1.114.25", + "@trpc/client": "^11.0.0-rc.840", + "@trpc/react-query": "^11.0.0-rc.840", + "@trpc/server": "^11.0.0-rc.840", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.473.0", - "next-themes": "^0.4.4", + "next-themes": "^0.4.6", "react": "^19.0.0", "react-dom": "^19.0.0", "sonner": "^1.7.4", "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7", - "zod": "^3.24.1" + "zod": "^3.24.2" } } diff --git a/apps/cli/template/base/packages/client/src/routes/__root.tsx b/apps/cli/template/base/packages/client/src/routes/__root.tsx index 503e9e9..2fe56b3 100644 --- a/apps/cli/template/base/packages/client/src/routes/__root.tsx +++ b/apps/cli/template/base/packages/client/src/routes/__root.tsx @@ -8,6 +8,7 @@ import { Outlet, createRootRouteWithContext, useRouterState, + HeadContent, } from "@tanstack/react-router"; import { TanStackRouterDevtools } from "@tanstack/react-router-devtools"; import "../index.css"; @@ -18,6 +19,23 @@ export interface RouterAppContext { export const Route = createRootRouteWithContext()({ component: RootComponent, + head: () => ({ + meta: [ + { + title: "My App", + }, + { + name: "description", + content: "My App is a web application", + }, + ], + links: [ + { + rel: "icon", + href: "/favicon.ico", + }, + ], + }), }); function RootComponent() { @@ -26,6 +44,7 @@ function RootComponent() { }); return ( <> +
{isFetching && } diff --git a/apps/cli/template/base/packages/server/package.json b/apps/cli/template/base/packages/server/package.json index 48f7298..5637173 100644 --- a/apps/cli/template/base/packages/server/package.json +++ b/apps/cli/template/base/packages/server/package.json @@ -14,12 +14,12 @@ "@hono/trpc-server": "^0.3.4", "@trpc/server": "^11.0.0-rc.748", "dotenv": "^16.4.7", - "hono": "^4.7.0", + "hono": "^4.7.5", "zod": "^3.24.1" }, "devDependencies": { "tsx": "^4.19.2", "@types/node": "^22.13.4", - "typescript": "^5.7.3" + "typescript": "^5.8.2" } }