service-website-generator

Orchestrates automated service-based website generation with local SEO optimization. Creates 200+ service+location pages using parallel agents, Unsplash images via Jina AI, NextJS with dynamic routing, and PostgreSQL database. Use when building service business websites (plumbers, electricians, pressure washing, HVAC, etc.) targeting multiple locations.

16 stars

Best use case

service-website-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Orchestrates automated service-based website generation with local SEO optimization. Creates 200+ service+location pages using parallel agents, Unsplash images via Jina AI, NextJS with dynamic routing, and PostgreSQL database. Use when building service business websites (plumbers, electricians, pressure washing, HVAC, etc.) targeting multiple locations.

Teams using service-website-generator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/service-website-generator/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/backend/service-website-generator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/service-website-generator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How service-website-generator Compares

Feature / Agentservice-website-generatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Orchestrates automated service-based website generation with local SEO optimization. Creates 200+ service+location pages using parallel agents, Unsplash images via Jina AI, NextJS with dynamic routing, and PostgreSQL database. Use when building service business websites (plumbers, electricians, pressure washing, HVAC, etc.) targeting multiple locations.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Service Website Generator

Build complete service-based websites with hundreds of local SEO pages in one automated workflow.

**Stack**: NextJS 14 + TypeScript + Tailwind CSS + PostgreSQL + Prisma ORM + Jina AI + Unsplash

## Quick Start

### Step 0: Collect User Inputs (REQUIRED)

Before proceeding, collect these inputs:
1. **Service Niche**: What service business? (e.g., "Plumber", "Pressure Washing", "HVAC")
2. **Service Area**: Main city/region (e.g., "Port Orange, Florida", "Galway, Ireland")
3. **Business Name** (optional): For personalization (e.g., "Murphy's Plumbing Services")
4. **Jina API Key**: Required for research and Unsplash image gathering
5. **HTML/CSS/JS Design** (optional): User provides OR system generates

**DO NOT proceed until you have**: Service niche, service area, and Jina API key confirmed.

### Step 1: Design Generation

**IMPORTANT**: Use the `frontend-aesthetics` skill guidelines when generating designs!

**If user did NOT provide design:**
```
Invoke: design-generator agent
Input:
  - Service niche
  - Target audience (local customers)
  - MUST follow frontend-aesthetics skill guidelines:
    - Typography: Use distinctive fonts (Plus Jakarta Sans, Space Grotesk, Cabinet Grotesk)
    - Colors: Industry-specific palettes, NOT purple gradients
    - Motion: CSS animations for delight
    - Backgrounds: Layered gradients, subtle patterns
    - Tailwind v4: Use gap-* not space-x-*, no custom CSS resets
Output: /design/index.html, /design/styles.css, /design/script.js
```

**If user DID provide design:**
Save their design to `/design/` folder.

### Step 2: Location Discovery

```
Invoke: location-generator agent
Input: Service area, service niche, Jina API key
Output: /locations.json (20-50+ locations with metadata)
```

Discovers all towns, suburbs, and neighborhoods within service radius (typically 15-50 miles depending on geography).

### Step 3: Service Schema Creation

```
Invoke: service-schema-creator agent
Input: Service niche, Jina API key, sample locations
Output: /service-schema-template.json (5-15 services with comprehensive schema)
```

### Step 4: Database Setup

```
Invoke: database-agent agent
Input: Project directory, service niche, service area
Output: PostgreSQL + Prisma ORM configured
```

Creates tables: ContactForm, QuoteRequest, CallbackRequest, PageView, EmailSubscriber, ServiceAreaLead

### Step 5: Calculate Page Generation Strategy

```
Total pages = Services × Locations
Agents needed = Total pages ÷ 12 (average pages per agent)

Example: 15 services × 48 locations = 720 pages → 60 agents
```

### Step 6: Spawn Page Generators (PARALLEL)

**CRITICAL: Spawn ALL agents simultaneously, not sequentially!**

```
Invoke: service-page-generator agents (N agents in parallel)
Input per agent:
  - Service schema template path
  - Assigned service+location combinations (10-15 pages)
  - Jina API key (for Unsplash image scraping)
  - Service niche context
Output: /pages/*.json (10-15 files per agent)
```

