Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
9062c3f
Add Thriving Through Menopause multi-channel marketing campaign
claude Mar 18, 2026
dd7c270
Update TTM campaign with verified brand data from research
claude Mar 18, 2026
7b9627a
Add signature phrase hook and final verified brand details
claude Mar 18, 2026
05905e5
Update TTM Symposium 2026: Melbourne venue, date, audience, and ticke…
claude Mar 18, 2026
2e7958b
Add TTM Marketing Generator — Next.js AI content generator app
claude Mar 18, 2026
fe4a82c
Add marketing mockups to Next.js public folder for Vercel serving
claude Mar 18, 2026
e885251
Add hamburger menu for mobile nav responsiveness
claude Mar 18, 2026
b4b51d6
Update hero eyebrow: Curated by Chiza Westcarr -> Created by Mati Chi…
claude Mar 18, 2026
de32089
Add vercel.json for static site deployment
claude Mar 18, 2026
51c7a54
Add root vercel.json to serve marketing site from subdirectory
claude Mar 18, 2026
98a03f6
Fix 404s on marketing mockup pages by including all HTML files in Ver…
claude Mar 18, 2026
af39b63
Fix Vercel static serving: remove legacy builds config
claude Mar 18, 2026
c2c52ad
Fix Vercel config: use outputDirectory instead of legacy builds
claude Mar 18, 2026
3f8fea6
Trigger redeploy: serve all marketing pages via outputDirectory
claude Mar 18, 2026
eb65561
Add reusable campaign playbook and client template
claude Mar 19, 2026
59a25da
Add Freedom Couple Counselling campaign assets
claude Mar 23, 2026
201612b
Fix Vercel output directory for freedomcouplecounseling static site
claude Mar 23, 2026
2adfd7d
Remove outputDirectory from vercel.json to fix blank static site deploy
claude Mar 23, 2026
dd15376
Fix FCC brand colours and make all assets clickable
claude Mar 23, 2026
94c1e85
fix: point vercel.json output to freedomcouplecounseling project
claude Mar 23, 2026
c045adf
redesign: update FCC showcase to match real brand identity
claude Mar 23, 2026
699d4bf
update: accurate FCC brand colours and logo SVG from actual logo
claude Mar 23, 2026
201ac4d
fix: exact FCC brand colours from live site CSS + real logo images
claude Mar 23, 2026
f6c1e75
revert: restore root vercel.json to thriving-through-menopause
claude Mar 23, 2026
dd21a66
Add FCC AI content generator (Next.js 15 + Claude API)
claude Mar 23, 2026
bbb5a24
fix: upgrade Next.js to 15.2.4 (CVE-2025-66478)
claude Mar 23, 2026
f5e2207
Add DALL-E 3 image generation to FCC marketing generator
claude Mar 23, 2026
0470c8a
Auto-generate image after content, fix download via proxy
claude Mar 23, 2026
d014a53
Fix OpenAI env var name to match Vercel (jillycontent)
claude Mar 23, 2026
c3a5f20
Remove root vercel.json to fix multi-project deployments
claude Mar 23, 2026
e770bde
chore: trigger fresh Vercel deployment
claude Mar 23, 2026
a1dc7fb
chore: trigger fresh GitHub-connected Vercel build
claude Mar 23, 2026
77f9a77
fix: handle possibly undefined response.data in generate-image route
claude Mar 23, 2026
3a0adac
fix: upgrade Next.js to 15.3.2 to patch CVE-2025-66478
claude Mar 23, 2026
fd03479
fix: upgrade Next.js to 15.3.9 (patched CVE-2025-66478)
claude Mar 23, 2026
dc64d7f
fix: hide image prompt text from UI, show only generate button and re…
claude Mar 23, 2026
a111e37
fix: always show Generate Image button after content is generated
claude Mar 23, 2026
fa38840
fix: always show Generated Image section after generation, remove has…
claude Mar 23, 2026
a1204bb
fix: remove image prompt from API output and all parsing logic from f…
claude Mar 23, 2026
13d93ed
feat: replace DALL-E image generation with branded HTML/CSS asset moc…
claude Mar 23, 2026
60a3295
chore: force redeploy - switch to brand mockup assets
claude Mar 23, 2026
3282a0d
fix: remove html-to-image dep (React 19 conflict), use browser print …
claude Mar 23, 2026
5f98240
chore: add v4 version badge to header for deploy verification
claude Mar 23, 2026
f73c09f
feat: replace leaf emoji with actual FCC logo in all mockup avatars
claude Mar 23, 2026
2982a77
fix: show full FCC logo (with text) in mockup headers instead of crop…
claude Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
310 changes: 310 additions & 0 deletions marketing/CAMPAIGN-PLAYBOOK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
# Marketing Campaign Playbook
## Build a Full Ad Campaign from Publicly Available Information

