Back
Building a Blog with 7 AI Agents Working in Parallel — Behind INK by DopeLab
AI WorkflowMarch 2, 20264 min read

Building a Blog with 7 AI Agents Working in Parallel — Behind INK by DopeLab

We used Claude Code Agent Teams to build INK by DopeLab from scratch — 7 AI agents working simultaneously to create an About page, CLI scripts, and a comments system in a single session.

Tor Supakit

Tor Supakit

AI × Digital Marketing Agency

This is a meta article — I'm writing about the tool I used to build the blog you're reading right now.

The Problem: Wanting a Blog but Having No Time

I run a small agency that uses AI for nearly everything. Five client brands, a restaurant with full operations to manage, stock systems, sales pipelines — my plate was already overflowing.

But I'd been wanting an agency blog for a while. Not generic AI articles written from theory, but real case studies from production work. Things we actually built, broke, and fixed.

The problem: building a blog from scratch means a lot of moving parts — scaffold, design, about page, scripts, comments, social sharing, i18n. Doing them one by one takes days.

The Solution: Claude Code Agent Teams

Agent Teams is a feature of Claude Code that lets multiple Claude instances work simultaneously. Each one runs in its own worktree (isolated code copy), communicating through a Shared Task List.

I used it to build this blog in a single session, broken into 5 phases:

Blog Build Pipeline — 5 phases from scaffold to production
Blog Build Pipeline — 5 phases from scaffold to production

Phase 0: Scaffold (single agent)
Phase 1: MVP Polish (single agent)
Phase 2: Features (single agent)
Phase 3: 3 agents in parallel ← Agent Teams starts here
Phase 4: 4 agents in parallel

Phases 0-2 were single-agent work because the tasks were sequential — scaffold first, then polish UI piece by piece. Once the base was solid, I unleashed Agent Teams.

Phase 3: Three Agents at Once

commit 6a03343 — 2026-03-02 14:18

I spawned 3 agents working on completely separate concerns:

AgentTaskOutput
about-pageBuild the About page (/about) — 6 sectionssrc/app/[locale]/about/page.tsx + i18n keys
content-cliBuild article scaffolding scriptscripts/new-article.sh (255 lines)
translate-cliBuild auto-translate script TH→ENscripts/translate.sh (285 lines)

All 3 finished around the same time. 881 new lines of code across 7 files.

File ownership is everything

