Communitygithub.com

MCERQUA/jam-skills

Build production-ready Next.js 15 websites from scratch — research-first workflow: discovery → deep research (keywords, competitors, content strategy, topical map) → design planning → scaffold → build → deploy. TRIGGER: 'build a website', 'create a site for my business', starting a new web project. DO NOT TRIGGER for editing an existing site (web-dev) or a single article (article-writer).

jam-skills とは?

jam-skills is a Claude Code agent skill that build production-ready Next.js 15 websites from scratch — research-first workflow: discovery → deep research (keywords, competitors, content strategy, topical map) → design planning → scaffold → build → deploy. TRIGGER: 'build a website', 'create a site for my business', starting a new web project. DO NOT TRIGGER for editing an existing site (web-dev) or a single article (article-writer).

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/MCERQUA/jam-skills/tree/HEAD/website-builder

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

⚠️ READ FIRST: PNPM_11_REQUIREMENTS.md in this skill dir. Webdev containers (where Mike previews your sites) run pnpm 11.1.1 since 2026-05-13. EVERY new project MUST declare pnpm.onlyBuiltDependencies in package.json (at minimum: ["sharp"] for any Next.js project) or the dev server WILL NOT START. Skip this and the container restart-loops, the site goes 502, and the user blames you. 60-second read; ignore at your peril.

Website Builder — Complete Next.js Website Skill

Research-driven, design-intentional website building. Every decision backed by data, every section justified by research.

When to Use This Skill

TRIGGER when the user asks to:

  • Build a new website
  • Create a website for their business
  • Start a new web project
  • "Make me a site"

