Client · Investing media

Fifteen thousand pages, nine languages, one clean exit from WordPress.

Equedia Investment Research publishes The Equedia Letter, investment research read by hundreds of thousands of self-directed investors. I migrated the publication off WordPress: roughly 15,000 pages of archive moved onto a modern edge stack, then multiplied across nine languages, with the rankings of a legacy archive carried over intact.

MigrationInternationalizationPublication
Equedia cover
Overview

A national-scale archive, treated like an asset.

The Equedia Letter has been publishing for years, and its archive is the moat: thousands of long-form research letters that rank, get cited, and bring readers in. All of it sat on a WordPress install that was slow to load, risky to change, and impossible to internationalize properly.

The migration rebuilt the publication on a modern React stack with static, edge-served pages, then took it somewhere WordPress could never go: every page available in nine languages, each with correct alternate-language signals for search engines, from one content source.

At a glance
Client
Equedia Network Corporation
Sector
Investing media
Year
2026
Role
Migration & platform
The challenge

Move everything, break nothing, multiply by nine.

A financial publication's archive is years of accumulated search equity, and every one of its URLs is load-bearing. The job was to move roughly 15,000 pages without dropping a ranking, make the whole thing fast, and then serve every page in nine languages without turning the site into nine sites to maintain.

Where it hurt
Roughly 15,000 pages and their URLs to carry over safelyYears of search rankings that could not be interruptedNine languages without nine parallel codebasesA finance audience with zero patience for slow pages
The approach

What I built, and how it came together.

The build

A structured migration onto an edge-served, nine-language stack.

The WordPress archive was extracted into structured content, rebuilt on Next.js, and served statically from the edge, with the full URL map redirected and every page carrying its nine language alternates.

What it includes
Full archive extraction from WordPress into structured contentNext.js rebuild with static, edge-served pagesNine locales on every URL with correct hreflang alternatesComplete redirect map preserving the legacy URL spaceSitemaps that declare every language variant to search engines
How it was built
01

Extract the archive

Thousands of letters and pages pulled out of WordPress into a clean, typed content structure.

Content extractionStructureMedia
02

Rebuild the publication

A fast reader experience on Next.js: articles, categories, the letter, and capture, all statically served.

Next.js buildTemplatesPerformance
03

Multiply the languages

One content source rendered across nine locales, with alternate-language links on every page telling search engines exactly what maps to what.

9 localeshreflangLocalized sitemaps
04

Protect the equity

The full legacy URL map redirected, verified, and monitored, so years of rankings survived the move.

Redirect mapVerificationLaunch
Under the hood

How 15,000 pages become 100,000 without becoming unmanageable.

One source, nine renderings

The site does not maintain nine copies of anything. Each piece of content exists once, and the platform renders it per locale, so the English archive, the Chinese edition, and the Spanish edition are views of the same source. Fixing an article fixes it everywhere.

Search engines get a map

Every URL declares its alternates across all nine languages, and the sitemap carries the same declarations for the entire archive. Search engines see one coherent multilingual publication rather than duplicate content, which is the difference between nine editions ranking and nine editions competing with each other.

Static where it counts

The archive is served as static pages from the edge, so a decade-old letter loads as fast as this week's. WordPress's database round-trip per pageview, and the plugin surface that came with it, are simply gone.

The editorial layer

On top of the platform sits an AI-assisted editorial system tuned to the letter's own voice and its disclosure discipline: it drafts in the house style, translates technical mining and macro language for retail readers, and is hard-bounded to never invent a figure, a price, or a compensation fact.

The letter's voice, encoded

The editorial system was tuned on the letter's own archive: its cadence, its habit of translating drill results and monetary policy for retail readers, and its sign-off discipline. Drafts arrive sounding like the publication, not like a model.

Disclosure as a hard rule

A financial publication's disclosure block is a legal document. Compensation facts and ownership statements come only from the brief, are never invented, and are carried through every draft untouched.

The work

A closer look at what shipped.

The Equedia articles archive
The migrated archive, browsable and fast
Equedia homepage in Chinese
The same publication, served in Chinese
An Equedia letter in Spanish
One letter, nine languages: the Spanish edition
The Equedia investment thesis
The investment thesis, part of the migrated site
The result

The archive kept its rankings and gained eight more markets.

Equedia now runs on infrastructure that matches its ambitions: the entire archive fast and stable, every page in nine languages, and a publication that can grow without WordPress deciding what is possible. The readership figure below is Equedia's own.

15,000+

pages migrated off WordPress

9

languages on every page

800K+

readers (Equedia's figure)

The stack

Built with

Next.jsReactTypeScriptVercelhreflang i18nAI editorial tooling
Have something to build?

Start with a short call. Straight answer either way.

Tell me what you are trying to ship. We scope it, price it, and decide the right way in.

Newsletter

One letter, every Sunday. Working systems, not hot takes.

Build logs, working systems, and field notes from running a portfolio of AI ventures.

Weekly. No spam. Unsubscribe anytime.