Communitygithub.com

diegosouzapw/service-website-generator

自動化生成服務型商業網站,並針對本地 SEO 進行優化。使用並行代理程式、Jina AI 的 Unsplash 圖片、NextJS 動態路由及 PostgreSQL 資料庫,一次建立 200 個以上的服務+地點頁面。適用於建立服務型商業網站(如水電工、電工、高壓清洗、空調等)並鎖定多個地區。

service-website-generator 是什麼?

這個 AI 技能(skill)是一個整合型的自動化工作流程,旨在為服務型商業(如水電行、電工、高壓清洗、暖通空調 HVAC 等)快速生成功能完整的網站,並針對本地 SEO(Local SEO)進行深度優化。其核心原理是透過一系列專業代理程式(agent)協作,並大量使用並行處理來提升效率。 技能會先收集使用者輸入的服務類別、服務區域及 Jina API 金鑰等必要資訊,接著自動產生符合前端美學(具備獨特字體、行業專屬色系與動畫效果)的設計,並透過地點生成器探索服務範圍內(15-50 英里)的所有鄉鎮與社區,以建立 20-50 個以上的潛在地點清單。隨後,服務結構生成器會為該行業建立 5-15 種服務的完整結構化資料。 最關鍵的步驟是會根據服務總數乘以地點數量(例如 15 種服務 × 48 個地點 = 720 頁),動態計算所需代理程式數量,然後同時啟動數十個「服務頁面生成器」代理程式,各自處理 10-15 頁的內容與圖片(透過 Jina AI 從 Unsplash 抓取相關圖片)。最後,Next.js 建置代理程式會將所有資料整合為一個包含首頁、服務頁、地點頁以及所有服務+地點動態頁面的完整網站,並透過 Playwright 進行自動化測試,確保一切正常後再部署至 GitHub。 此技能支援 Claude Code、Cursor 等支援 SKILL.md 規範的 AI 代理平台,能大幅減少開發者從零搭建這類大型靜態網站所需的時間與複雜度,非常適合快速建立具有數百頁規模的本地服務型網站。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/diegosouzapw/awesome-omni-skill/tree/HEAD/skills/backend/service-website-generator

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

服務網站生成器

建構完整的服務型網站,在一個自動化流程中產生數百個本地 SEO 頁面。

技術棧:NextJS 14 + TypeScript + Tailwind CSS + PostgreSQL + Prisma ORM + Jina AI + Unsplash

快速入門

步驟 0:收集使用者輸入(必要)

在繼續之前,請先收集以下資訊:

  1. 服務類別:提供什麼服務?(例如「水電工」、「高壓清洗」、「暖通空調」)
  2. 服務區域:主要城市/地區(例如「佛羅里達州奧蒙德海灘」、「愛爾蘭戈爾韋」)
  3. 商家名稱(選填):用於個人化(例如「小張水電服務」)
  4. Jina API 金鑰:用於研究與 Unsplash 圖片收集
  5. HTML/CSS/JS 設計(選填):使用者提供或由系統生成

請勿繼續,直到確認以下資訊都有:服務類別、服務區域、Jina API 金鑰。

步驟 1:設計生成

重要:生成設計時,請遵循 frontend-aesthetics 技能的指南!

如果使用者未提供設計:

啟動:design-generator 代理程式
輸入:
  - 服務類別
  - 目標客群(本地客戶)
  - 必須遵循 frontend-aesthetics 技能指南:
    - 字型:使用特色字體(Plus Jakarta Sans、Space Grotesk、Cabinet Grotesk)
    - 顏色:行業專屬色系,不要用紫色漸層
    - 動畫:使用 CSS 動畫增添趣味
    - 背景:多層次漸層、細膩圖案
    - Tailwind v4:使用 gap-* 而非 space-x-*,不要自訂 CSS reset
輸出:/design/index.html、/design/styles.css、/design/script.js

如果使用者有提供設計: 將他們的設計儲存到 /design/ 資料夾。

步驟 2:地點探索

啟動:location-generator 代理程式
輸入:服務區域、服務類別、Jina API 金鑰
輸出:/locations.json(20-50 個以上地點及其後設資料)

探索服務半徑內(通常因地理環境而異,約 15-50 英里)的所有城鎮、郊區及社區。

步驟 3:建立服務結構

啟動:service-schema-creator 代理程式
輸入:服務類別、Jina API 金鑰、範例地點
輸出:/service-schema-template.json(5-15 項服務及其完整結構)

步驟 4:資料庫設定

啟動:database-agent 代理程式
輸入:專案目錄、服務類別、服務區域
輸出:已設定 PostgreSQL + Prisma ORM

建立資料表:ContactForm、QuoteRequest、CallbackRequest、PageView、EmailSubscriber、ServiceAreaLead

步驟 5:計算頁面生成策略

總頁數 = 服務數量 × 地點數量
所需代理程式數量 = 總頁數 ÷ 12(每個代理程式的平均頁數)

範例:15 項服務 × 48 個地點 = 720 頁 → 60 個代理程式

