How we write and publish
a blog post. Properly.

A working tool, not a document. Fill in what you're writing, tick off steps as you go, time each phase. Your progress saves automatically in this browser.

Target time per blog
3-3.5hours

Active working time, not calendar time. Stretch goal: 2.5 hours once you've published 5+ posts and the rhythm is built. AI does the heavy lifting on the draft. Your value-add is the voice, the real ad-account examples, and editorial judgement.

Active blog
0 of 13 steps complete 0%
See live blog posts Check publishing status

Roles & cadence

Exec owns initiating each blog. Pick the next topic from the agreed list and follow the workflow. No need to wait for approval to start. Rachel reviews async via Google Docs comments. No meetings unless major direction change. Cadence: 2 posts per month, first and third Tuesday. Start a week ahead of each date.

Documents & tools.

Open the docs you need in tabs before you start. Tools are linked for when you reach the step that needs them.

Reference documents

Tools

Seven phases.
Twelve steps.

Click each phase to expand. Tick steps as you complete them. Time each phase against the target.

0:00 Target: 20 min
Pick your topic from the Blog Topics list & mark it Drafting
5 min

Open the Blog Topics list. Pick a topic that's been agreed with Rachel and is next in the queue. Check if it's a Founder (F) or Agency (A) audience post.

Update the status column to "Drafting" and add today's date. This stops anything getting lost month-to-month.

Lock in keywords from SEO seeds
10 min

Each post needs 1 primary keyword plus 3-5 secondary keywords.

  • Primary: the exact phrase someone would Google. Goes in title, first 100 words, one subheading, meta description.
  • Secondary: 3-5 supporting phrases including Reddit language (audience fatigue, pause losers, ROAS dropped).

Write these into your draft doc before you start. Locking them in now prevents rework later.

Skim competitor angles (optional)
5 min

Open the Competitors & Inspiration doc. Skim how others frame the same topic. The goal isn't to copy. It's to find an angle they're missing or doing badly. That's where The Peach System's edge sits: real ad-account experience.

0:00 Target: 45 min
Draft with Claude using your strategy + keywords
30 min

Open Claude.ai in a new tab. Start a new chat. Paste in:

  • Your topic
  • The audience (F or A)
  • Your primary keyword and 3-5 secondary keywords
  • A link to the Ramadan post as the style reference
  • A request for a 1,200-1,800 word draft with question-based section headings

Ask Claude to: include the primary keyword in the title, first 100 words, one subheading, and meta description. Cite stats with named sources only. End with a soft connection to The Peach System or The Digital Peach, no hard sell.

Refine in 2-3 follow-up prompts
15 min

Read what Claude returns. Ask for specific improvements:

  • "Tighten the opening, it's too generic"
  • "Suggest 3 alternative headlines under 70 characters"
  • "Remove any statistics that aren't from a named source"
  • "This paragraph feels textbook, make it feel like real ad-account experience"
Important: Always check for statistics Claude may have invented. If a number isn't traceable to a real source, ask Claude to remove it or replace it with a properly attributed one.
0:00 Target: 75 min
Move to Google Docs and rewrite section by section
60-75 min

Copy Claude's draft into a new Google Doc. This is where the real value-add happens. Work through it section by section.

  • Replace generic statements with specific examples from real ad accounts
  • Apply UK English spelling (optimisation, personalised, behaviour, colour)
  • Remove any em dashes
  • Strip italics from body copy
  • Add Rachel's voice: direct, practical, written from inside live ad accounts
  • Keep technical accuracy where Claude got it right, don't rewrite for the sake of it
Time check: If this phase runs over 75 minutes, Claude's first draft was weak. Go back to Phase 2 and refine the prompt rather than spending 2+ hours rewriting from scratch.
0:00 Target: 5 min
Share the Google Doc with Rachel
5 min

Share the doc with comment access. Tag Rachel in Slack or email with:

  • Link to the doc
  • Topic, primary keyword, audience (F or A)
  • Specific questions you want her input on

Rachel reviews and leaves inline comments. Default to async. No meeting unless something significant needs discussing.

0:00 Target: 45 min
Work through Rachel's comments
20-30 min

Address each comment. If something is unclear, ask in the comment thread before guessing. Resolve comments as you go so Rachel can see what's done.