The most important rule of Agent Teams: never let 2 agents edit the same file. I had to plan ahead which agent touches which files — about-page owns the entire src/app/[locale]/about/ folder, content-cli owns scripts/new-article.sh, translate-cli owns scripts/translate.sh. The tricky part was i18n keys in messages/*.json — I assigned those to a single agent (about-page) to avoid merge conflicts.

The About Page

The agent built a complete About page with 6 sections:

  • Hero section
  • Who we are (stat cards)
  • AI Team (6 agent cards)
  • What is INK (concept explanation)
  • Tech stack (pill badges)
  • CTA

All of it with dark/light mode and i18n (TH+EN) baked in from the start.

The Scripts

new-article.sh — scaffold a new article with one command. Picks from 5 categories, accepts tags, generates TH+EN templates. The article you're reading was scaffolded with this exact script:

./scripts/new-article.sh building-blog-with-agent-teams \
  --category "AI Workflow" \
  --tags "agent-teams,claude-code,next-js,automation,blog"

translate.sh — auto-translates TH→EN via the Claude API. Pure bash + curl + jq, no SDK dependency. Has --dry-run for previewing output.

Phase 4: Four Agents at Once

commits e85d7ae through 76a3b32 — 2026-03-02 14:39-14:42

This phase spawned 4 agents:

AgentTaskOutput
social-postBlotato auto-post scriptscripts/post-social.sh (483 lines)
social-visualCarousel/visual generatorscripts/create-social-visual.sh (482 lines)
vercel-deployVerify Vercel auto-deploy configConfig verification
giscus-commentsComments via GitHub Discussionssrc/components/blog/comments.tsx (40 lines)

The social scripts alone produced 987+ new lines of code.

The Comments Component

The Giscus agent built a React component that:

  • Uses @giscus/react backed by GitHub Discussions
  • Supports dark mode (reads from next-themes)
  • Switches language based on locale (TH/EN)
  • Lazy mounts (no server render, waits for client)
// src/components/blog/comments.tsx
"use client";
 
import GiscusComponent from "@giscus/react";
import { useTheme } from "next-themes";
import { useLocale } from "next-intl";
 
export function Comments() {
  const { resolvedTheme } = useTheme();
  const locale = useLocale();
 
  return (
    <GiscusComponent
      repo="tordash/ink-dopelab"
      repoId="R_kgDORb6CeA"
      mapping="pathname"
      theme={resolvedTheme === "dark" ? "dark_dimmed" : "light"}
      lang={locale === "th" ? "th" : "en"}
    />
  );
}

40 lines. Fully functional. Scroll down to the bottom of this article — the comment section you see was built by this agent.

Results

The Real Timeline (from git log)

01:09  — .env.example
10:32  — Typography fix
11:38  — Phase 1: OG images, brand fonts, share buttons
12:19  — Phase 2: Category/tag pages, RSS, search
14:18  — Phase 3: About page + 2 scripts (3 agents)
14:39  — Phase 4a: Social scripts (2 agents)
14:42  — Phase 4b: Giscus comments (1 agent)
14:42  — CHANGELOG update

Phase 3 (3 agents) completed in ~2 minutes after Phase 2 finished. Phase 4 (4 agents) completed in ~3 minutes after Phase 3.

What We Got

TypeCount
Bash scripts4 (1,505 lines)
Config file1 (22 lines)
React components1 (40 lines)
Pages2 (About TH+EN)
i18n keys28 keys (TH+EN)
Total new code~1,900 lines

All of this from 2 phases that took a combined ~5 minutes.

Limitations You Should Know

1. Token Cost Is Real

Agent Teams spawns multiple Claude instances simultaneously. Each one consumes its own tokens. Phase 3 (3 agents) + Phase 4 (4 agents) = 7 instances total. The cost isn't 7x a single agent (because each has shorter context), but it's definitely more than doing things sequentially.

2. File Conflicts Are a Real Problem

If you plan poorly, 2 agents will edit the same file and create merge conflicts. I hit this with i18n keys — multiple agents wanted to add entries to messages/th.json. The fix was to centralize: one agent owns the shared files.

3. Not for Sequential Work

If task B needs the output of task A, Agent Teams won't help. You need tasks that genuinely parallelize — independent work with separate file ownership.

When to Use (and When Not To)

Use it: Tasks that split cleanly into independent units with no file overlap. Building 3 scripts simultaneously. Creating a page + component + config at the same time.

Skip it: Tasks that need back-and-forth iteration, depend on previous output, or are small enough for a single agent to handle in 30 seconds.

The Final Tech Stack

The complete INK by DopeLab blog:

  • Framework: Next.js 16 + Velite (MDX content layer)
  • i18n: next-intl (TH default + EN)
  • Styling: Tailwind v4 + custom CSS variables (dark/light)
  • Fonts: Inter + Sarabun (body), Special Elite + Charmonman (display)
  • Comments: Giscus (GitHub Discussions)
  • Analytics: Vercel Analytics
  • Deploy: Vercel (auto-deploy from GitHub push)
  • Content: 8 articles (TH+EN = 16 MDX files)

Built in 1 day from git init to production at ink.dopelab.studio.

The Takeaway

Agent Teams isn't magic — it's a tool that requires upfront planning. You have to define clear file ownership, pick tasks that parallelize well, and accept the higher token cost. But when the conditions are right, it turns 2-3 hours of work into 5 minutes. The blog you're reading is the proof.

agent-teamsclaude-codenext-jsautomationblog
Share this article

Related Articles

Client Dashboard in One Hour — Built with AI, Zero Login RequiredAgency Tools
March 3, 2026

Client Dashboard in One Hour — Built with AI, Zero Login Required

How we built Client Summary Pages that clients can view on their phones to check project status, reducing 'how's it going?' messages. Now live for 4 clients.

2 min
Building a Chat Bot for Staff Inventory Reports — Just Type to LogAI for Restaurant
March 3, 2026

Building a Chat Bot for Staff Inventory Reports — Just Type to Log

A chat bot where staff just type 'received 5 bags sirloin 12.5 kg' and the system handles the rest — Bag IDs, database entry, and real-time stock updates, all automatically.

2 min
AI-Powered Inventory for Restaurants — From Excel Chaos to Full TraceabilityAI for Restaurant
March 2, 2026

AI-Powered Inventory for Restaurants — From Excel Chaos to Full Traceability

How we went from an Excel spreadsheet that nobody updated to a system tracking 757 bags/month with unique Bag IDs and full audit trail using Airtable + SQLite + AI.

2 min