A repeatable process for generating complete, client-ready marketing campaign assets — social ads, email, print, and a live deployable showcase — using only public information about the client.

---

## Overview

**Input**: A client name, website, or brief description
**Output**: A fully deployed marketing campaign showcase with:
- Brand guidelines (derived from research)
- Facebook/Instagram ad mockups (HTML)
- Instagram Stories & Posts (HTML)
- Email campaign (HTML)
- Event poster / print asset (HTML)
- Social media copy (Twitter/X thread, LinkedIn/Facebook copy)
- Optional: Next.js AI-powered generator app (Claude API)
- Deployed to Vercel at a shareable URL

**Time to complete**: ~2–4 hours (mostly research + asset generation)

---

## Step 1 — Client Research (Public Sources Only)

Collect all publicly available information. Use `WebSearch` and `WebFetch`.

### Research Checklist

```
[ ] Official website — homepage, about, services/products
[ ] Social media profiles — Instagram, Facebook, LinkedIn, TikTok
[ ] Event pages — Eventbrite, Humanitix, or similar ticketing
[ ] Google Business Profile / reviews
[ ] Press mentions / media coverage
[ ] Competitor landscape (3–5 competitors)
[ ] Target audience signals (who engages, who they speak to)
```

### Key Data Points to Extract

| Field | Where to Find |
|-------|---------------|
| Brand name & tagline | Website homepage |
| Founder / key person | About page, LinkedIn |
| Mission & values | About page |
| Products / services / events | Services/events pages |
| Pricing / tiers | Pricing page or ticketing |
| Colours & fonts | Website CSS / visual inspection |
| Tone of voice | Existing copy |
| Target audience | About page, social bio, ad targeting |
| Social proof (stats, testimonials) | Website, Google reviews |
| Hashtags in use | Instagram posts |
| Key dates / deadlines | Events page |
| Competitors | Search "[niche] + [location]" |

---

## Step 2 — Create Brand Guidelines

Save as `marketing/[client-slug]/brand-guidelines.md`

Use the template at `marketing/_template/brand-guidelines-template.md`.

Sections to fill:
1. **Brand Overview** — who, what, why, founder, website, social handles
2. **Brand Personality** — 5–6 traits with descriptions
3. **Colour Palette** — primary, secondary, accent (hex codes), with usage notes
4. **Typography** — display font, heading font, body font, CTA font
5. **Key Messages** — signature phrases, taglines, mission language, urgency lines
6. **Imagery Style** — photography direction, mood, what to avoid
7. **Do's and Don'ts** — explicit guardrails
8. **Campaign Goal** — specific, measurable (e.g. "sell 200 tickets")

---

## Step 3 — Build Campaign Assets

### Folder Structure

```
marketing/
[client-slug]/
brand-guidelines.md ← Step 2 output
index.html ← Campaign showcase hub
vercel.json ← Deployment config
ads/
facebook-ad-mockups.html ← 3–6 ad variations
social-media/
instagram-posts.html ← Feed post mockups
instagram-stories.html ← Story mockups (9:16)
facebook-linkedin-ads.md ← Ad copy text
twitter-x-thread.md ← Thread copy
email/
email-campaign.html ← Full email mockup
print/
event-poster.html ← A3/A4 poster or flyer
generator/ ← Optional: AI generator app
app/
package.json
vercel.json
```

### Asset Build Order (recommended)

1. `brand-guidelines.md` — reference for everything else
2. `index.html` — scaffold the hub first (add links as assets are created)
3. `ads/facebook-ad-mockups.html` — highest ROI asset for most clients
4. `social-media/instagram-posts.html`
5. `social-media/instagram-stories.html`
6. `email/email-campaign.html`
7. `print/event-poster.html`
8. Copy decks (`facebook-linkedin-ads.md`, `twitter-x-thread.md`)

---

## Step 4 — Build the Campaign Showcase Hub (index.html)

The `index.html` is a single-page portal that links to all assets. Include:

- Hero section with brand name, tagline, campaign goal
- Nav links to each asset section
- Preview thumbnails / iframe previews of each deliverable
- "Open full page" links for each asset
- Brand colour palette and font preview strip
- Download/export notes for the client

See `marketing/_template/index-template.html` for the scaffold.

---

## Step 5 — (Optional) AI Generator App

Build a Next.js app that uses the Claude API so the client can generate more content on-demand.

```
generator/
app/
page.tsx ← UI with form (audience, tone, goal, channels)
api/
generate/
route.ts ← Claude API call with brand guidelines as system prompt
package.json
vercel.json
.env.example ← ANTHROPIC_API_KEY placeholder
```

