Creates and iterates on blog posts with visual feedback loop. Use when writing posts, creating diagrams, improving layouts, or verifying content renders correctly.
Iterative blog post creation with Playwright visual verification.
1. Create draft (MCP or CLI)
2. Start dev server
3. Visual loop: snapshot ā improve ā rebuild ā verify
4. Publish when ready
mcp__klaboworld__kw_draft_create
title: "Post Title"
summary: "One-line description"
body: "Markdown content..."
tags: ["tag1", "tag2"]
mcp__klaboworld__kw_draft_update
slug: "post-slug"
body: "Updated content..."
# From monorepo root
node packages/content/dist/cli/bin.js draft create -t "Title" -s "Summary" -b ./content.md
node packages/content/dist/cli/bin.js draft update <slug> -b ./content.md
cd /Users/klabo/Documents/klabo.world/app && pnpm contentlayer build
Critical: Always verify changes visually using Playwright MCP.
browser_navigate ā http://localhost:3000/drafts/<slug>
browser_snapshot ā analyze current state
browser_take_screenshot ā save before.png
pnpm contentlayer build
browser_navigate ā http://localhost:3000/drafts/<slug>
browser_snapshot ā check for errors
browser_console_messages ā verify no errors
browser_take_screenshot ā save after.png
| Enhancement | How |
|---|---|
| Table of Contents | Add ## Contents with anchor links |
| Quote attributions | Add author links after blockquotes |
| Callout boxes | Use amber callout pattern |
| Code highlighting | Ensure language specified |
| Enhancement | How |
|---|---|
| SVG diagrams | Create in /app/public/images/posts/<slug>/ |
| Featured image | Set featuredImage in frontmatter |
| Side-by-side | Use grid comparison pattern |
| Full-width breaks | Use -mx-4 md:-mx-8 |
/app/public/images/posts/<slug>/
āāā featured.svg # Hero image
āāā diagram-1.svg # Inline diagrams
āāā screenshot.png # Screenshots
Reference in MDX as: /images/posts/<slug>/filename.ext
mcp__klaboworld__kw_draft_publish
slug: "post-slug"
publishDate: "2026-01-17" # Optional, defaults to today
/posts/<slug>| Issue | Fix |
|---|---|
| 404 on draft | pnpm contentlayer build |
| MDX error | Check closing tags, escape < |
| Image 404 | Check path starts with /images/ |
| Console errors | Fix component issues |
| Hydration mismatch | Check dynamic content |