Final proofread
15 min

One careful read-through. Check:

  • Spelling and grammar
  • Sentences that run too long or repeat themselves
  • UK English consistency
  • No em dashes
  • No italics in body
  • Primary keyword in title, first 100 words, and at least one subheading
  • Word count between 1,200 and 1,800
Optional AI check: Paste the final draft into GPTZero and cross-check with ZeroGPT. If either flags above 60% AI, the rewrite needs more voice and specific examples. Below 30-40% is fine. Detectors give false positives so don't redo good posts because of a borderline score.
0:00 Target: 30 min
Upload cover image to Cloudflare R2
15 min

Find or create a cover image. Ideal: 1200x630 px, JPG or PNG, under 500KB.

  • Open the Cloudflare R2 dashboard
  • Navigate to the blog-post-images folder
  • Upload with a lowercase, hyphenated filename (no spaces, no apostrophes)
  • Copy the public URL: https://pub-55dc34ad0599416491f4a8065aa34c72.r2.dev/blog-post-images/your-image.jpg
  • Save it for the next step
Convert your final draft to markdown
10 min

Open a new Claude.ai chat. Click "Copy prompt" below, paste it into Claude, replace [PASTE THE DRAFT HERE] with your finished Google Doc content, and send.

Claude returns formatted markdown with frontmatter, headings, and house style applied. Fill in any placeholders (cover image URL, alt text, category, date).

Markdown conversion prompt
You are helping convert a finished blog post into a markdown file for The Peach System Blog. The Peach System is The Digital Peach's Meta Ads intelligence platform, serving e-commerce brands and agencies in the UAE and globally.

Use this exact frontmatter structure at the top:

---
title: "Headline under 70 characters, include year and location where relevant"
description: "150-220 characters. Front-load keywords in the first 155 characters since Google truncates the rest in SERPs"
publishDate: YYYY-MM-DD
updatedDate: YYYY-MM-DD  (only include if the draft mentions being revised)
author: "Rachel Lindsay"
category: "Choose ONE: Meta Ads, Attribution, Creative Strategy, Agency Ops, CRO, UAE Market"
readTime: "X min read"  (calculate as word_count / 200, rounded up)
coverImage: "https://pub-55dc34ad0599416491f4a8065aa34c72.r2.dev/blog-post-images/[filename]"
coverAlt: "Describe the image with relevant keywords"
featured: false
draft: true
keywords: ["keyword one", "keyword two", "keyword three", "keyword four", "keyword five"]  (5-7 keywords, mix of head terms and long-tail)
---

STYLE RULES:
- No em dashes. Use commas, full stops, or spaced hyphens ( - ).
- No italics in body copy. Italics allowed only in the footer attribution line.
- No fabricated metrics or testimonials. If the draft cites a statistic without a clear named source, flag with [SOURCE NEEDED] rather than inventing one.
- UK English spelling: optimisation, personalised, behaviour, colour, organise, realise. Reject US spellings even if grammar tools suggest them.
- Mostly 2-4 sentence paragraphs. Use single-sentence paragraphs sparingly for emphasis.
- Use ## for main section headings, ### for sub-headings (rarely needed).
- Section headings should be question-based ("What happens to Meta ad costs during Ramadan?") or imperative ("Get your tracking right", "Plan for Eid now"). Keyword-rich.
- Bold key statistics in the body so they stand out.
- Cite statistics inline: "According to [Source name], [statistic]." Include hyperlinks to sources where URLs are available, otherwise flag with [LINK NEEDED].
- Use bulleted lists for thematic groupings (e.g. creative themes, audience segments).
- Body length: 1200-2000 words. Flag if the draft falls outside this range.

VOICE:
- First person plural ("we'd do", "we check", "in our experience").
- Direct, practical, from inside live ad accounts.
- Confident but warm. No jargon for jargon's sake.

SELF-PROMOTION:
- Mention The Peach System or The Digital Peach 2-3 times maximum, only where it adds genuine context.
- Link "The Peach System" to https://thepeachsystem.com on first mention.
- No hard sell.

