Whipping Up a Blog with Claude Code (Part 4: Search, RSS, TOC, Draft)
Have it find the gaps, turn them into a roadmap, and implement them one by one on its own. Search, RSS, TOC, and Draft.
Whipping Up a Blog with Claude Code series
(10 parts)- 1Whipping Up a Blog with Claude Code (Part 1: Design)
- 2Whipping Up a Blog with Claude Code (Part 2: Customizing)
- 3Whipping Up a Blog with Claude Code (Part 3: The AI Writing System)
- 4Whipping Up a Blog with Claude Code (Part 4: Search, RSS, TOC, Draft)
- 5Whipping Up a Blog with Claude Code (Part 5: OG Images, SEO, Analytics)
- 6Whipping Up a Blog with Claude Code (Part 6: Comments, Tags, UX)
- 7Whipping Up a Blog with Claude Code (Part 7: Popular Post Rankings and Analytics)
- 8Whipping Up a Blog with Claude Code (Part 8: A Mascot Character)
- 9Whipping Up a Blog with Claude Code (Part 9: Dropping Categories for Tags)
- 10Whipping Up a Blog with Claude Code (Part 10: Pinning the Persona Update as a Skill)
Go find the gaps yourself
After Part 3 the blog basics were done. But figuring out what else to build was more thinking than I felt like doing.
So I told Claude Code:
find some improvements and propose themIt analyzed the codebase and produced this list:
High priority:
- Search
- RSS feed
- In-post table of contents (TOC)
- Draft support
Medium priority:
- Automatic OG image generation
- JSON-LD schema
- Analytics
- Callout component
Low priority:
- Comment system
- Tag archive
- Back to Top button
I don't have to think. It analyzes and even assigns priority.
Managing it as a roadmap
A bare list makes it hard to tell what's finished. So I asked for a kanban style.
turn this plan into roadmap.md and manage it like a kanban boardThis file appeared:
## π To Do
### π΄ High Priority
- [ ] Search
- [ ] RSS feed
- [ ] TOC
- [ ] Draft support
## π In Progress
(nothing in progress)
## β
Done
- [x] Series system
- [x] Related-post suggestionsNow whenever it works on something, Claude Code moves it to In Progress on its own, and to Done when it finishes.
Just work through them
With the roadmap in place I said:
work through them one at a time on your ownAnd it started implementing from High Priority in order.
1. Search
It's an SSG blog, so client-side search.
const filtered = posts.filter((post) => {
const q = query.toLowerCase();
return post.title.toLowerCase().includes(q) ||
post.description.toLowerCase().includes(q) ||
post.tags?.some((tag) => tag.toLowerCase().includes(q));
});It added a Cmd+K shortcut to open it directly.
2. RSS feed
Built /feed.xml with a Next.js Route Handler.
// src/app/feed.xml/route.ts
export async function GET() {
const posts = getAllPosts().slice(0, 20);
const rss = `<?xml version="1.0"?>
<rss version="2.0">
<channel>
${posts.map(post => `<item>...</item>`).join('')}
</channel>
</rss>`;
return new Response(rss, {
headers: { 'Content-Type': 'application/xml' },
});
}3. Table of contents (TOC)
Pull the headings out of the markdown and build a TOC.
export function extractToc(content: string): TocItem[] {
const headingRegex = /^(#{2,4})\s+(.+)$/gm;
// extract h2, h3, h4 and map to slugs
}Made it collapsible, closed by default.
4. Draft support
Put draft: true in the frontmatter and it won't show in production.
---
title: "μμ± μ€μΈ κΈ"
draft: true
---In dev mode it gets a DRAFT badge so you can tell it apart.
When a task finishes
Every time one is done, roadmap.md updates itself.
## β
Done
### 2026-02-04
- [x] Search
- [x] RSS feed
- [x] TOC
- [x] Draft supportIt commits on its own too. I asked "did you commit?" and it said no, then did it right away.
Why this approach works
- I don't have to think β I don't need to spot every improvement myself
- It sets priority β no agonizing over what to do first
- Progress is tracked β just look at roadmap.md
- It just proceeds β "work through them one at a time" is the whole instruction
Part 4 summary
What I did this time:
- Had it analyze for improvements β got a prioritized list
- Created roadmap.md β kanban-style management
- Had it implement on its own β search, RSS, TOC, Draft done
581 lines added. None of the code was written by me.
If there's anything next, maybe OG images or comments. Though "just work through it" will probably cover that too.