Skip to content

Commit 682c726

Browse files
2214962083claude
andauthored
feat(website): add seo enhancements with sitemap and structured data (#15)
* chore: remove obsolete VibeSync configuration files and update changelog links * chore: update package references to @nicepkg/vsync and release version 1.0.9 * chore: update package.json with repository details, author information, and keywords * chore: update package.json description to clarify functionality of the CLI tool * chore: remove obsolete changeset for version 10 * feat: add isMainModule function to determine if the current module is the main entry point * fix: resolve CLI functionality issue * docs: add full documentation link to README files * chore: add changeset for release v1.0.9 with patch for @nicepkg/vsync * chore: update documentation links to absolute paths and remove obsolete changeset * build: migrate from changesets to semantic-release Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update release command in GitHub Actions workflow * docs: format changelog with consistent version headers and commit links Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore(cli): fix eslint warnings and improve type annotations Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore(website): fix eslint warnings and formatting Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(website): add seo enhancements with sitemap, pwa manifest and structured data Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 93d9ea0 commit 682c726

File tree

25 files changed

+2055
-688
lines changed

25 files changed

+2055
-688
lines changed

pnpm-lock.yaml

Lines changed: 914 additions & 648 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

website/content/en/docs/faq.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ title: FAQ
33
description: Frequently asked questions about vsync. Get answers on choosing source tools, config overwriting, monorepo support, environment variables, migration, troubleshooting, and performance.
44
---
55

6+
import { FaqSchema, vsyncFaqsEn } from '~/components/seo/faq-schema'
7+
8+
<FaqSchema faqs={vsyncFaqsEn} />
9+
610
# Frequently Asked Questions
711

812
Common questions and answers about using vsync.

website/content/en/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
2-
title: vsync - One config. Many AI tools. Zero pain.
2+
title: vsync - Sync AI Coding Tool Configs | Claude Code, Cursor, OpenCode, Codex
3+
description: "One config. Many AI tools. Zero pain. vsync syncs Skills, MCP servers, Agents & Commands across Claude Code, Cursor, OpenCode and Codex with a single command. Free and open source CLI tool."
34
layout: full
45
search: false
56
sidebar: false

website/content/zh/docs/faq.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ title: 常见问题
33
description: 关于 vsync 的常见问题。获取有关选择源工具、配置覆盖、monorepo 支持、环境变量、迁移、故障排除和性能的答案。
44
---
55

6+
import { FaqSchema, vsyncFaqsZh } from '~/components/seo/faq-schema'
7+
8+
<FaqSchema faqs={vsyncFaqsZh} />
9+
610
# 常见问题
711

812
关于使用 vsync 的常见问题和解答。

website/content/zh/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
2-
title: vsync - 一处配置,多个 AI 工具同步,不再折腾。
2+
title: vsync - AI编程工具配置同步 | Claude Code, Cursor, OpenCode, Codex
3+
description: "一处配置,多个 AI 工具同步,不再折腾。vsync 一条命令同步 Skills、MCP服务器、Agents 和 Commands 到 Claude Code、Cursor、OpenCode 和 Codex。免费开源 CLI 工具。"
34
layout: full
45
search: false
56
sidebar: false

website/eslint.config.mjs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import { fileURLToPath } from "node:url";
33
import { FlatCompat } from "@eslint/eslintrc";
44
import { defineConfig, globalIgnores } from "eslint/config";
55
import prettier from "eslint-config-prettier/flat";
6-
import eslintPluginImport from "eslint-plugin-import";
76
import eslintPluginPrettier from "eslint-plugin-prettier";
8-
import tseslint from "typescript-eslint";
97

108
const configDir = path.dirname(fileURLToPath(import.meta.url));
119

@@ -40,7 +38,7 @@ const nextConfigs = compat
4038
});
4139

4240
export default defineConfig(
43-
// Next.js Core Web Vitals config (includes React, React Hooks, and Next.js rules)
41+
// Next.js Core Web Vitals config (includes React, React Hooks, Next.js, and TypeScript rules)
4442
...nextConfigs,
4543

4644
// Prettier config (disables conflicting ESLint rules)
@@ -59,11 +57,10 @@ export default defineConfig(
5957
".git/**",
6058
]),
6159

