Skip to content
For Enterprises

better-i18n for Enterprise: Scale Your Localization Infrastructure

API-first translation management with role-based access, audit logging, CDN delivery, and GitHub integration. Built for engineering teams that need programmatic control over their i18n workflow.

better-i18n for Enterprise: Scale Your Localization Infrastructure

When your product ships in multiple languages, localization becomes infrastructure — not a one-time project. You need programmatic access, CI/CD integration, consistent terminology enforcement, and visibility into what's translated, what's pending, and what's missing.

better-i18n is an API-first translation management platform designed for engineering teams. It provides the building blocks — REST API, Content SDK, CLI tools, MCP server, CDN delivery, and GitHub integration — to make localization a seamless part of your development workflow.


What Enterprise Teams Actually Get

API-First Architecture

Every function in better-i18n is available via REST API. Your internal tools, CI pipelines, and custom workflows can interact with the platform programmatically:

Translation Management API (dash.better-i18n.com/api):

OperationWhat It Does
listKeysQuery translation keys with search, namespace, and status filters
createKeysCreate keys with source text and initial translations
updateKeysUpdate translations for existing keys across languages
deleteKeysSoft-delete keys that are no longer in use
listProjectsList all projects in your organization
getProjectGet project details including languages and namespaces

Content SDK (@better-i18n/sdk):

A Supabase-style query builder for fetching localized content entries:

import { createClient } from "@better-i18n/sdk";

const client = createClient({
  project: "your-org/your-project",
  apiKey: process.env.BETTER_I18N_CONTENT_API_KEY,
});

// Fetch published blog posts in French
const { data, total, hasMore } = await client
  .from("blog-posts")
  .eq("status", "published")
  .language("fr")
  .order("publishedAt", { ascending: false })
  .limit(20);

The SDK is zero-dependency, fully typed in TypeScript, and works in any JavaScript runtime.

CDN Delivery

Translations are served from Cloudflare's edge network at:

https://cdn.better-i18n.com/{org}/{project}/{locale}/{namespace}.json

Sub-100ms delivery worldwide. Update translations in the dashboard or via API, and they're live at the CDN without redeploying your application.

GitHub Integration

better-i18n syncs with your repositories:

  • Webhook-triggered sync — Push events trigger translation file updates
  • Pull request workflow — Translation updates are pushed as PRs you control
  • Minimal permissions — Read/write only to configured translation file patterns (e.g., locales/**/*.json)
  • Full merge control — You decide when translations land in your codebase

CLI for Developer Workflow

The @better-i18n/cli integrates into your development process:

# Detect hardcoded strings in your React/Next.js code
npx @better-i18n/cli scan --ci

# Compare local translation keys with your cloud project
npx @better-i18n/cli sync --format json

Add scan to your pre-commit hooks or CI pipeline. Use sync to audit translation coverage before releases.

MCP Server for AI-Assisted Translation

Two MCP servers connect your AI tools directly to your translation workspace:

PackageToolsPurpose
@better-i18n/mcp11 toolsTranslation management (keys, translations, publishing)
@better-i18n/mcp-content17 toolsContent management (models, entries, localized content)

Works with Claude, Cursor, Windsurf, and any MCP-compatible AI tool. Your AI assistant can create keys, update translations, and manage content without leaving the IDE.


Security and Access Control

Infrastructure

  • Cloudflare Workers — Edge computing with built-in DDoS protection
  • PlanetScale MySQL — Serverless database with automatic backups
  • Cloudflare R2 — Object storage for translation files

Encryption

  • At rest: AES-256 encryption
  • In transit: TLS 1.3 for all connections

Authentication

  • Dashboard: GitHub OAuth (no passwords stored)
  • API: Bearer token authentication with keys hashed using bcrypt
  • Key scoping: API keys can be scoped to specific projects
  • Key management: Instant revocation from the dashboard

Access Control

  • Role-based access control (RBAC) at organization and project level
  • Audit logs for all sensitive operations
  • Principle of least privilege for all internal access

Compliance

StandardStatus
GDPRCompliant — Data processing agreements available, right to erasure supported, data export on request
SOC 2 Type IIIn progress — we are working toward certification