DO NOT USE for:

  • Canvas pages (use canvas-web-design skill instead)
  • Editing an existing website project (follow that project's .claude/CLAUDE.md)
  • Remotion video projects (use remotion-video skill)

NON-NEGOTIABLE RULES

  1. NEVER write code before completing research and design planning. Phases 1-4 produce zero code. That's correct.
  2. NEVER deliver a page with template defaults. If you see "Logo", "(555) 000-0000", "[email protected]", "Service One" — you FAILED.
  3. NEVER write copy without keyword research. Every headline targets a specific keyword from Phase 3.
  4. NEVER skip the design plan. Every section, color, and animation must have a documented REASON.
  5. NEVER use scare tactics or fear-based headlines. Write benefit-focused, SEO-targeted copy.
  6. ALWAYS run the placeholder sweep before presenting any site. Zero tolerance.
  7. ALWAYS customize every section. If a section renders built-in defaults, you forgot to pass props.
  8. NEVER ship back-button hijacking. No history.pushState loops, redirect-traps, or modal/overlay chains that stop the browser Back button from returning the user to the SERP — a Google spam-policy violation (malicious practices, enforced 2026-06-15) carrying manual-action + demotion risk. Audit exit-intent scripts, interstitials, and any included ad/library code (the violation often originates there, not first-party). Verify in Phase 12. (developers.google.com/search/blog/2026/04/back-button-hijacking)

Site Types

Identify during intake — it changes everything:

TypeGoalKey SectionsCopy Style
SEO LeadgenRank + capture leadsHero + TrustBar + CoverageGrid + HowItWorks + FAQ + Testimonials + CTAKeyword-rich, benefit-focused, professional
Local ServicePhone calls + formsHero + TrustBar + Services + ServiceAreas + Reviews + CTADirect, trust-building, location-targeted
PortfolioShowcase workHero + ProjectGrid + About + Process + ContactVisual, minimal copy, let work speak
SaaS / ProductSignups / trialsHero + Features + Pricing + Testimonials + FAQ + CTABenefit-focused, comparison-driven

Local Service sites: See the Local Service CRO Rules section below before building any home service or contractor site. Most local sites convert under 1%. These rules get to 3–5%.


Local Service CRO Rules

Source: Noah Igler (@noahiglerSEO) conversion audit of home service sites (plumbers, HVAC, roofers, electricians, landscapers, etc.). Most sites get fine traffic but the phone doesn't ring — because the site leaks leads, not traffic.

Most home service sites convert under 1%. These rules target 3–5% with the same traffic.

Above the Fold (80% of conversions won or lost here)

Within 3 seconds of landing, visitors must know: what you do, where you do it, that you're trustworthy, and how to call you. Every element below is required — not optional.

  • Headline format: "[Service] in [City]" or "[City]'s Trusted [Service] Company" — NOT "Your Trusted Home Service Partner Since 2003"
  • Phone number: Top right, large font, sticky as user scrolls — wire directly to tel: link (NO modal, NO popup, NO confirmation step — a modal caused one client a 30% drop in calls)
  • Trust bar / subheadline: Star rating + review count + years in business + license number + service area — all in the hero
  • Primary CTA: "Call Now" or "Get Free Quote" — show the phone number ON the button or immediately below it
  • Hero image: Real photos of your team in branded shirts, trucks on job sites, or actual work — NO stock photos of smiling families (visitors spot them instantly; trust flips negative)

Phone Visibility — The Single Biggest Lever

  • Sticky header: phone number always visible on mobile as user scrolls
  • Sticky footer bar on mobile: two buttons — "Call Now" (tel: link) and "Book Online" — always in view
  • Floating action button on long pages
  • Adds 15–25% to call volume in practice

Forms — Every Extra Field Costs ~10% of Conversions

Maximum 4 fields for any home service lead form:

  1. Name
  2. Phone
  3. Service needed (dropdown — not free text)
  4. Address

Never add: email, "best time to call", "how did you hear about us", comments box, address proof, or any qualifying questions. You're not running a credit application — you're getting their phone number so you can call back. The qualifying happens on the call.

Mobile Speed — Non-Negotiable

  • Below PageSpeed 50 on mobile = lose 2–3 Map Pack spots
  • Below PageSpeed 70 = lose 20–30% of mobile visitors before page loads
  • Target: PageSpeed 70+ mobile, page load < 2 seconds

Speed fixes (in order of impact):

  1. Compress hero image to 200–400KB (most sites ship 2–3MB hero images)
  2. Remove unnecessary plugins and tracking scripts
  3. Use a real CDN (not just the host's bundled option)
  4. Lazy load everything below the fold
  5. Minimize third-party widgets (live chat, social embeds, review aggregators) — they load late and cover the phone number

Reviews / Social Proof — Must Appear at Every Scroll Depth

Don't put all proof in one testimonial section halfway down. Visitors need to see it at every level:

  • Above fold: "4.9 stars from 312 Google reviews" — count + rating in the hero trust bar
  • Hero section: 2–3 short pull quotes from real reviews, preferably dynamic from GBP
  • Service pages: dedicated review section pulling quotes that mention that specific service
  • By the form: repeat proof right before the ask

The goal: by the time they reach the form, they've seen proof 5–6 times.

Photos — Real Images Over Stock Every Time

  • Real photos of team in branded shirts on job sites
  • Trucks parked at actual customer homes
  • Before-and-after shots (drain cleaning, panel work, AC installs, ductwork, roof replacements)
  • License documents, manufacturer certifications, insurance certificates photographed and displayed
  • The site should look like a physical business with real people, not a template a marketing agency dropped a logo into

Financing — Required for High-Ticket Services ($5K+)

~60% of customers for replacement-level jobs want financing. If your competitor shows the Synchrony / GreenSky / Wisetack logo and you don't, they close the deal before you get to quote.

  • Logo of financing partner visible above the fold on service pages
  • "0% financing available" or "Payments as low as $89/month" callout in the hero
  • Separate financing page linked from main nav
  • Pre-qualification widget embedded on high-ticket service pages

Common Mistakes That Kill Conversions

These appear constantly in audits — do not ship any of them:

  • Longer forms to "qualify" leads — you're not qualifying them, you're losing them
  • Hiding the phone to force form fills — they just leave instead
  • Auto-playing video in the hero section — kills mobile speed, annoys the visitor
  • Pop-ups on first visit — immediate back-button trigger on mobile
  • Live chat widgets — take 4s to load, cover the phone number, add zero value for home service

Tech Stack (every project)

ToolPackagePurpose
Next.js 15nextApp Router, server components, server actions
React 19reactUI framework
TypeScripttypescriptType safety
Tailwind CSS v3tailwindcssUtility-first styling (v3 — NOT v4, v4 has PostCSS issues)
shadcn/uishadcn (CLI)Component library (Radix + Tailwind)
MotionmotionAnimations (spring physics, scroll, layout)
LenislenisSmooth scroll (< 4kb, accessible)
Lucide Reactlucide-reactSVG icons

Optional (install when needed)

ToolPackageWhen
Pretext@chenglou/pretextText measurement without DOM reflow — virtualized lists, chat UIs, masonry grids, auto-sizing text containers, canvas text rendering. ~500x faster than getBoundingClientRect. Zero deps. See /mnt/shared-skills/pretext/SKILL.md
GSAPgsapComplex scroll sequences, SplitText, MorphSVG
Three.jsthree + @react-three/fiber3D backgrounds or hero elements
MDX@next/mdxBlog with rich content
PrismaprismaDatabase access

13-Phase Workflow

Follow these phases IN ORDER. Do not skip phases. Phases 1-4 produce ZERO code — they produce research and a plan. That's the point.

Phase 1: DISCOVER

Read: instructions/brand-intake.md

Ask the client the brand intake questions BEFORE anything else:

  • Business identity, industry, target customer
  • Brand colors, tone, personality
  • SEO goals, competitors, what customers search for
  • Pages needed, special features, primary CTA
  • Site type (SEO leadgen, local service, portfolio, SaaS)

Deliverable: Completed intake answers

Phase 2: SETUP

Read: instructions/folder-setup.md

Create the ai/ folder structure inside the project directory:

  1. Create all research directories (01-07)
  2. Create design, content, and blog-research directories
  3. Initialize research-status.json
  4. Populate 01-business-profile/profile.md from intake answers

Deliverable: Complete ai/ folder structure with business profile filled in

Phase 3: RESEARCH (the foundation — DO NOT RUSH)

Read: instructions/research-plan.md

Six research tasks that inform EVERYTHING that follows:

  1. Keyword research — Find 50-100+ keywords across primary, secondary, long-tail, location categories. Document in ai/research/02-keyword-research/. Search Google, capture PAA questions, build keyword clusters.

  2. Competitor deep analysis — Review 5-10 competitor sites in detail. For each one: document their homepage sections, hero layout, CTAs, visual design, typography, animations, content quality, strengths, weaknesses. Create per-competitor review files in ai/research/03-competitor-analysis/site-reviews/. Then synthesize into pattern-analysis.md (common patterns across niche) and gaps-opportunities.md (what we exploit).

  3. Content strategy — Map every page: URL, keywords, sections, H1, meta tags. Create per-page content briefs in ai/research/04-content-strategy/content-briefs/. Research FAQ questions from PAA, Reddit, forums.

  4. Topical map — Build topic cluster architecture: pillar pages, cluster content, internal linking strategy. Document in ai/research/05-topical-map/.

  5. Local SEO (if applicable) — Target service areas, local competitors, city-specific keywords. Document in ai/research/06-local-seo/.

  6. Conversion patterns — Analyze competitor CTAs, trust signals, social proof patterns. Map the conversion funnel. Document in ai/research/07-conversion-patterns/.

Deliverable: 20-40 research files across 7 directories. Update research-status.json.

Phase 4: DESIGN PLAN (the thinking phase — every decision intentional)

Read: instructions/design-plan.md

This is where a site goes from "another template" to something that WORKS. Six design documents:

  1. Competitor visual audit (ai/design/competitor-visual-audit.md) — Review all competitor sites for visual patterns: hero types, section ordering, color schemes, typography, animations, photography style. Rank them by visual quality. Identify what to beat.

  2. Style direction (ai/design/style-direction.md) — Choose aesthetic with reasoning. Colors, fonts, dark/light mode, spacing — every choice traced to brand intake + competitor analysis + industry context.

  3. Component plan (ai/design/component-plan.md) — Every component needed, in order, with its purpose. Why this hero layout? Why this trust bar style? Why these sections in this order? Map to the conversion funnel.

  4. Animation plan (ai/design/animation-plan.md) — What moves, why, how. Entrance animations, hover states, scroll effects. Intentional motion, not random decoration.

  5. Page wireframes (ai/design/page-wireframes.md) — Section-by-section layout for every page. ASCII wireframes showing structure.

  6. Design brief (ai/design/design-brief.md) — Master document. Summarizes all design decisions, lists what makes this site "pop" vs competitors, connects every choice to research.

Deliverable: 6 design documents. The design brief is the reference for the entire build.

Phase 5: SCAFFOLD

Read: instructions/architecture.md Use: templates/project/ directory

  1. Copy templates/project/ to Websites/<project-name>/
  2. Run pnpm install
  3. Install shadcn: pnpm dlx shadcn@latest init
  4. Install core shadcn components: pnpm dlx shadcn@latest add button card badge separator input textarea label
  5. Install animation deps: pnpm add motion lenis
  6. Initialize git, commit scaffold
  7. Create private GitHub repo, push, create web-dev branch
  8. Fill in .claude/CLAUDE.md using templates/config/claude-project.md

Phase 6: DESIGN SYSTEM

Read: instructions/design-system.md Use: templates/config/design-tokens.css

Apply the style direction from Phase 4:

  1. Set color palette (chosen in design plan, not random)
  2. Set font pairing (chosen in design plan, not random)
  3. Configure CSS variables in globals.css
  4. Configure tailwind.config.ts with brand colors
  5. Cross-reference: python3 /mnt/shared-skills/ui-ux-pro-max/scripts/search.py

Phase 7: CONTENT WRITING

Read: instructions/content-writing.md

Write ALL copy BEFORE building pages. Save to ai/content/ — one file per page:

  1. Reference content briefs from Phase 3
  2. Write every headline, paragraph, bullet, CTA, testimonial, FAQ answer
  3. Every headline targets a keyword from Phase 3
  4. Every paragraph is benefit-focused and industry-specific
  5. No generic filler — real numbers, real scenarios, real language
  6. Review against competitor gaps — our content must be MORE specific

Deliverable: Complete copy files in ai/content/ for every page

Phase 8: BUILD PAGES

Read: instructions/animations.md, instructions/scroll-effects.md If Local Service / Home Service site: ALSO read instructions/home-service-conversion.md — contains required implementation patterns for phone wiring, form fields, sticky CTAs, hero images, and trust placement. Do not build a local service site without reading this first. Use: templates/sections/, templates/animations/, templates/pages/

Now — and ONLY now — you write code. For each page:

  1. Follow the wireframe from Phase 4
  2. Select section templates from templates/sections/
  3. Pass ALL content from Phase 7 via props — NO template defaults
  4. Apply animations from the animation plan (Phase 4)
  5. Generate/source images as you build (read instructions/images.md)

Section selection by site type:

Site TypeRequired Sections
SEO LeadgenNavbar + Hero + TrustBar + Stats + CoverageGrid/Features + HowItWorks + Testimonials + FAQ + CTA + Footer
Local ServiceNavbar + Hero + TrustBar + Services + ServiceAreas + Stats + Reviews + FAQ + CTA + Footer
PortfolioNavbar + Hero + ProjectGrid + About + Process + CTA + Footer
SaaSNavbar + Hero + Features + Pricing + Testimonials + FAQ + CTA + Footer

Phase 8b: COMPILE CHECK (required)

cd <project-dir> && pnpm build

Fix all errors before moving on.

Phase 9: FORMS & BACKEND

Read: instructions/forms-backend.md

  1. Build industry-specific form fields (NOT generic name/email/message)
  2. Create /api/contact route (file-based JSON storage)
  3. Test form submission end-to-end

Phase 10: BLOG (if needed)

Read: instructions/blog-setup.md

  1. Install MDX dependencies
  2. Create blog index and [slug] dynamic route
  3. Write 2-3 starter posts targeting long-tail keywords from Phase 3
  4. Add to sitemap

Phase 11: SEO FINALIZATION

Read: instructions/seo.md, instructions/performance.md

  1. Metadata in layout.tsx — use keywords from Phase 3
  2. Per-page metadata with page-specific keywords
  3. sitemap.ts and robots.ts
  4. Structured data (JSON-LD) for business type
  5. Error/404 pages
  6. Image optimization

Phase 12: QUALITY GATE (MANDATORY)

Read: instructions/quality-checklist.md

Placeholder sweep — zero tolerance:

grep -rn "example\.com\|placeholder\|TODO\|FIXME\|Lorem\|project-name\|REPLACE:\|UPDATE:\|000-0000\|hello@\|Service One\|Service Two\|Service Three\|A short description\|Your Headline\|Business Name\.\|Sarah Johnson\|Mike Chen\|Lisa Rodriguez" src/ --include="*.tsx" --include="*.ts"

Every match = failure.

Also verify:

  • Navbar logo = real business name
  • Footer = real contact info
  • Every section heading specific to this business
  • Every testimonial realistic and industry-specific
  • All images point to existing files
  • Every page has at least one real image
  • CTA buttons link to correct destinations
  • No page uses default section props
  • Design matches the design brief from Phase 4
  • Animation plan from Phase 4 fully implemented

Phase 13: DEPLOYMENT

Read: instructions/deployment.md

  1. pnpm build — fix any errors
  2. Commit, push to web-dev branch

JamBot: cd Websites/<name> && pnpm install && pnpm build, then canvas URL. No container: Tell user admin needs jambot-add-website.sh. External: Vercel/Netlify/Docker per instructions/deployment.md.


Style Rules

DESIGN SOURCE PRECEDENCE (check FIRST, before any styling decision): If Stitch is available (the stitch skill / MCP responds), the styled template comes from Stitch — either supplied screens, the chosen 4-style Creator variant, or a generated home screen — and that template is the locked style contract for every other page on the site (WEBSITE-BUILD.md RULE 0 tiers; same-project generate_screen_from_text style-continuation for additional pages). Hand-styling from scratch is the FALLBACK for when Stitch is genuinely unavailable after retries — never the first move.

SECTION RHYTHM — NO MONOTONE PAGES (applies to every page, both paths):

  • Adjacent sections must NEVER share the same background — the page is a stack of visibly distinct full-width bands
  • Rotate ≥3 background treatments per page: base color · tinted/elevated band · inverted contrast band (dark band on a light site / light band on a dark site) · accent wash · full-bleed image band with overlay
  • At least one inverted contrast band per page (trust bar, testimonials, or CTA are the natural spots)
  • Every section boundary must be obvious in a zoomed-out thumbnail; one continuous white sheet ("bright document") or dark sheet with dark containers ("dark hole") = FAILED design
  • Cards must contrast against their band — never dark-box-on-dark-band or white-box-on-white-band

REQUIRED:

  • Light vs dark mode is an INDUSTRY decision, not a default: local/home-service and professional-service sites are light-dominant (dark bands as punctuation); SaaS/tech/portfolio may be dark-dominant (with at least one light band for breathing room). See WEBSITE-BUILD.md "DESIGN RULES BY BUSINESS TYPE".
  • Brand accent colors via CSS variables (not hardcoded)
  • All interactive elements: hover state + cursor-pointer
  • Animations respect prefers-reduced-motion
  • Mobile-first responsive (375px → up)
  • SVG icons from lucide-react only

CLOUDFLARE COMPATIBILITY (critical for JamBot dev sites):

  • Cloudflare "Email Address Obfuscation" breaks React hydration
  • Do not render bare email addresses in JSX — use onClick handlers or encode

BANNED:

  • Purple (#764ba2, #667eea, #8b5cf6), pink, magenta as primary colors
  • Emoji as UI icons
  • Lorem ipsum or placeholder text in delivered pages
  • href="#" on buttons (use <button> or real links)
  • External CDN scripts
  • Inline styles (use Tailwind classes)
  • Fear-based / scare-tactic headlines
  • Generic "we deliver quality service" copy without specifics
  • Defaulting new builds to AMP — since 2026-07-01 Google serves AMP from the publisher's own host (AMP Cache / viewer / signed-exchange retired), so AMP's speed edge is gone and it ranks like any page; build a fast responsive page with good CWV instead

Fetching Fresh Docs (On Demand)

curl -s https://ui.shadcn.com/llms.txt | head -200      # shadcn/ui
curl -s https://nextjs.org/docs/llms.txt | head -200      # Next.js
curl -s https://tailwindcss.com/docs/llms.txt | head -200  # Tailwind

Cross-Skill References (DO NOT DUPLICATE)

NeedCommand
Color palettespython3 /mnt/shared-skills/ui-ux-pro-max/scripts/search.py "<query>" --domain color
Font pairingspython3 /mnt/shared-skills/ui-ux-pro-max/scripts/search.py "<query>" --domain typography
UX rulespython3 /mnt/shared-skills/ui-ux-pro-max/scripts/search.py "<query>" --domain ux
Full design systempython3 /mnt/shared-skills/ui-ux-pro-max/scripts/search.py "<industry> <type>" --design-system
CopywritingRead /mnt/shared-skills/marketing/copywriting/SKILL.md
Site architectureRead /mnt/shared-skills/marketing/site-architecture/SKILL.md
CRO / conversionRead /mnt/shared-skills/marketing/page-cro/SKILL.md
SEORead /mnt/shared-skills/marketing/local-seo/SKILL.md
Theme presetsRead /mnt/shared-skills/theme-factory/SKILL.md

File Index

instructions/
  brand-intake.md        — Discovery questions (SEO + competitor questions included)
  folder-setup.md        — /ai/ directory structure initialization
  research-plan.md       — Deep foundational research: keywords, competitors, content, topical map, conversion
  design-plan.md         — Design thinking: visual audit, style direction, component plan, wireframes
  content-writing.md     — Copy guidelines by site type, tone, and industry
  design-system.md       — Color, typography, theme setup
  architecture.md        — Next.js project structure and conventions
  animations.md          — 15 animation patterns with Motion.dev/GSAP/CSS code
  scroll-effects.md      — Lenis + scroll-triggered animations + parallax
  images.md              — Image strategy, OG images, favicons, optimization
  blog-setup.md          — Full MDX blog system with dynamic routing
  forms-backend.md       — Contact form server actions (Resend/AgentMail/file)
  seo.md                 — Metadata, OG, sitemap, structured data, robots
  performance.md         — Image optimization, fonts, code splitting, Core Web Vitals
  deployment.md          — JamBot dev server, static build, Vercel, Netlify, Docker
  quality-checklist.md   — 40+ point pre-delivery audit
  references.md          — llms.txt URLs, ui-ux-pro-max queries, component reference

templates/
  project/               — Full Next.js 15 starter (copy to scaffold)
  sections/              — 18 section components (Navbar, Hero, Features, FAQ, etc.)
  animations/            — 9 reusable wrappers (FadeIn, Stagger, Parallax, etc.)
  pages/                 — 5 full page compositions (Home, About, Services, Contact, Blog)
  config/                — Project CLAUDE.md template, CSS design tokens

tools/
  scaffold.sh            — Create project, copy templates, install deps, git init
  github-setup.sh        — Create private repo, push, set up web-dev branch

関連スキル