> A 600-post content library doesn't require a 10-person editorial team. With the right serverless CMS architecture and automated SEO pipeline, a single operator can out-publish a small agency. Here is how AIKit EmDash turned content into a measurable growth channel.

The Problem

Content marketing is the highest-ROI growth channel for B2B SaaS, but it is also the most labor-intensive. Traditional workflows require:

- Writers to draft each post individually

- Editors to review, format, and add metadata

- Developers to push content through a build pipeline

- SEO specialists to manually optimize every page

For a solo founder or small team, this pipeline bottlenecks at roughly 4-8 posts per month -- far short of the 30-60 posts per month needed to see compounding SEO returns. The result: most content programs stall before they reach critical mass. Even at larger agencies, the cost-per-post model makes scaling impractical beyond a few dozen articles.

The Solution

AIKit EmDash's Auto Blog and SEO plugin solves this by replacing the manual editorial pipeline with a fully automated, serverless engine. The architecture is simple but powerful:

1. A content queue drives publishing -- JSON files in a directory, each representing one blog post

2. A publisher script reads the queue and inserts structured content directly into D1

3. Posts go live instantly -- no build step, no deploy, no CDN purge

4. The dynamic sitemap at /sitemap.xml automatically includes new posts

5. Both /llms.txt and /llms-full.txt update in real time for AI agent discovery

The result is a content pipeline that can publish 2-3 posts per day with zero human intervention after the queue is filled. The only manual step is generating the queue files themselves -- and even that can be automated.

Architecture Overview

Data Flow

Queue JSON file -> blog-publisher.py -> D1 (ec_posts) -> EmDash Content API -> Live at /blog/<slug>

Key Components

| Component | Technology | Role |

|-----------|-----------|------|

| Content Queue | Local JSON files | Stores pending blog posts as structured data |

| Publisher Script | Python + wrangler | Reads JSON, inserts into D1 with proper revisions |

| Database | Cloudflare D1 | Serverless SQLite, 600+ posts and growing |

| CMS | EmDash | Runtime content API with related posts, TOC, reading time |

| SEO | Plugin | Dynamic sitemap, OG tags, JSON-LD structured data |

Step 1: Queue Architecture

The content queue is a simple flat-file system. Each post is a JSON file with five fields: title, body_text, excerpt, category, and tags. Files are named NN-slug.json where NN is the sequential post number. This naming ensures alphabetical ordering equals publish priority. The queue directory has three subdirectories:

- Root: pending posts ready for publish

- published/: archived files with timestamp prefixes after successful publish

- queued/: reserved or processing files from incomplete runs

Step 2: Publishing Pipeline

The publisher script reads the queue JSON file, generates a ULID post ID, converts markdown body_text to Portable Text (Sanity-compatible JSON blocks), inserts into ec_posts with proper author and locale, creates a revision record, and archives the queue file. The entire process takes under 3 seconds per post.

The Portable Text conversion is particularly notable -- it preserves heading hierarchy (h2, h3), code blocks, tables, lists, and inline formatting. This means the rich content structure created in markdown survives intact into the CMS.

Step 3: SEO Infrastructure

Once content is in D1, the Auto Blog and SEO plugin handles discovery automatically:

- Dynamic sitemap at /sitemap.xml queries D1 for all published posts. New content appears within seconds.

- LLM discovery: /llms.txt lists every post with URL and excerpt. /llms-full.txt includes full content preview for AI agent context.

- Auto-generated meta: EmDash generates OG tags from post data at runtime.

- Related posts: The content API matches posts by keyword overlap, displaying 3 related articles per page.

- Reading time: Calculated automatically at 200 words per minute.

- Table of Contents: Auto-generated from h2 headings for every post.

Results

After 600+ published posts across every category from Content Marketing to Game Dev, the results are clear:

- 600+ posts published across 10+ categories without a single manual editorial review

- Zero editorial overhead -- every post goes from queue to live without human review

- Instant go-live -- no build step, no deploy delay, no CI pipeline

- Automatic SEO coverage -- every post appears in the sitemap and LLM discovery files

- Full content lifecycle -- posts are created, published, archived, and tracked through the content calendar

Key Takeaways

- Serverless CMS architecture eliminates the build-deploy cycle -- D1-backed content goes live instantly, making it possible to publish multiple times per day without a devops team

- Flat-file queues are surprisingly effective -- JSON files in a directory with a naming convention beat complex CMS workflow engines for sheer throughput

- Automated SEO infrastructure removes the bottleneck -- when the sitemap, OG tags, and LLM discovery files update automatically, there is no SEO overhead per post

- 600 posts is just the beginning -- with a serverless pipeline, scaling to 2,000 or 5,000 posts is a matter of queue throughput, not infrastructure cost