62-
// Custom rules and plugins
60+
// Custom rules for JS/TS files
6361
{
6462
files: ["**/*.{js,mjs,cjs,jsx,ts,tsx}"],
6563
plugins: {
66-
import: eslintPluginImport,
6764
prettier: eslintPluginPrettier,
6865
},
6966
settings: {
@@ -72,7 +69,7 @@ export default defineConfig(
7269
},
7370
},
7471
rules: {
75-
// Import rules
72+
// Import rules (plugin already loaded by next/core-web-vitals)
7673
"import/no-anonymous-default-export": "warn",
7774
"import/order": [
7875
"warn",
@@ -101,14 +98,9 @@ export default defineConfig(
10198
},
10299
},
103100

104-
// Additional TypeScript config
101+
// TypeScript-specific rules (without re-extending tseslint configs)
105102
{
106103
files: ["**/*.{ts,tsx}"],
107-
extends: [
108-
...tseslint.configs.recommended,
109-
...tseslint.configs.recommendedTypeChecked,
110-
...tseslint.configs.stylisticTypeChecked,
111-
],
112104
languageOptions: {
113105
parserOptions: {
114106
projectService: true,
@@ -163,14 +155,11 @@ export default defineConfig(
163155
},
164156
},
165157

166-
// Markdown files
158+
// Markdown files - ignore by default
167159
{
168160
files: ["**/*.md"],
169-
plugins: {
170-
prettier: eslintPluginPrettier,
171-
},
172161
rules: {
173-
"prettier/prettier": "warn",
162+
// Disable all rules for markdown
174163
},
175164
},
176165

website/package.json

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"private": true,
55
"type": "module",
66
"scripts": {
7-
"postbuild": "pagefind --site .next/server/app --output-path public/_pagefind",
7+
"generate-sitemap": "npx tsx scripts/generate-sitemap.ts",
8+
"postbuild": "pagefind --site .next/server/app --output-path public/_pagefind && pnpm generate-sitemap",
89
"build": "next build && pnpm postbuild",
910
"check": "eslint . && tsc --noEmit",
1011
"dev": "next dev --turbo",
@@ -46,24 +47,24 @@
4647
"@react-three/drei": "^10.7.7",
4748
"@react-three/fiber": "^9.5.0",
4849
"@t3-oss/env-nextjs": "^0.13.10",
49-
"@tanstack/react-query": "^5.90.19",
50+
"@tanstack/react-query": "^5.90.20",
5051
"class-variance-authority": "^0.7.1",
5152
"clsx": "^2.1.1",
5253
"cmdk": "^1.1.1",
5354
"date-fns": "^4.1.0",
5455
"embla-carousel-react": "^8.6.0",
55-
"framer-motion": "^12.29.0",
56+
"framer-motion": "^12.29.2",
5657
"input-otp": "^1.4.2",
5758
"lucide-react": "^0.563.0",
5859
"next": "^15.2.3",
5960
"next-themes": "^0.4.6",
6061
"nextra": "^4.6.1",
6162
"nextra-theme-docs": "^4.6.1",
62-
"react": "^19.2.3",
63+
"react": "^19.2.4",
6364
"react-day-picker": "^9.13.0",
64-
"react-dom": "^19.2.3",
65+
"react-dom": "^19.2.4",
6566
"react-hook-form": "^7.71.1",
66-
"react-resizable-panels": "^4.4.1",
67+
"react-resizable-panels": "^4.5.2",
6768
"recharts": "2.15.4",
6869
"sonner": "^2.0.7",
6970
"tailwind-merge": "^3.4.0",
@@ -93,9 +94,10 @@
9394
"prettier": "^3.8.1",
9495
"prettier-plugin-tailwindcss": "^0.7.2",
9596
"tailwindcss": "^4.1.18",
97+
"tsx": "^4.21.0",
9698
"tw-animate-css": "^1.4.0",
9799
"typescript": "^5.9.3",
98-
"typescript-eslint": "^8.53.1"
100+
"typescript-eslint": "^8.54.0"
99101
},
100102
"ct3aMetadata": {
101103
"initVersion": "7.40.0"
6.27 KB
Loading

website/public/icon-192.png

6.49 KB
Loading

website/public/icon-512.png

29.4 KB
Loading

0 commit comments

Comments
 (0)