CLOSING:
- Soft close, not a CTA. A playful tagline or seasonal greeting is fine where appropriate.
- End the body, then a horizontal rule (---), then a single-line italicised footer like:
  *Published by The Digital Peach, a Meta Business Partner agency in Dubai. The Peach System is The Digital Peach's Meta Ads intelligence platform...*

REFERENCE POST: The Ramadan Meta Ads post at https://blog.thepeachsystem.com/ramadan-meta-ads-uae is the tone and structure to match.

WHAT TO DO:
1. Read the draft below.
2. Generate frontmatter. Leave [PLACEHOLDER] where info is missing.
3. Format the body using markdown per the rules above.
4. Do not change the substance. Only format and polish.
5. Hyperlink all named sources where URLs are obvious. Flag [LINK NEEDED] if unsure.
6. Bold all statistics with named sources.
7. Suggest a filename for the markdown file in the format `slug-name.md` - lowercase, hyphens between words, under 60 characters, includes the main keyword. Put this on a line at the very top of your response like: `Filename: slug-name.md`
8. Return the complete markdown file ready to paste into GitHub.

NOW CONVERT THE FOLLOWING DRAFT INTO MARKDOWN:

[PASTE THE DRAFT HERE]
Resolve every placeholder tag before saving
5 min

Before you save the markdown file or send it to Rachel, scan the entire output for any of these tags:

  • [SOURCE NEEDED] - a statistic Claude could not verify. Either find a real, named source and add it inline ("According to [Source], [stat]") or cut the sentence entirely.
  • [LINK NEEDED] - a citation that needs a hyperlink. Find the source URL and add it, or cut.
  • [PLACEHOLDER] - missing frontmatter info (publishDate, coverImage filename, etc.). Fill it in.
The markdown is not ready until every bracket is gone. If you cannot verify a stat, the answer is to cut it, not to leave the tag in and hope Rachel notices. Publishing with placeholder text on a live blog is the kind of mistake that damages our reputation - and these are easy to fix if you check.

Once every tag is resolved, you are ready for Phase 7.

0:00 Target: 5 min
Send Rachel the final markdown + cover image URL
5 min

Send Rachel a message containing:

  • The complete markdown file (paste directly or attach as .md)
  • Suggested filename in lowercase-with-hyphens.md format
  • The R2 link to your cover image
  • Any notes (time-sensitive content, specific publish date, etc.)

Update the Blog Topics sheet: change status from "Drafting" to "With Rachel" and add the Google Doc link in notes.

Rachel commits to GitHub and publishes. Cloudflare auto-deploys. Post is live in 2-3 minutes. Rachel updates status to "Published" with the live URL.

What to do.
What not to do.

These rules are baked into the Claude prompts but worth knowing by heart.

Do

  • Write from real ad-account experience
  • UK English (optimisation, personalised, behaviour)
  • Short paragraphs, 2 to 4 sentences each
  • Attribute statistics to named sources
  • Practical advice with specific examples
  • Soft close, no aggressive sales pitches
  • Question-based section headings
  • Primary keyword in title, first 100 words, one subheading
  • 1,200 to 1,800 word count

Don't

  • Em dashes anywhere
  • Italics in body copy
  • Fabricated metrics or testimonials
  • "We helped X get Y%" claims
  • Generic marketing theory
  • Hard sells in the body
  • Walls of text without breaks
  • US spellings
  • Competitor name-drops
  • Rotating headlines or fake scarcity

Common pitfalls.

These cost time. Catch them early.

Spending 2+ hours rewriting Claude's draft
If you're over 75 min in Phase 3, the Claude draft was weak. Don't push through. Go back, refine your prompt, let Claude give you a better starting point.
Claude inventing statistics or quotes
Always check for numbers, percentages, or quotes you didn't ask for. If they're not from a named real source, tell Claude to remove them.
Headline too long
Anything over 70 characters gets cut off in Google search results. Aim for 50-65.
Cover image filename has spaces or special characters
Name R2 files with lowercase letters, numbers, and hyphens only. No spaces, apostrophes, or parentheses.
Wrong category name
Must be exactly: Meta Ads, Attribution, Creative Strategy, Agency Ops, or CRO. Case-sensitive.
Forgetting to lock in keywords before drafting
Decide primary + secondary keywords in Phase 1. Trying to fit them in after the draft wastes time and reads unnaturally.
Progress saved