Transparency note: We are not yet SOC 2 Type II certified. Our infrastructure providers (Cloudflare, PlanetScale) hold SOC 2 Type II and ISO 27001 certifications. We maintain security practices aligned with these standards and are pursuing our own certification. For detailed information, see our security documentation.


Framework Support

FrameworkPackageHighlights
Next.js (App Router & Pages)@better-i18n/nextServer components, middleware routing
TanStack Start@better-i18n/use-intlSSR, file-based routing with $locale param
Vite + React@better-i18n/use-intlSPA with client-side locale switching
Expo (React Native)@better-i18n/expoOffline caching, dynamic localizations, OTA updates

All framework integrations use the same translation keys and namespaces, so your web and mobile apps share a single source of truth.


Multi-Team Translation Management

Namespace Organization

Organize translations by team, feature, or content type:

your-org/your-project
├── auth/          → Authentication team
├── dashboard/     → Product team
├── marketing/     → Marketing team
├── help/          → Support team
└── onboarding/    → Growth team

Each namespace can have independent translation progress and review workflows.

Glossary Management

Define brand terms, product names, and technical vocabulary once. The glossary enforces consistency across all translations:

  • Approved terms — Set the correct translation for your product terminology in each language
  • Never-translate rules — Mark brand names, technical terms, and abbreviations that should remain in the source language
  • Consistency warnings — Translators see notifications when they use non-approved alternatives

AI Translation with Context

AI translation respects your glossary and namespace context. Use it for:

  • First-draft generation — AI produces translations that follow your terminology, then human reviewers refine
  • Bulk translation — Translate an entire namespace to a new language in minutes
  • Model selection — Choose between GPT-4o, Claude, Gemini, or DeepL based on your quality preferences

Scaling Patterns for Large Organizations

Multi-Project Structure

Enterprise organizations often have multiple products. Each gets its own better-i18n project with independent namespaces, glossaries, and team access:

your-org/web-app
your-org/mobile-app
your-org/marketing-site
your-org/help-center

The Content SDK and REST API work across all projects using the same authentication.

CI/CD Integration

# .github/workflows/i18n-check.yml
name: Translation Coverage Check
on: [push, pull_request]

jobs:
  i18n:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
      - run: npx @better-i18n/cli scan --ci
      - run: npx @better-i18n/cli sync --format json

Block PRs that introduce untranslated strings. Audit translation coverage on every push.

Content Management at Scale

The Content SDK supports headless CMS patterns for localized content:

// Fetch all published help articles in German
const { data: articles, total } = await client
  .from("help-articles")
  .eq("status", "published")
  .language("de")
  .order("updatedAt", { ascending: false })
  .limit(50);

// Fetch a single article with author relation expanded
const { data: article } = await client
  .from("help-articles")
  .language("de")
  .expand("author", "category")
  .single("getting-started");

The query builder is immutable, fully typed, and returns paginated results with total and hasMore metadata.


What We Don't Offer (Yet)

We believe in being upfront about our current capabilities:

  • SSO/SAML — Not yet available. Authentication is currently via GitHub OAuth. SSO is on our roadmap.
  • On-premises deployment — We are a cloud-hosted SaaS platform. Self-hosted options are not currently available.
  • Custom data residency — Data is processed through Cloudflare's global network and stored in PlanetScale. Region-specific hosting is not yet available.
  • Dedicated SLA — We don't currently offer contractual uptime SLAs with financial penalties.

If any of these are blockers for your organization, contact us to discuss your requirements and our roadmap timeline.


Getting Started

  1. Create your organization at dash.better-i18n.com
  2. Set up your first project and configure languages
  3. Install the CLInpm install -D @better-i18n/cli
  4. Connect GitHub — Enable sync for your translation files
  5. Add the MCP server — Give your AI tools access to your translations
  6. Integrate the SDK — Use @better-i18n/next, @better-i18n/use-intl, or @better-i18n/expo in your application

Get started free — no credit card required. The API, CLI, MCP server, and all framework integrations are available on every plan. View our documentation for detailed setup guides.

Ready to ship globally?

Join hundreds of teams using Better i18n to deliver faster, context-aware translations.