> 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