diff --git a/.github/workflows/ci.yml b/.github/workflows/test.yml
similarity index 99%
rename from .github/workflows/ci.yml
rename to .github/workflows/test.yml
index 4c31bcb..006ffc6 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/test.yml
@@ -7,7 +7,7 @@ on:
branches: [main]
jobs:
- ci:
+ test:
runs-on: ubuntu-latest
steps:
diff --git a/.gitignore b/.gitignore
index f1945f9..fae9b60 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,4 +29,7 @@ yarn-error.log*
.vercel
# AI
-.claude/*
\ No newline at end of file
+.claude/*
+
+# Auto-generated files (generated during deployment)
+/public/sitemap.xml
\ No newline at end of file
diff --git a/api/sitemap.xml.js b/api/sitemap.xml.js
new file mode 100644
index 0000000..c1e91c9
--- /dev/null
+++ b/api/sitemap.xml.js
@@ -0,0 +1,18 @@
+// Vercel API Route: /api/sitemap.xml
+export default function handler(req, res) {
+ const baseUrl = 'https://circassimilate.com';
+ const lastmod = new Date().toISOString().split('T')[0];
+
+ const sitemap = `
+
+
+ ${baseUrl}
+ ${lastmod}
+ monthly
+ 1.0
+
+`;
+
+ res.setHeader('Content-Type', 'text/xml');
+ res.status(200).send(sitemap);
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 7c4ba02..a10c12d 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"scripts": {
"dev": "vite",
"build": "tsc && eslint src --ext .ts,.tsx,.js,.jsx && vite build",
+ "build:production": "tsc && eslint src --ext .ts,.tsx,.js,.jsx && node scripts/generate-sitemap.js && vite build",
"preview": "vite preview",
"test": "jest",
"test:ci": "jest --coverage --watchAll=false",
diff --git a/public/sitemap.xml b/public/sitemap.xml
deleted file mode 100644
index d8cadd9..0000000
--- a/public/sitemap.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- https://circassimilate.com
- 2025-01-14
- monthly
- 1.0
-
-
\ No newline at end of file
diff --git a/scripts/generate-sitemap.js b/scripts/generate-sitemap.js
new file mode 100644
index 0000000..3921671
--- /dev/null
+++ b/scripts/generate-sitemap.js
@@ -0,0 +1,37 @@
+#!/usr/bin/env node
+
+import { writeFileSync } from 'fs';
+import { fileURLToPath } from 'url';
+import { dirname, join } from 'path';
+
+const __dirname = dirname(fileURLToPath(import.meta.url));
+
+const generateSitemap = () => {
+ const baseUrl = 'https://circassimilate.com';
+ const lastmod = new Date().toISOString().split('T')[0];
+
+ const pages = [
+ {
+ url: '',
+ lastmod,
+ changefreq: 'monthly',
+ priority: '1.0'
+ }
+ ];
+
+ const sitemap = `
+
+${pages.map(page => `
+ ${baseUrl}${page.url}
+ ${page.lastmod}
+ ${page.changefreq}
+ ${page.priority}
+ `).join('\n')}
+`;
+
+ const sitemapPath = join(__dirname, '../public/sitemap.xml');
+ writeFileSync(sitemapPath, sitemap);
+ console.log('✅ Sitemap generated successfully');
+};
+
+generateSitemap();
\ No newline at end of file
diff --git a/vercel.json b/vercel.json
index c7000ed..199b50d 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1,5 +1,5 @@
{
- "buildCommand": "pnpm run build",
+ "buildCommand": "pnpm run build:production",
"outputDirectory": "build",
"installCommand": "pnpm install --frozen-lockfile",
"framework": "vite",