@kennethsolomon/shipkit 3.14.0 → 3.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/commands/sk/website.md +93 -0
- package/package.json +1 -1
- package/skills/sk:website/SKILL.md +471 -0
- package/skills/sk:website/references/art-direction.md +210 -0
- package/skills/sk:website/references/brief-template.md +121 -0
- package/skills/sk:website/references/content-seo.md +143 -0
- package/skills/sk:website/references/handoff-template.md +261 -0
- package/skills/sk:website/references/launch-checklist.md +99 -0
- package/skills/sk:website/references/niche/accountant.md +75 -0
- package/skills/sk:website/references/niche/agency.md +75 -0
- package/skills/sk:website/references/niche/cafe.md +79 -0
- package/skills/sk:website/references/niche/dentist.md +78 -0
- package/skills/sk:website/references/niche/ecommerce.md +76 -0
- package/skills/sk:website/references/niche/gym.md +75 -0
- package/skills/sk:website/references/niche/home-services.md +76 -0
- package/skills/sk:website/references/niche/law-firm.md +75 -0
- package/skills/sk:website/references/niche/local-business.md +78 -0
- package/skills/sk:website/references/niche/med-spa.md +78 -0
- package/skills/sk:website/references/niche/portfolio.md +77 -0
- package/skills/sk:website/references/niche/real-estate.md +72 -0
- package/skills/sk:website/references/niche/restaurant.md +80 -0
- package/skills/sk:website/references/niche/saas.md +80 -0
- package/skills/sk:website/references/niche/wedding.md +80 -0
- package/skills/sk:website/references/stacks/laravel.md +425 -0
- package/skills/sk:website/references/stacks/nextjs.md +345 -0
- package/skills/sk:website/references/stacks/nuxt.md +374 -0
- package/skills/sk:website/references/whatsapp-cta.md +160 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# Art Direction Reference
|
|
2
|
+
|
|
3
|
+
Use this when building or reviewing the visual system for a website. Translate the business brief into a deliberate visual direction that can be implemented in code without drifting into generic AI-generated styling.
|
|
4
|
+
|
|
5
|
+
## Workflow
|
|
6
|
+
|
|
7
|
+
1. Pick one dominant aesthetic direction from the list below.
|
|
8
|
+
2. Define 2–4 signature design moves.
|
|
9
|
+
3. Choose a type strategy, palette behavior, spacing rhythm, and motion stance.
|
|
10
|
+
4. Verify the style still supports clarity, trust, and conversion.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Aesthetic Directions
|
|
15
|
+
|
|
16
|
+
Choose exactly one dominant direction. Do not mix multiple directions without a clear hierarchy.
|
|
17
|
+
|
|
18
|
+
### Restrained Editorial
|
|
19
|
+
|
|
20
|
+
Good for: architecture studios, fashion-adjacent brands, premium consultants, galleries, publishing.
|
|
21
|
+
|
|
22
|
+
Signals:
|
|
23
|
+
- Strong typographic contrast (large serif headline, small sans body)
|
|
24
|
+
- Generous whitespace — sections breathe
|
|
25
|
+
- Sparse palette (warm white + dark neutral + one muted accent)
|
|
26
|
+
- Image restraint — one strong image per section, not a grid
|
|
27
|
+
|
|
28
|
+
Avoid:
|
|
29
|
+
- Decorative layers that break the calm
|
|
30
|
+
- Loud CTA styling that contradicts the quiet tone
|
|
31
|
+
|
|
32
|
+
### Premium Product-Led
|
|
33
|
+
|
|
34
|
+
Good for: SaaS, devices, premium consumer products, DTC hero pages.
|
|
35
|
+
|
|
36
|
+
Signals:
|
|
37
|
+
- Crisp hierarchy with product at the center
|
|
38
|
+
- Focused product framing (screenshot, mockup, or isolated product shot)
|
|
39
|
+
- Clear product storytelling — one benefit per section
|
|
40
|
+
- Controlled accent color on a near-white or dark background
|
|
41
|
+
|
|
42
|
+
Avoid:
|
|
43
|
+
- Fake dashboards with no real product
|
|
44
|
+
- Overstuffed hero sections with too many messages
|
|
45
|
+
|
|
46
|
+
### Bold Brand-Forward
|
|
47
|
+
|
|
48
|
+
Good for: agencies, challenger brands, culture-led products, streetwear, creative studios.
|
|
49
|
+
|
|
50
|
+
Signals:
|
|
51
|
+
- Strong contrast between sections
|
|
52
|
+
- Daring type scale — headline that dominates the viewport
|
|
53
|
+
- Sharper section transitions (hard cuts, not gentle fades)
|
|
54
|
+
- High visual recall through one repeating graphic pattern or color block
|
|
55
|
+
|
|
56
|
+
Avoid:
|
|
57
|
+
- Sacrificing legibility for attitude
|
|
58
|
+
- Using bold direction for trust-sensitive businesses (law, medical, finance)
|
|
59
|
+
|
|
60
|
+
### Warm Hospitality
|
|
61
|
+
|
|
62
|
+
Good for: cafes, boutique hotels, restaurants, lifestyle spaces, florists, bakeries.
|
|
63
|
+
|
|
64
|
+
Signals:
|
|
65
|
+
- Tactile, atmosphere-first imagery (real textures, warm light, food close-ups)
|
|
66
|
+
- Warm neutrals — cream, sand, olive, terracotta, warm grey
|
|
67
|
+
- Editorial pacing — section rhythm like a magazine spread
|
|
68
|
+
- Practical info (hours, address, reservation CTA) stays visible and easy to find
|
|
69
|
+
|
|
70
|
+
Avoid:
|
|
71
|
+
- Corporate UI chrome that breaks the atmosphere
|
|
72
|
+
- Hiding menu, hours, location, or booking link behind design
|
|
73
|
+
- Stock cafe imagery when real photography is the point
|
|
74
|
+
|
|
75
|
+
### Sharp Technical
|
|
76
|
+
|
|
77
|
+
Good for: developer tools, B2B platforms, infrastructure products, data products, security tools.
|
|
78
|
+
|
|
79
|
+
Signals:
|
|
80
|
+
- Precise grid with tight alignment
|
|
81
|
+
- Low visual noise — very few decorative elements
|
|
82
|
+
- Strong information hierarchy — function drives layout
|
|
83
|
+
- Restrained motion — only when it explains something
|
|
84
|
+
|
|
85
|
+
Avoid:
|
|
86
|
+
- Playful or warm treatments that undermine technical credibility
|
|
87
|
+
- Dense copy with no visual breathing room
|
|
88
|
+
|
|
89
|
+
### Playful Contemporary
|
|
90
|
+
|
|
91
|
+
Good for: consumer apps, EdTech, food delivery, kids products, lifestyle brands targeting under-35.
|
|
92
|
+
|
|
93
|
+
Signals:
|
|
94
|
+
- Rounded forms, approachable typography
|
|
95
|
+
- Brighter palette with confident accent colors
|
|
96
|
+
- Motion used generously but purposefully
|
|
97
|
+
- Illustration or character work where appropriate
|
|
98
|
+
|
|
99
|
+
Avoid:
|
|
100
|
+
- Looking cheap or juvenile for a premium audience
|
|
101
|
+
- Overanimation that obscures the product
|
|
102
|
+
|
|
103
|
+
### Quiet Luxury
|
|
104
|
+
|
|
105
|
+
Good for: premium services, interior design, high-end hospitality, luxury retail, wellness brands.
|
|
106
|
+
|
|
107
|
+
Signals:
|
|
108
|
+
- Restraint above all — nothing superfluous
|
|
109
|
+
- Tactile material cues (fabric textures, paper grain, stone)
|
|
110
|
+
- Elegant typography contrast (fine serif + sparse uppercase tracking)
|
|
111
|
+
- Limited palette — usually 2–3 colors maximum
|
|
112
|
+
|
|
113
|
+
Avoid:
|
|
114
|
+
- Gimmicky animation that breaks the calm
|
|
115
|
+
- Shiny, trend-driven effects (glass, neon, gradients)
|
|
116
|
+
- Too much copy — quiet luxury lets the brand speak with less
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Signature Design Moves
|
|
121
|
+
|
|
122
|
+
Every strong site has 2–4 memorable moves. Choose moves that fit the direction and stick with them.
|
|
123
|
+
|
|
124
|
+
Examples:
|
|
125
|
+
- Oversized serif headline with tight sans-serif body underneath
|
|
126
|
+
- Muted palette with one decisive high-contrast accent color
|
|
127
|
+
- Image-first storytelling with minimal interface chrome around it
|
|
128
|
+
- Rigid grid with one intentionally broken element per section
|
|
129
|
+
- Soft material textures behind simple white interface frames
|
|
130
|
+
- Full-bleed photography sections alternating with dense-type sections
|
|
131
|
+
- Sticky navigation that changes color on scroll
|
|
132
|
+
|
|
133
|
+
**Rule:** Two strong moves beat six weak ones. Restraint is a design decision.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Typography Mood
|
|
138
|
+
|
|
139
|
+
Choose typography to express the brand's confidence level and audience — not just to look fashionable.
|
|
140
|
+
|
|
141
|
+
| Mood | Type strategy |
|
|
142
|
+
|---|---|
|
|
143
|
+
| Elegant and assured | Serif headline + restrained supporting sans (e.g., Playfair Display + Inter) |
|
|
144
|
+
| Modern and precise | Neo-grotesk or geometric sans with strong scale control (e.g., DM Sans, Plus Jakarta Sans) |
|
|
145
|
+
| Warm and neighborhood-focused | Soft serif or humanist sans pairings (e.g., Lora + Nunito, Fraunces + Manrope) |
|
|
146
|
+
| Technical and credible | Clean sans with tight hierarchy, minimal ornament (e.g., IBM Plex Sans, Space Grotesk) |
|
|
147
|
+
| Bold brand-forward | Display face with strong personality (e.g., Syne, Cabinet Grotesk, Clash Display) |
|
|
148
|
+
| Quiet luxury | Fine-weight serif or high-tracking uppercase (e.g., Cormorant Garamond, Libre Baskerville) |
|
|
149
|
+
|
|
150
|
+
**Rules:**
|
|
151
|
+
- Use contrast in scale, weight, and rhythm to create hierarchy before adding more colors.
|
|
152
|
+
- Never use system fonts (Arial, Helvetica, Times) — always pick with intention.
|
|
153
|
+
- Two fonts maximum. One display + one body. A third only if very controlled.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Color Behavior
|
|
158
|
+
|
|
159
|
+
- One strong accent is often enough. Neutrals do most of the structural work.
|
|
160
|
+
- Color guides attention — it should not paint every surface.
|
|
161
|
+
- Strong contrast can come from spacing and scale, not just saturated color.
|
|
162
|
+
- Trust-sensitive businesses (legal, medical, finance) need calm palettes even when layout is bold.
|
|
163
|
+
- If photography is strong, reduce color complexity — let the images carry the warmth.
|
|
164
|
+
|
|
165
|
+
**Custom palette rules:**
|
|
166
|
+
- Never use raw Tailwind palette colors (blue-500, gray-200, etc.) — always define custom values.
|
|
167
|
+
- Name colors semantically: `brand`, `accent`, `surface`, `text`, `muted`.
|
|
168
|
+
- Define in `tailwind.config.js` under `theme.extend.colors`.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Motion Stance
|
|
173
|
+
|
|
174
|
+
| Level | When to use | What to use |
|
|
175
|
+
|---|---|---|
|
|
176
|
+
| None | Trust-sensitive, performance-critical | No animation |
|
|
177
|
+
| Subtle | Most business sites | Fade + translate on scroll reveal, 200–300ms |
|
|
178
|
+
| Moderate | Consumer brands, hospitality | Stagger reveals, gentle parallax, hover transitions |
|
|
179
|
+
| Expressive | Agencies, entertainment, playful brands | Page transitions, character animation, scroll-driven |
|
|
180
|
+
|
|
181
|
+
**Rules:**
|
|
182
|
+
- Motion should support pacing, reveal hierarchy, or reinforce affordances — not decorate.
|
|
183
|
+
- `transform` and `opacity` only — never animate layout properties (width, height, margin).
|
|
184
|
+
- Respect `prefers-reduced-motion` — wrap all animations in the media query.
|
|
185
|
+
- If the page relies on performance or trust, reduce animation density.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Anti-Patterns
|
|
190
|
+
|
|
191
|
+
Avoid in all cases:
|
|
192
|
+
- Random mix of brutalism, glassmorphism, and luxury minimalism in the same page
|
|
193
|
+
- Default AI startup gradients (purple → blue, dark mode glow) unless clearly warranted
|
|
194
|
+
- Decorative visuals that weaken the CTA or bury practical information
|
|
195
|
+
- Style direction that contradicts the business category (bold agency aesthetic for a law firm)
|
|
196
|
+
- Fake UI, fake charts, fake product screenshots, fake reviews
|
|
197
|
+
- Overanimated entrance sequences that delay time to content
|
|
198
|
+
|
|
199
|
+
By direction:
|
|
200
|
+
- **SaaS**: fake dashboards, purple glow overload, feature-card sprawl with no story
|
|
201
|
+
- **Agency**: dramatic visuals with vague copy, no real proof of work
|
|
202
|
+
- **Local business**: beautiful design but phone, hours, and service area are buried
|
|
203
|
+
- **Hospitality**: atmospheric imagery but no menu, reservation link, or location
|
|
204
|
+
|
|
205
|
+
**Recovery moves when it feels generic:**
|
|
206
|
+
1. Remove one full visual layer
|
|
207
|
+
2. Choose one dominant type contrast and commit to it
|
|
208
|
+
3. Reduce palette to neutrals + one accent
|
|
209
|
+
4. Simplify motion to a single reveal family
|
|
210
|
+
5. Move practical business information higher on the page
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Website Brief Template
|
|
2
|
+
|
|
3
|
+
Use this when prompting `/sk:website`. Fill in what you have — the skill will infer the rest.
|
|
4
|
+
|
|
5
|
+
The fastest way to start: paste a Google Maps URL or existing website URL. The skill extracts everything automatically.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Minimal brief (enough to start)
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/sk:website
|
|
13
|
+
|
|
14
|
+
[Business name] — [type of business] in [city/location].
|
|
15
|
+
Goal: [what the site should achieve — bookings, inquiries, orders, etc.]
|
|
16
|
+
CTA: [primary action — "Book a Table", "Get a Quote", "Contact Us"]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Example:**
|
|
20
|
+
```
|
|
21
|
+
/sk:website
|
|
22
|
+
|
|
23
|
+
Corner Brew — specialty coffee shop in BGC, Taguig.
|
|
24
|
+
Goal: drive foot traffic and reservation inquiries.
|
|
25
|
+
CTA: Reserve a Spot
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Full brief (more control)
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/sk:website
|
|
34
|
+
|
|
35
|
+
**Business:** [name]
|
|
36
|
+
**Type:** [cafe / law firm / freelance designer / etc.]
|
|
37
|
+
**Location:** [city, region — required for local SEO]
|
|
38
|
+
**Goal:** [what success looks like for this site]
|
|
39
|
+
**Audience:** [who visits this business / who buys]
|
|
40
|
+
**Primary CTA:** [the one action you want visitors to take]
|
|
41
|
+
|
|
42
|
+
**Pages needed:**
|
|
43
|
+
- Home
|
|
44
|
+
- About
|
|
45
|
+
- [Services / Menu / Work]
|
|
46
|
+
- Contact
|
|
47
|
+
- [FAQ / Gallery / Blog — optional]
|
|
48
|
+
|
|
49
|
+
**Tone:** [warm and neighborhood / premium and editorial / bold and modern / etc.]
|
|
50
|
+
**Primary keyword:** [what people search to find this business]
|
|
51
|
+
|
|
52
|
+
**Real info to include:**
|
|
53
|
+
- Address: [full address if applicable]
|
|
54
|
+
- Phone: [for WhatsApp CTA — format: +63XXXXXXXXXX]
|
|
55
|
+
- Hours: [e.g., Mon–Fri 7am–6pm, Sat–Sun 8am–5pm]
|
|
56
|
+
- Services: [list what the business actually offers]
|
|
57
|
+
- Trust signals: [certifications, years open, anything real]
|
|
58
|
+
|
|
59
|
+
**Visual direction (optional):**
|
|
60
|
+
- Brand adjectives: [e.g., cozy, artisan, warm, minimal]
|
|
61
|
+
- Colors to use or avoid:
|
|
62
|
+
- Inspiration: [URL] for [what to borrow from it]
|
|
63
|
+
|
|
64
|
+
**Avoid:**
|
|
65
|
+
- [patterns or styles you don't want]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## URL-first brief (fastest)
|
|
71
|
+
|
|
72
|
+
Just paste a URL — the skill fetches and extracts everything:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
/sk:website
|
|
76
|
+
|
|
77
|
+
[Google Maps URL or existing website URL]
|
|
78
|
+
|
|
79
|
+
Goal: [what to improve or achieve]
|
|
80
|
+
CTA: [primary action]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Example:**
|
|
84
|
+
```
|
|
85
|
+
/sk:website
|
|
86
|
+
|
|
87
|
+
https://maps.google.com/?q=Corner+Brew+BGC
|
|
88
|
+
|
|
89
|
+
Goal: replace the outdated site with something modern and bookable.
|
|
90
|
+
CTA: Reserve a Table
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Revision brief
|
|
96
|
+
|
|
97
|
+
Use `/sk:website --revise` when you have an existing build and client feedback:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
/sk:website --revise
|
|
101
|
+
|
|
102
|
+
Changes from the client:
|
|
103
|
+
1. [Change 1 — e.g., "make the hero image warmer and more inviting"]
|
|
104
|
+
2. [Change 2 — e.g., "add a gallery section on the Home page"]
|
|
105
|
+
3. [Change 3 — e.g., "change the CTA from 'Contact Us' to 'Book a Table'"]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Business type examples
|
|
111
|
+
|
|
112
|
+
| Business | CTA | Key pages | Niche guide |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| Specialty cafe | Visit Us / Reserve a Spot | Home, Menu, About, Find Us | cafe |
|
|
115
|
+
| Restaurant | Book a Table / Order Online | Home, Menu, About, Reservations | restaurant |
|
|
116
|
+
| Law firm | Schedule a Consultation | Home, Practice Areas, About, Contact | law-firm |
|
|
117
|
+
| Dentist | Book an Appointment | Home, Services, About Us, Contact | dentist |
|
|
118
|
+
| Yoga studio | Try a Free Class | Home, Classes, About, Schedule, Contact | gym |
|
|
119
|
+
| Accountant | Get a Free Consultation | Home, Services, About, Contact, FAQ | accountant |
|
|
120
|
+
| Freelance designer | View My Work / Hire Me | Home, Work, About, Contact | portfolio |
|
|
121
|
+
| Real estate agent | Search Listings / Get a Valuation | Home, Listings, About, Contact | real-estate |
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Content & SEO Reference
|
|
2
|
+
|
|
3
|
+
Use when writing copy, metadata, or reviewing content for a website. Helps the site communicate clearly to humans and search engines without sounding generic, manipulative, or keyword-stuffed.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Messaging Rules
|
|
8
|
+
|
|
9
|
+
- Start from the business, audience, and page goal — not from a template.
|
|
10
|
+
- Lead with concrete value, not vague brand language.
|
|
11
|
+
- Prefer simple claims the business can credibly support.
|
|
12
|
+
- Keep headings short and scannable — under 10 words where possible.
|
|
13
|
+
- Use CTAs that match the actual conversion step (not "Learn More" when you mean "Book a Table").
|
|
14
|
+
- Avoid filler: "innovative solutions", "next-level", "cutting-edge", "world-class", "passionate about".
|
|
15
|
+
|
|
16
|
+
**Good headline pattern:** [Who you help] + [specific outcome] + [where/context]
|
|
17
|
+
- "Hand-pulled espresso and house-made pastries in the heart of BGC"
|
|
18
|
+
- "Tax prep for freelancers and small businesses in Metro Manila"
|
|
19
|
+
- "Criminal defense attorneys serving Houston and surrounding counties"
|
|
20
|
+
|
|
21
|
+
**Bad headline pattern:** vague + buzzword + generic
|
|
22
|
+
- "Crafting memorable coffee experiences" — says nothing
|
|
23
|
+
- "Your trusted partner in financial success" — could be anyone
|
|
24
|
+
- "Excellence in legal representation" — no specifics
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## SEO Rules
|
|
29
|
+
|
|
30
|
+
- Match the title tag and meta description to the page's actual search intent.
|
|
31
|
+
- One primary keyword or search theme per page is usually enough.
|
|
32
|
+
- Support the primary intent with natural secondary terms in headings, body copy, alt text, and internal links.
|
|
33
|
+
- Do not force exact-match keyword repetition — write for humans, let intent match naturally.
|
|
34
|
+
- Keep important marketing content in HTML (not JS-only rendered) for crawlability.
|
|
35
|
+
|
|
36
|
+
**Title tag formula:** [Primary keyword] | [Brand name]
|
|
37
|
+
- "Coffee Shop in BGC Taguig | Corner Brew"
|
|
38
|
+
- "Small Business Tax Accountant Austin TX | Davis & Co."
|
|
39
|
+
|
|
40
|
+
**Meta description formula:** [Audience problem or intent] + [service/offer] + [location/differentiator] + [CTA]
|
|
41
|
+
- "Looking for great coffee near BGC? Corner Brew serves specialty espresso, fresh pastries, and free WiFi on 26th Street. Visit us today."
|
|
42
|
+
- 150–160 characters. Every page gets a unique one.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Local SEO
|
|
47
|
+
|
|
48
|
+
Use when the business serves a geographic area — cafes, restaurants, law firms, clinics, contractors, etc.
|
|
49
|
+
|
|
50
|
+
**Always confirm these inputs:**
|
|
51
|
+
- Primary service and secondary services
|
|
52
|
+
- City, metro area, or specific neighborhood
|
|
53
|
+
- Secondary service areas (if any)
|
|
54
|
+
- Contact phone number
|
|
55
|
+
- Street address (if physical location)
|
|
56
|
+
- Business hours
|
|
57
|
+
- Appointment/booking CTA
|
|
58
|
+
|
|
59
|
+
**Content placement:**
|
|
60
|
+
- Mention service + city in the hero headline naturally — not as a keyword dump
|
|
61
|
+
- Add a short service-area statement in the footer or about section ("Serving Quezon City and nearby areas")
|
|
62
|
+
- Include trust sections that fit: process, years in business, certifications, FAQs — only if real
|
|
63
|
+
- Use FAQ sections for genuine customer objections, not SEO filler
|
|
64
|
+
|
|
65
|
+
**Local metadata checklist:**
|
|
66
|
+
- Title tag: [Service] in [City] | [Brand] (e.g., "Cafe in Tomas Morato | Kape Republic")
|
|
67
|
+
- Meta description: mentions the audience, service, and location in plain language
|
|
68
|
+
- H1: reflects the page's local search intent
|
|
69
|
+
- Footer: include full address, phone, and hours where applicable
|
|
70
|
+
- Structured data: `LocalBusiness` (or a more specific subtype)
|
|
71
|
+
|
|
72
|
+
**Structured data — LocalBusiness:**
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"@context": "https://schema.org",
|
|
76
|
+
"@type": "[BusinessType]",
|
|
77
|
+
"name": "[Business Name]",
|
|
78
|
+
"address": {
|
|
79
|
+
"@type": "PostalAddress",
|
|
80
|
+
"streetAddress": "[Street]",
|
|
81
|
+
"addressLocality": "[City]",
|
|
82
|
+
"addressRegion": "[Region]",
|
|
83
|
+
"addressCountry": "[Country Code]"
|
|
84
|
+
},
|
|
85
|
+
"telephone": "[Phone]",
|
|
86
|
+
"openingHours": ["Mo-Fr 08:00-18:00", "Sa 09:00-17:00"],
|
|
87
|
+
"url": "[Site URL]"
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Use `CafeOrCoffeeShop` for cafes, `Restaurant` for restaurants, `LegalService` for law firms, `Dentist` for dental, `MedicalBusiness` for clinics, `LocalBusiness` as fallback.
|
|
92
|
+
|
|
93
|
+
**Avoid:**
|
|
94
|
+
- Thin city pages with near-duplicate copy
|
|
95
|
+
- Fake office locations
|
|
96
|
+
- Invented reviews or star ratings
|
|
97
|
+
- Keyword repetition that makes copy sound mechanical
|
|
98
|
+
- Separate "city pages" unless each one is genuinely different
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Page-Level SEO Checklist
|
|
103
|
+
|
|
104
|
+
For every page generated, verify:
|
|
105
|
+
|
|
106
|
+
- [ ] Unique `<title>` tag (not duplicated from another page)
|
|
107
|
+
- [ ] Unique meta description (150–160 characters)
|
|
108
|
+
- [ ] One H1 that matches the page's primary intent
|
|
109
|
+
- [ ] Supporting H2s and H3s that structure the content logically
|
|
110
|
+
- [ ] OG `title`, `description`, and `image` defined
|
|
111
|
+
- [ ] Twitter card metadata defined
|
|
112
|
+
- [ ] Canonical URL set (no duplicate content)
|
|
113
|
+
- [ ] Structured data where applicable
|
|
114
|
+
- [ ] All important text is in HTML (not JS-rendered)
|
|
115
|
+
- [ ] Internal links to related pages (e.g., Services → Contact)
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Internal Linking Strategy
|
|
120
|
+
|
|
121
|
+
- Home → Services, About, Contact (primary CTAs in nav and hero)
|
|
122
|
+
- Services → Contact (each service should have a CTA to book/inquire)
|
|
123
|
+
- About → Services, Contact (trust-building page leads to action)
|
|
124
|
+
- Blog/FAQ posts → relevant service pages (if applicable)
|
|
125
|
+
- Footer: always links to all top-level pages + legal pages
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Content Anti-Patterns
|
|
130
|
+
|
|
131
|
+
Never produce:
|
|
132
|
+
- "Lorem ipsum" or any placeholder body copy
|
|
133
|
+
- Generic `[Your Headline Here]` style template text
|
|
134
|
+
- Invented testimonials, star ratings, or review counts
|
|
135
|
+
- Made-up certifications, awards, or rankings
|
|
136
|
+
- Fake "as seen in" media logos
|
|
137
|
+
- Invented pricing or "starting from" numbers without real data
|
|
138
|
+
- Claims like "best in [city]" without real proof
|
|
139
|
+
|
|
140
|
+
Always prefer:
|
|
141
|
+
- Specific over vague ("3 espresso origins rotating weekly" > "quality coffee")
|
|
142
|
+
- Verifiable over invented ("Open since 2019" vs. "20 years of experience" when unknown)
|
|
143
|
+
- Direct over clever ("Book a table" vs. "Experience our hospitality")
|