Each agent:
- Searches Unsplash via Jina for relevant images
- Generates service descriptions, benefits, process, FAQ
- Creates complete JSON files with all data + images

### Step 7: NextJS Site Build

```
Invoke: nextjs-builder agent
Input: Design files, all JSON pages, service schema, locations
Output: /website/ folder with complete NextJS app
```

Creates:
- Homepage with service overview
- Main services page
- Main locations page
- Individual service+location pages (e.g., /emergency-plumber-athenry)
- Service category pages
- Location pages
- Click-to-call functionality
- Trust signals and CTAs

### Step 8: Playwright Testing

```bash
# Start dev server in background
cd [project]/website && npm run dev &

# Invoke playwright-tester agent
# Tests all pages, validates SEO, checks images

# Kill dev server after tests
kill [PID]
```

### Step 9: GitHub Deployment

```bash
cd [project-directory]
git init
git add -A
git commit -m "Initial commit: [Service Niche] in [Service Area] website"
gh repo create [repo-name] --public --source=. --push
```

If `gh` CLI unavailable, provide manual instructions.

## Available Agents

| Agent | Purpose | Invocation |
|-------|---------|------------|
| `business-researcher` | Research specific business (if name provided) | Once, Step 1 |
| `design-generator` | Generate HTML/CSS/JS design | Once, Step 1 |
| `location-generator` | Discover locations in service area | Once, Step 2 |
| `service-schema-creator` | Create service list and schema | Once, Step 3 |
| `database-agent` | Set up PostgreSQL + Prisma | Once, Step 4 |
| `service-page-generator` | Generate 10-15 pages with images | N agents, parallel |
| `nextjs-builder` | Build complete NextJS website | Once, Step 7 |
| `playwright-tester` | Test all pages and functionality | Once, Step 8 |

## Design & Style Guidelines

**CRITICAL: Follow the `frontend-aesthetics` skill to avoid "AI slop"!**

### Typography (from frontend-aesthetics)
- **Never use**: Inter, Roboto, Open Sans, Lato, Arial, system fonts
- **Good choices**: Plus Jakarta Sans, Space Grotesk, Cabinet Grotesk, Outfit, Bricolage Grotesque
- **Use extremes**: 100/200 weight vs 800/900, size jumps of 3x+

