TL;DR: This is the first edition of my raw architectural breakdown. No polish, no "thought leadership" theater. Just what we are actually building at Mercury: the systems, the stack, the things that broke, and the brutal realities of engineering in 2026. I spend my life at the intersection of product, AI, and infrastructure. This is where I think out loud. Today, we are looking at how we didn't just migrate 300,000 legacy articles—we built an autonomous system that rewrote and weaponized them for AI search engines while they moved.
The Night I Watched 300,000 Articles Migrate Themselves
It's 3:47 AM on a Tuesday in Hong Kong. I'm staring at a laptop screen showing a CLI tail dashboard that's updating itself in real time—entries appearing faster than I can read them—and I'm trying to remember the last time I felt this combination of terror and relief.
Three weeks ago, a Japan client came to us with what looked like a standard CMS migration (from wordpress to our customized headless) They run sixteen different industry verticals—healthcare, energy, aerospace, you name it—hosted on WordPress since 2017. 300,000 articles. Millions of words. A decade of institutional knowledge trapped in a platform that had become a prison.
The catch? They publish 20 new articles per day. Zero downtime tolerance. If we took the site dark for even an hour, we'd break their lead/ revenue stream. If we missed a single redirect, we'd torch a decade of SEO equity.
I told them we'd handle it. Then I sat in my apartment and stared at the ceiling for an hour, wondering if I'd just lied.
Why We Didn't Write a Script
Here's the thing about traditional migrations: you write a Python script, you run it, it breaks at article 7,432 because someone's 2019 blog post contains an emoji that destroys your UTF-8 parser, and then you're debugging at 4 AM while the client panics. It's mechanical, brittle, and deeply stupid.
I didn't want a script. I wanted a team that didn't sleep.
So we didn't build a migration tool. We built a workforce—eleven autonomous agents running on AI, each with a specific job description, each following the same rhythm: Orient → Report → Act → Log. They don't wait for me to tell them what to do. They wake up, read the current state of the database, and make decisions.
Let me introduce you to the people who actually did this work:
The Archaeologist (WP Migrator)
This agent is obsessed with continuity. Every morning at 6 AM Tokyo time, it reads the sync log from the previous run, then queries all sixteen Payload collections to find gaps. It doesn't just move content—it performs surgery. It strips the decade of WordPress shortcode cruft, fixes the internal links that pointed to dead subdomains, and generates new excerpts that actually make sense (because half the old ones were just the first 160 characters of the article, including "Click to read more...").
It works in parallel. While it's migrating the healthcare vertical, it's already auditing the energy vertical for broken internal links. When it hits an edge case—say, a post with seventeen embedded tweets from a deleted account—it doesn't crash. It flags it, routes it to a human review queue in Notion, and keeps moving.
The Ghostwriter (Content Optimizer)
This is where the project stopped being a migration and became an upgrade.
The client didn't just need their articles moved; they needed them ready for 2026. The B2B client who read their content don't start with Google anymore—they start with Perplexity, with Claude, with Gemini. They ask questions and expect single answers. If your content isn't structured to be cited by an AI, you don't exist.
So while the Archaeologist was moving the furniture, the Ghostwriter was remodeling the house. It rewrote headlines to be declarative rather than clever ("Three Ways Exchange Rate Saving" became "Exchange Rate Hedge Implementation Reduces Waste by 17%: Case Study"). It broke up dense paragraphs into scannable, data-dense units that RAG systems can easily ingest. It added structured FAQs to the end of long-form pieces specifically to target AI answer engines.
Every article that passed through this agent came out more valuable than it went in. We weren't just preserving history; we were weaponizing it for the GEO era.
The Perfectionist (SEO Agent)
You know who cares about JSON-LD structured data at 2 AM? This agent. It scans every collection for missing metadata, enforces ruthless character limits (60 for titles, 155 for descriptions), and generates sitemaps on the fly. When it detects a slug change in Payload, it immediately calculates the redirect matrix and updates the .htaccess rules before the change goes live.
It caught something human eyes would have missed: a category archive page from 2022 that had 4,000 backlinks pointing to it. If we'd missed that redirect, the client's organic traffic would have dropped 12% overnight. The Perfectionist flagged it, mapped it, and fixed it while I was eating dinner.
The Paranoid (Security & Compliance)
This one runs before every single deploy. It checks for CORS wildcards that would let anyone scrape the new API. It hunts for hardcoded secrets that might have slipped into a config file. It runs WCAG 2.1 AA accessibility audits on every article, checking alt text and color contrast ratios, because the client's legal team was terrified of an ADA lawsuit.
Three days before launch, it flagged five articles that contained unlicensed stock photos from 2017. It didn't just flag them—it generated replacement image queries, checked for duplicates, and prepared the swap scripts. It saved us from a $50,000 copyright infringement headache.
I stopped attending standup meetings. I just read the log.
The Hive Mind
Here's the detail that made this actually work: the Obsidian MD integration.
We used it as a shared cortex. Every agent writes to the same workspace. There's a Task Board and Knowledge Graph that updates itself as agents complete work. There's an Architecture page that evolves as the system changes. There's an Audit Trail that records every decision—why a particular article was flagged for manual review, why a redirect rule was created, why a security check failed.
When a new developer joined the project on day three, I didn't have to brief them. I just gave them the Obsidian access. They read the migration logs like a novel and knew exactly where we stood.
The system has memory. Human teams forget. The agents don't.
The Moment I Realized This Was Different (I am useless)
Around day four, something shifted. I was reviewing the daily summary—noticing that the Compliance Agent had flagged five specific items, that the Ghostwriter had optimized 400 articles that day, that the Redirect Manager had caught a URL pattern we'd missed—and I realized I wasn't managing a project anymore. I was monitoring an ecosystem.
The question stopped being "Are we on track for launch?" and became "What did the system learn today?"
This is the part that's hard to explain to people who haven't felt it. Yes, the agents saved us time. We migrated 300,000 articles in roughly 20 human hours spread across five days. A traditional agency would have thrown twenty people at this for six months.
But the real upgrade wasn't speed. It was decision quality. When every corner of your codebase has an autonomous intelligence checking it, logging its findings, and surfacing anomalies, you stop operating on gut feeling. You operate on ground truth. The agents don't get tired. They don't assume they fixed that bug yesterday. They check, every single time.
The Stack (For the Engineers Who Care)
- Claude Code / Kimi Code / Open Code API: Not for chat, but for structured cognition. We built pipelines, not conversations. Every agent outputs JSON that the next agent can parse.
- Payload CMS 3.x: Headless, TypeScript-native, and built for multi-tenant architectures. It handles the sixteen verticals like they're sixteen separate publications, which they essentially are.
- Vercel: Our backend host.
- Obsidian: Native MD Workspace The system writes its own documentation because humans shouldn't have to.
99.2% Success Rate
We didn't catch everything. 0.8% of articles required human intervention. Ancient Flash embeds that the agents couldn't reconcile. Custom JavaScript calculators from 2018 that needed manual reconstruction. A single post that was written entirely in Wingdings (I don't want to know why).
But the system flagged every single one. Nothing slipped through. Nothing went dark. The editorial teams kept publishing throughout the entire migration, unaware that their content was being ported to a new universe in the background.
What Comes Next
The client's new site is live. The agents are still running—now in maintenance mode, checking for 404s, optimizing new articles as they're published, keeping the system healthy.
But I'm already thinking about what we built next.
This is the new shape of work. Not humans managing tools, but humans directing autonomous teams that never sleep, never forget, and never stop optimizing. It's terrifying. It's exhausting. And I don't think I'd do it any other way now.
— James, Mercury Technology Solutions, March 2026