步驟 6:啟動頁面生成器(並行)

關鍵:同時啟動所有代理程式,不要依序進行!

啟動:service-page-generator 代理程式(N 個代理程式並行)
每個代理程式的輸入:
  - 服務結構範本路徑
  - 分配的服務+地點組合(10-15 頁)
  - Jina API 金鑰(用於 Unsplash 圖片抓取)
  - 服務類別背景資訊
輸出:/pages/*.json(每個代理程式 10-15 個檔案)

每個代理程式:

  • 透過 Jina 搜尋 Unsplash 以取得相關圖片
  • 生成服務描述、優勢、流程、常見問題
  • 建立包含所有資料與圖片的完整 JSON 檔案

步驟 7:NextJS 網站建置

啟動:nextjs-builder 代理程式
輸入:設計檔案、所有 JSON 頁面、服務結構、地點
輸出:/website/ 資料夾,包含完整的 NextJS 應用程式

建立內容:

  • 含服務概覽的首頁
  • 主要服務頁面
  • 主要地點頁面
  • 個別服務+地點頁面(例如 /athenry-emergency-plumber)
  • 服務分類頁面
  • 地點頁面
  • 點擊通話功能
  • 信任信號與行動呼籲

步驟 8:Playwright 測試

# 在背景啟動開發伺服器
cd [專案]/website && npm run dev &

# 啟動 playwright-tester 代理程式
# 測試所有頁面、驗證 SEO、檢查圖片

# 測試完成後終止開發伺服器
kill [PID]

步驟 9:GitHub 部署

cd [專案目錄]
git init
git add -A
git commit -m "Initial commit: [服務類別] 在 [服務區域] 的網站"
gh repo create [儲存庫名稱] --public --source=. --push

如果 gh CLI 不可用,請提供手動操作說明。

可用的代理程式

代理程式用途啟動時機
business-researcher研究特定商家(若提供名稱)一次,步驟 1
design-generator生成 HTML/CSS/JS 設計一次,步驟 1
location-generator探索服務區域內的地點一次,步驟 2
service-schema-creator建立服務清單與結構一次,步驟 3
database-agent設定 PostgreSQL + Prisma一次,步驟 4
service-page-generator生成 10-15 個含圖片的頁面N 個代理程式,並行
nextjs-builder建置完整的 NextJS 網站一次,步驟 7
playwright-tester測試所有頁面與功能一次,步驟 8

設計與風格指南

關鍵:遵循 frontend-aesthetics 技能以避免產生「AI 產物感」!

字型(來自 frontend-aesthetics)

  • 絕不使用:Inter、Roboto、Open Sans、Lato、Arial、系統字型
  • 推薦選擇:Plus Jakarta Sans、Space Grotesk、Cabinet Grotesk、Outfit、Bricolage Grotesque
  • 使用極端:100/200 粗細對比 800/900,字體大小跳躍 3 倍以上

依服務類型區分的顏色

  • 高壓清洗/清潔:深藍色 (#1e40af) + 橘色 (#ea580c) + 綠色 (#059669)
  • 水電:水藍色 (#0284c7) + 緊急紅色 (#dc2626) + 環保綠色 (#16a34a)
  • 暖通空調:冷藍色 (#0369a1) + 暖橘色 (#ea580c) + 綠色 (#059669)
  • 電工:電黃色 (#eab308) + 專業藍色 (#1e40af) + 紅色 (#dc2626)
  • 園藝景觀:自然綠 (#15803d) + 大地棕 (#92400e) + 藍色 (#0284c7)
  • 行銷/B2B:海軍藍 (#0A66C2) + 紫色強調色 (#8B5CF6) + 成功綠 (#10B981)

Tailwind v4 相容性(關鍵)

  • 絕不使用:space-x-*、space-y-*(已在 v4 中移除)
  • 始終使用:搭配 flex/grid 容器使用 gap-*
  • 不要新增:自訂 * { margin: 0 } 重置(這會破壞 mx-auto)
  • 請新增:若使用設定檔,請在 CSS 中加入 @config "../tailwind.config.ts"

服務網站需求

  • 強烈的行動呼籲(立即來電按鈕、取得報價表單)
  • 行動裝置上的點擊通話功能
  • 信任信號(認證、保證、評價)
  • 顯眼地顯示本地電話號碼
  • 清楚展示服務區域涵蓋範圍
  • 前後對比圖片庫
  • 頁面載入與互動時的動態效果

檔案結構

project-root/
├── design/
│   ├── index.html
│   ├── styles.css
│   └── script.js
├── pages/
│   └── [service]-[location].json(200 個以上檔案)
├── website/
│   ├── app/
│   │   ├── [slug]/page.tsx
│   │   ├── services/page.tsx
│   │   ├── locations/page.tsx
│   │   └── ...
│   ├── components/
│   └── package.json
├── prisma/
│   └── schema.prisma
├── locations.json
├── service-schema-template.json
└── business-profile.json(若提供商家名稱)

範例工作流程

使用者:「幫我建立一個在佛羅里達州奧蒙德海灘提供高壓清洗服務的網站」

  1. 收集輸入(類別:高壓清洗、區域:佛羅里達州奧蒙德海灘、Jina 金鑰)
  2. 生成帶有信任信號、行動呼籲、藍/橘色系的設計
  3. 在半徑 15 英里內探索出 48 個地點
  4. 建立 15 個高壓清洗服務的結構
  5. 設定 PostgreSQL 並建立 6 個潛在客戶擷取表格
  6. 計算:15 × 48 = 720 頁 → 啟動約 60 個代理程式
  7. 使用 Unsplash 圖片生成所有服務+地點的 JSON 檔案
  8. 建置包含 214 個以上頁面的 NextJS 網站
  9. 執行 Playwright 測試(目標:通過率 80% 以上)
  10. 推送至 GitHub
  11. 報告:儲存庫 URL、執行說明、部署說明

關鍵規則

務必:

  • 開始前收集所有輸入
  • 若未提供設計,必須先產生設計
  • 建立頁面前先探索地點
  • 生成頁面前先建立服務結構
  • 同時啟動所有頁面生成器代理程式
  • 部署前先用 Playwright 測試
  • 提供清楚的部署說明

切勿:

  • 跳過輸入收集階段
  • 沒有 Jina API 金鑰就繼續
  • 依序啟動代理程式(必須並行!)
  • 在所有頁面準備好之前就建置 NextJS 網站
  • 跳過 Playwright 測試
  • 留給使用者後續步驟

成功標準

  • 設計已存在(生成或由使用者提供)
  • 已探索出 20-50 個以上地點
  • 結構中包含 5-15 項服務
  • 已生成 200 個以上服務+地點頁面
  • 所有頁面都有 Unsplash 圖片
  • NextJS 網站已建置並可執行
  • Playwright 測試通過(通過率 80% 以上)
  • 程式碼已提交至 git
  • 使用者擁有部署說明

Individual skills in this repo

This repo contains 17 individual skills — each has its own dedicated page.

diegosouzapw/awesome-omni-skill

Skill for discovering and researching autonomous AI agents, tools, and ecosystems using the AgentFolio directory.

diegosouzapw/awesome-omni-skill

Factor modeling and portfolio construction (Markowitz, Black-Litterman, constraints, turnover).

diegosouzapw/awesome-omni-skill

Analyze the CustomGPT.ai Labs Innovation workbook and cost tracking data to surface portfolio-level insights, trends, and recommendations for where to focus Innovation efforts.

diegosouzapw/awesome-omni-skill

Optimize project portfolio selection under constraints using mathematical optimization

diegosouzapw/awesome-omni-skill

Rapidly build, prototype, and deploy full-stack software using AI "text-to-app" tools. Use this when you need to create a greenfield application, build a high-fidelity working prototype for user testing, or bypass traditional engineering bottlenecks for internal tools.

diegosouzapw/awesome-omni-skill

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios,...

diegosouzapw/awesome-omni-skill

Minimalist, typography-focused portfolio design system inspired by neo-brutalist and Swiss design principles. Emphasizes bold typography, generous whitespace, monochromatic color schemes, and elegant simplicity for developer/designer portfolios.

diegosouzapw/awesome-omni-skill

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

diegosouzapw/awesome-omni-skill

High-converting landing pages. Copy + design + implementation. Triggers: landing page, conversion page.

diegosouzapw/awesome-omni-skill

Portfolio allocation and rebalancing optimizer. Manages asset allocation across stocks/cash/bonds, performs periodic rebalancing, and ensures diversification according to market regime and risk tolerance.

diegosouzapw/awesome-omni-skill

Detect and explain risk drift in lending portfolios over time using vintage analysis, migration matrices, and concentration metrics. Use when monitoring portfolio credit quality trends, preparing board risk reports, conducting stress testing, or when risk metrics deviate from appetite thresholds.

diegosouzapw/awesome-omni-skill

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

diegosouzapw/awesome-omni-skill

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

diegosouzapw/awesome-omni-skill

Index-based file discovery using ABOUTME headers. Use INSTEAD of grep or Explore agent when searching for files by purpose or feature. Faster and more accurate than scanning code. Invoke this skill when user asks "which files handle X", "where is Y implemented", or when you need to find files related to a feature or task.

diegosouzapw/awesome-omni-skill

Index-based file discovery using ABOUTME headers. Use INSTEAD of grep or Explore agent when searching for files by purpose or feature. Faster and more accurate than scanning code. Invoke this skill when user asks "which files handle X", "where is Y implemented", or when you need to find files related to a feature or task.

diegosouzapw/awesome-omni-skill

Automate Klipfolio tasks via Rube MCP (Composio). Always search tools first for current schemas.

diegosouzapw/awesome-omni-skill

Build a GitHub portfolio that gets you hired — curate 3-5 polished projects, craft compelling READMEs, deploy live demos, tell a coherent story across your repos, and align everything to AI-native development roles. Use when preparing your GitHub for job searches, deciding what to pin, or auditing your public presence.

相關技能