### Colors by Service Type
- **Pressure Washing/Cleaning**: Strong blue (#1e40af) + Orange (#ea580c) + Green (#059669)
- **Plumbing**: Water blue (#0284c7) + Emergency red (#dc2626) + Eco green (#16a34a)
- **HVAC**: Cool blue (#0369a1) + Warm orange (#ea580c) + Green (#059669)
- **Electrical**: Electric yellow (#eab308) + Professional blue (#1e40af) + Red (#dc2626)
- **Landscaping**: Natural green (#15803d) + Earth brown (#92400e) + Blue (#0284c7)
- **Marketing/B2B**: Navy (#0A66C2) + Purple accent (#8B5CF6) + Success green (#10B981)

### Tailwind v4 Compatibility (CRITICAL)
- **Never use**: `space-x-*`, `space-y-*` (removed in v4)
- **Always use**: `gap-*` with flex/grid containers
- **Don't add**: Custom `* { margin: 0 }` resets (breaks mx-auto)
- **Add**: `@config "../tailwind.config.ts"` to CSS if using config

### Service Website Requirements
- Strong CTAs (Call Now buttons, Get Quote forms)
- Click-to-call functionality on mobile
- Trust signals (certifications, guarantees, reviews)
- Local phone numbers prominently displayed
- Service area coverage clearly shown
- Before/after image galleries
- Motion/animations for page loads and interactions

## File Structure

```
project-root/
├── design/
│   ├── index.html
│   ├── styles.css
│   └── script.js
├── pages/
│   └── [service]-[location].json (200+ files)
├── 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 (if business name provided)
```

## Example Workflow

**User**: "Make me a service website for pressure washing in Port Orange, Florida"

1. Collect inputs (niche: pressure washing, area: Port Orange FL, Jina key)
2. Generate design with trust signals, CTAs, blue/orange color scheme
3. Discover 48 locations within 15-mile radius
4. Create 15 pressure washing services schema
5. Set up PostgreSQL with 6 lead capture tables
6. Calculate: 15 × 48 = 720 pages → spawn ~60 agents
7. Generate all service+location JSON files with Unsplash images
8. Build NextJS site with 214+ pages
9. Run Playwright tests (target: 80%+ pass rate)
10. Push to GitHub
11. Report: Repository URL, run instructions, deploy instructions

## Critical Rules

**DO:**
- Collect ALL inputs before starting
- Generate design FIRST if not provided
- Discover locations BEFORE creating pages
- Create service schema BEFORE generating pages
- Spawn ALL page generator agents SIMULTANEOUSLY
- Test with Playwright BEFORE deployment
- Provide clear deployment instructions

**NEVER:**
- Skip input collection phase
- Proceed without Jina API key
- Spawn agents sequentially (must be parallel!)
- Build NextJS site before all pages ready
- Skip Playwright testing
- Leave user without next steps

## Success Criteria

- [ ] Design exists (generated OR user-provided)
- [ ] 20-50+ locations discovered
- [ ] 5-15 services in schema
- [ ] 200+ service+location pages generated
- [ ] All pages have Unsplash images
- [ ] NextJS website built and running
- [ ] Playwright tests pass (80%+ rate)
- [ ] Code committed to git
- [ ] User has deployment instructions

Related Skills

generator

16
from diegosouzapw/awesome-omni-skill

Générateur de Skill - Crée de nouveaux fichiers SKILL.md depuis les définitions YAML d'agents

EchoKit Config Generator

16
from diegosouzapw/awesome-omni-skill

Generate config.toml for EchoKit servers with interactive setup for ASR, TTS, LLM services, MCP servers, API key entry, and server launch

dozu-ui-service-skills

16
from diegosouzapw/awesome-omni-skill

Index of AI agent skills and how to use them when implementing features in this repo.

bigconfig-generator

16
from diegosouzapw/awesome-omni-skill

Use this skill when creating or updating Bigeye monitoring configurations (bigconfig.yml files) for BigQuery tables. Works with metadata-manager skill.

analyze-japan-debt-service-tax-burden

16
from diegosouzapw/awesome-omni-skill

以日本公債殖利率變化為觸發,量化「政府利息支出 / 稅收」負擔(含情境壓力測試),並判斷是否進入債務利息螺旋風險區。

ai-image-generator

16
from diegosouzapw/awesome-omni-skill

使用 ModelScope 等平台生成 AI 图像。当用户需要生成图像、设计图标、创建角色立绘,或需要帮助编写 AI 绘画提示词时使用此技能。支持直接生成图像和仅优化提示词两种模式。

acc-create-domain-service

16
from diegosouzapw/awesome-omni-skill

Generates DDD Domain Services for PHP 8.5. Creates stateless services for business logic that doesn't belong to entities or value objects. Includes unit tests.

thumbnail-generator

16
from diegosouzapw/awesome-omni-skill

Generate prompts for dev.to blog thumbnail/cover images in hand-drawn infographic style. Use when creating cover images, thumbnails, or featured images for blog posts. Recommended size 1000x420 pixels.

seedream-image-generator

16
from diegosouzapw/awesome-omni-skill

Generate images using the Doubao SeeDream API based on text prompts. Use this skill when users request AI-generated images, artwork, illustrations, or visual content creation. The skill handles API calls, downloads generated images to the project's /pic folder, and supports batch generation of up to 4 sequential images.

og-image-generator

16
from diegosouzapw/awesome-omni-skill

Generate and optimize Open Graph meta images for social media sharing. Use this skill when building web applications that need dynamic OG image generation with support for Vercel's @vercel/og library, pre-generated image storage, and social media optimization (Twitter Cards, Facebook, LinkedIn). Handles dynamic routes, performance optimization, and includes best practices for crawler compatibility and testing.

gemini-image-generator

16
from diegosouzapw/awesome-omni-skill

Generate and edit images using Google Gemini. Use when the user asks to generate, create, edit, or modify images.

didactic-content-generator

16
from diegosouzapw/awesome-omni-skill

Gere conteúdo didático de alta qualidade em HTML/CSS com ilustrações SVG, usando um sistema de Temas pré definidos e reutilizáveis. Capaz de criar ou editar apostilas, tutoriais e materiais educacionais que seguem filosofias pedagógicas claras.