i18n Next.js AI Translation: How I Ship a 23-Language Blog as a Solo Founder

How I ship a 23-language blog as a solo founder using Next.js, next-intl, and an AI translation pipeline — with 90% less manual work.

Feng Liu
Feng Liu
22 de abr. de 2026·7 min de leitura
i18n Next.js AI Translation: How I Ship a 23-Language Blog as a Solo Founder

TL;DR / Key Takeaways

  • Traditional Translation Management Systems (TMS) are dead for lean startups — AI-connected pipelines replaced them
  • A modern i18n Next.js AI translation setup cuts manual work by ~90% and ships multilingual content on every deploy
  • The real SEO opportunity: ranking for technical keywords in Japanese, Spanish, German, and other high-value markets where English-only competitors don't exist
  • This post walks through the exact architecture I use at mynameisfeng.com to serve 23+ languages without a translation team

Most developers treat localization as a finish-line problem — something you bolt on after the product is "done." That's a mistake that costs months of SEO compounding.

I built mynameisfeng.com to publish in 23+ languages from day one. Not because I have a translation team. Because I don't — and that's the point.

Here's the full architecture.

Why i18n Next.js AI Translation Is the Highest-Leverage SEO Play in 2026

English-language technical content is brutally competitive. "How to build an AI agent" has dozens of well-funded competitors. But "how to build an AI agent" in Japanese? In German? In Brazilian Portuguese?

The same search intent, a fraction of the competition.

In 2026, AI-powered localization has made it possible for a solo founder to capture these markets without a translation budget. The 2026 State of SaaS Localization report from Crowdin found that lean startups using AI-connected pipelines reduced manual translation work by 90% and achieved zero-delay multilingual code pushes.

For a technical blog, this is compounding SEO across 23 markets simultaneously — with one content creation effort.

The Stack: What I Actually Use

Before getting into the workflow, here's the stack:

  • Framework: Next.js 15 (App Router)
  • i18n routing: next-intl with locale-prefixed routes (/ja/blog/..., /es/blog/...)
  • Translation pipeline: Custom Node.js script → OpenAI GPT-4o API → locale JSON files
  • Source of truth: English markdown files in /content/en/
  • CI/CD: GitHub Actions triggers translation on merge to main

This isn't a polished product — it's a working system I iterate on. The architecture decisions below are the ones that actually matter.

The Architecture: From English Draft to 23 Languages in One Deploy

Step 1: Write Once in English

Every post starts as an English markdown file. I write it, review it, commit it. That's the only manual step.

/content
  /en
    /blog
      ai-agent-nextjs.md
      i18n-ai-translation.md

Step 2: GitHub Actions Detects New/Changed Files

A GitHub Actions workflow runs on every push to main. It diffs the commit to find new or modified files in /content/en/.

- name: Detect changed content
  id: changed
  uses: tj-actions/changed-files@v44
  with:
    files: content/en/**/*.md

Step 3: AI Translation Pipeline

For each changed file, a Node.js script calls the OpenAI API with a structured prompt. The key design decisions here:

Use a system prompt that preserves technical terms. Generic translation destroys code snippets, variable names, and markdown structure. My prompt explicitly instructs the model to:

  • Keep all code blocks verbatim
  • Preserve markdown formatting
  • Not translate proper nouns (Next.js, TypeScript, GitHub)
  • Match the technical register of the source
const systemPrompt = `You are a technical translator specializing in software development content.
Translate the following markdown from English to ${targetLanguage}.
Rules:
- Preserve all code blocks exactly as written
- Keep markdown formatting intact
- Do not translate: Next.js, TypeScript, React, GitHub, or other proper nouns
- Match the technical precision of the original`;

Batch by token budget, not by file. Long posts need chunking. I split at heading boundaries to keep semantic context intact.

Write to locale files atomically. Each translation writes to /content/{locale}/blog/{slug}.md only after the full translation succeeds. No partial files.

Step 4: next-intl Routing Handles the Rest

With next-intl configured, Next.js automatically serves /ja/blog/i18n-ai-translation from the Japanese locale file. No additional routing logic needed.