**System prompt pattern**: Load `brand-guidelines.md` content as the system prompt so Claude always generates on-brand content.

**UI inputs**: Channel (Instagram/Facebook/Email/etc.), Tone, Target Audience, Goal, CTA

See `marketing/_template/generator/` for the full scaffold.

---

## Step 6 — Deploy to Vercel

### Root-level `vercel.json` (static site — no builds key)

```json
{
"rewrites": [
{ "source": "/ads/(.*)", "destination": "/ads/$1" },
{ "source": "/social-media/(.*)", "destination": "/social-media/$1" },
{ "source": "/email/(.*)", "destination": "/email/$1" },
{ "source": "/print/(.*)", "destination": "/print/$1" }
]
}
```

> **Critical**: Do NOT add a `"builds"` key for static HTML projects. This causes Vercel errors.

### Generator app `vercel.json` (Next.js)

```json
{
"framework": "nextjs",
"buildCommand": "npm run build",
"outputDirectory": ".next"
}
```

### Deploy commands

```bash
# Static showcase (from client folder root)
cd marketing/[client-slug]
vercel --prod

# Generator app (from generator subfolder)
cd marketing/[client-slug]/generator
vercel --prod
```

### Environment variables (generator app only)

Set in Vercel dashboard or via CLI:
```bash
vercel env add ANTHROPIC_API_KEY
```

---

## Step 7 — Handoff to Client

Deliver:
1. **Live URL** — the deployed Vercel showcase link
2. **GitHub branch** — all source files in version control
3. **brand-guidelines.md** — editable brand document
4. **Copy decks** (`.md` files) — ready to paste into ad platforms
5. **Generator app URL** — if built, for ongoing content creation

### Client Instructions Template

```
Hi [Client],

Your campaign assets are ready. Here's everything:

🌐 Campaign Showcase: [vercel-url]
All your ads, social posts, email, and print assets in one place.

✍️ Copy Decks (paste-ready):
- Facebook/LinkedIn Ads: [link to .md file]
- Twitter/X Thread: [link to .md file]

🤖 AI Content Generator (optional): [generator-url]
Enter your ANTHROPIC_API_KEY to generate more on-brand content.

📁 Source Files: [github-branch-link]

Brand guidelines are in brand-guidelines.md — update this as your brand evolves.
```

---

## Replication Checklist (New Client)

```bash
# 1. Create client folder
cp -r marketing/_template marketing/[new-client-slug]

# 2. Fill in brand-guidelines.md from research
# 3. Build assets (customise HTML templates with brand colours/copy)
# 4. Update index.html hub
# 5. Deploy
cd marketing/[new-client-slug]
vercel --prod
```

---

## Quality Checklist Before Delivery

```
[ ] All brand colours match guidelines (check hex codes)
[ ] All fonts match guidelines
[ ] No placeholder text ([CLIENT], [DATE], etc.) remaining
[ ] All CTAs link to real URLs (or noted as "replace with X")
[ ] Email renders correctly at 600px width
[ ] Instagram posts are 1:1 ratio (1080×1080)
[ ] Instagram Stories are 9:16 ratio (1080×1920)
[ ] Facebook ads are 1.91:1 ratio (1200×628) for feed
[ ] vercel.json has no "builds" key (for static sites)
[ ] Deployed URL is accessible publicly
[ ] Generator app: ANTHROPIC_API_KEY env var set
```

---

## Asset Dimensions Reference

| Format | Dimensions | Ratio |
|--------|-----------|-------|
| Facebook/Instagram Feed Ad | 1200×628px | 1.91:1 |
| Instagram Square Post | 1080×1080px | 1:1 |
| Instagram Story | 1080×1920px | 9:16 |
| Facebook Cover | 1640×624px | — |
| Email Width | 600px | — |
| A4 Print Poster | 210×297mm / 2480×3508px | — |
| Twitter/X Card | 1200×675px | 16:9 |

---

## Time Budget Per Asset

| Asset | Estimated Time |
|-------|---------------|
| Research + brand guidelines | 30–45 min |
| Facebook ad mockups (3–6 ads) | 30–45 min |
| Instagram posts + stories | 30–45 min |
| Email campaign | 20–30 min |
| Print poster | 20–30 min |
| Copy decks | 15–20 min |
| Showcase hub (index.html) | 20–30 min |
| Generator app | 45–60 min |
| Deployment + QA | 15–20 min |

---

## Examples

| Client | Niche | Branch |
|--------|-------|--------|
| Thriving Through Menopause | Medical aesthetics symposium | `claude/menopause-symposium-marketing-ojszT` |

---

*Template version: 1.0 — March 2026*
Loading