The next.config.js setup:

const withNextIntl = createNextIntlPlugin('./i18n.ts');

export default withNextIntl({ // your existing config });

And the middleware handles locale detection and redirects:

export default createMiddleware({
  locales: ['en', 'zh-CN', 'zh-TW', 'ja', 'ko', 'es', 'pt-BR', 'de', 'fr', 'ar', /* ... */],
  defaultLocale: 'en'
});

The SEO Architecture: How 23 Languages Compounds

Each locale gets its own URL path. Google indexes them as separate pages. One English post becomes 23 indexed pages — each competing in its own language market.

The critical SEO rules I follow:

  1. hreflang tags on every page — tells Google which language/region each URL serves, prevents duplicate content penalties
  2. Locale-specific sitemaps/sitemap-ja.xml, /sitemap-es.xml, etc., submitted to Google Search Console per country
  3. Translated meta titles and descriptions — not just body content. The <title> and <meta description> tags must be translated too
  4. No machine-translation signals — Google has gotten better at detecting low-quality AI translation. The structured prompt approach above produces output that reads like a technical writer, not a translation API

What This Looks Like in Practice

I publish a post about building AI agents in Next.js. Within the same deploy:

  • /en/blog/ai-agent-nextjs — English, targeting US/UK developers
  • /ja/blog/ai-agent-nextjs — Japanese, targeting a market where this exact topic has almost no native-language competition
  • /de/blog/ai-agent-nextjs — German, same story
  • /zh-CN/blog/ai-agent-nextjs — Simplified Chinese, for developers in Singapore, Malaysia, Taiwan who prefer Mandarin

Four competitive positions from one writing effort. The compounding effect over 50 posts is significant.

The Tradeoffs: What This Doesn't Solve

I want to be honest about the limitations:

Translation quality varies by language. GPT-4o is excellent at Spanish, Japanese, and German. It's weaker for languages with less training data. I manually review Japanese posts because I speak Mandarin and can catch structural errors that carry over.

Cultural adaptation is not included. AI translation translates words, not context. A joke or idiom that lands in English will often fall flat in Japanese. For now, I write in a neutral, technical register that travels well.

Cost scales with content volume. At current GPT-4o pricing, translating a 2,000-word post across 23 languages costs roughly $0.50–$1.00. Cheap at low volume; worth optimizing with caching at scale.

The Real Unlock: International SEO Without an International Team

The traditional path to multilingual content required hiring translators, managing a TMS, and building review workflows. That's a $50K+/year operation.

The 2026 path: one developer, one AI pipeline, one deploy. The same post that serves English-speaking developers in San Francisco is simultaneously capturing search traffic from developers in Tokyo, Berlin, and São Paulo.

For a solo founder trying to reach $1M ARR without VC funding, this is the highest-leverage SEO move available.

FAQ

Does Google penalize AI-translated content? Google's guidance is that AI-generated content is acceptable if it's helpful and high-quality. The issue is low-effort, unreviewed machine translation that reads poorly. A structured prompt approach that preserves technical precision generally passes quality signals.

What's the minimum viable i18n setup for a Next.js blog? Start with next-intl, English-only, with locale routing configured from day one. Add languages one at a time. The routing architecture is the hard part to retrofit — get it right early.

How many languages is too many? For SEO, prioritize markets where your topic has low native-language competition and high developer density: Japan, Germany, Brazil, South Korea. Don't add a language you can't at least spot-check.

Can I use this approach for a SaaS product (not just a blog)? Yes — the same pipeline applies to UI strings, help docs, and marketing pages. The main difference is that UI strings need a structured JSON format rather than markdown.

If you're building a technical blog or SaaS and want to discuss the i18n architecture, I'm at mynameisfeng.com. The full pipeline code is something I'm considering open-sourcing — drop a comment if that's useful.

i18nNext.jsAI translationSEOsolo founderlocalization

Compartilhar

Feng Liu

Escrito por Feng Liu

shenjian8628@gmail.com

i18n Next.js AI Translation: How I Ship a 23-Language Blog as a Solo Founder | Feng Liu