Use Case

Scale Multi‑Site Localization with SiteLocaleAI Volume Licensing

Published May 16, 2026

Scale Multi‑Site Localization with SiteLocaleAI Volume Licensing

Scaling Multi‑Site Localization with SiteLocaleAI Volume Licensing

Audience: Digital agencies managing 20+ client websites across varied tech stacks (React, Vue, WordPress, Shopify, etc.).


1. Why Volume Licensing?

A single agency often needs to:
- Translate UI strings, blog posts, and product descriptions for each client.
- Localize prices with psychological rounding per currency.
- Keep the SEO signal intact for every language.

SiteLocaleAI’s volume‑license model lets you purchase a single key that can be reused across all client projects, simplifying billing and API‑key management while still letting each site use its own LLM provider (Claude, GPT‑4o‑mini, etc.).


2. Preparing the Agency Workspace

2.1 Central Repository

Create a monorepo (or a set of sibling repos) that contains a shared site-locale folder with the library wrapper and CI scripts.

# Example monorepo structure
my-agency/
├─ common/
│  └─ site-locale/
│     ├─ src/
│     ├─ package.json
│     └─ locale.config.js
├─ client-a/
├─ client-b/
└─ client-z/

2.2 Store the Volume License Key Securely

Add the license key to your CI secret store (GitHub Actions, GitLab CI, etc.) and reference it as an environment variable.

# .github/workflows/deploy.yml
env:
  SITELOCALE_VOLUME_KEY: ${{ secrets.SITELOCALE_VOLUME_KEY }}

3. Installing the Drop‑In Library

Because the library is framework‑agnostic, you can add it with a single npm command in any project.

# From each client project root
npm i @sitelocaleai/core

3.1 Initializing with the Volume Key

Create a tiny bootstrap script that reads the shared config and injects the license key.

// common/site-locale/src/init.js
import { SiteLocale } from '@sitelocaleai/core';

// The license key is injected at build time via env var
const licenseKey = process.env.SITELOCALE_VOLUME_KEY;

export const locale = new SiteLocale({
  licenseKey,
  // Each client can override the LLM endpoint if needed
  llmEndpoint: process.env.LLM_ENDPOINT || 'https://api.openai.com/v1/chat/completions',
  // Enable price rounding
  priceRounding: true,
});

Now import locale wherever you render text.

// client-a/src/App.jsx (React example)
import { locale } from '../../common/site-locale/src/init';

function App() {
  const greeting = locale.t('welcome_message'); // auto‑translated string
  return <h1>{greeting}</h1>;
}

4. Automating Deployment Across Frameworks

4.1 CI/CD Pipeline

Add a step that runs the CLI to pre‑render translated pages for SEO before deployment.

# In your CI script (example for a Next.js site)
# Build the original site
npm run build

# Generate multilingual static files
nlocaleai seo --output ./out --languages en,es,fr,de,ja

# Deploy the generated folder to your host
npm run deploy

The CLI reads the same licenseKey from the environment, so you only need one key for all sites.

4.2 WordPress Integration (No Node Required)

For WordPress clients, install the SiteLocaleAI WordPress plugin and add the license key in the admin settings. The plugin automatically injects the JS bundle and runs the SEO pre‑renderer on a cron schedule.


5. Managing Client‑Specific LLM Keys (Optional)

If a client prefers a dedicated LLM API key, you can override it per site without breaking the volume‑license model.

// client-b/src/locale.config.js
export default {
  licenseKey: process.env.SITELOCALE_VOLUME_KEY,
  llmEndpoint: 'https://api.anthropic.com/v1/messages', // Claude endpoint
  llmApiKey: process.env.CLAUDE_API_KEY,
};

The core library merges this config with the shared defaults, keeping the workflow consistent.


6. Monitoring Usage & Costs

SiteLocaleAI provides a lightweight dashboard (self‑hosted) that aggregates token usage per site. Hook it into your analytics stack:

# Example: push usage stats to a central endpoint
curl -X POST https://metrics.myagency.com/locale-usage \
  -H "Content-Type: application/json" \
  -d "{\"site\":\"client-a\",\"tokens\":${locale.stats.tokens}\"}"

This visibility helps you stay within the volume‑license quota and plan for upgrades.


7. Best Practices Checklist

  • Single source of truth: Keep site-locale in a shared folder.
  • Environment variables: Store SITELOCALE_VOLUME_KEY and any client‑specific LLM keys securely.
  • SEO CLI: Run sitelocaleai seo on every build to guarantee indexed translations.
  • Price rounding: Enable priceRounding to apply psychological pricing per currency.
  • Monitoring: Log token usage to avoid surprise overages.

8. Quick Start Script for a New Client

#!/usr/bin/env bash
# create-client.sh <client-name> <framework>
CLIENT=$1
FRAMEWORK=$2

mkdir -p $CLIENT
cd $CLIENT

# Init npm project
npm init -y

# Install core library
npm i @sitelocaleai/core

# Copy shared init script
cp ../../common/site-locale/src/init.js ./

# Scaffold a minimal page (React example)
cat > src/App.jsx <<'EOF'
import { locale } from '../init';
export default function App() {
  return <h1>{locale.t('welcome_message')}</h1>;
}
EOF

# Add SEO CLI step to package.json
npm pkg set scripts.seo="sitelocaleai seo --output ./out --languages en,es,fr" 

 echo "Client $CLIENT set up with $FRAMEWORK framework."

Run the script for each new site and you’re ready to go.


9. Ready to Scale?

With a single volume‑license key, you can spin up unlimited client sites, keep translations consistent, and boost international SEO without juggling multiple subscriptions. The framework‑agnostic design means you’re future‑proof for any tech stack your agency adopts.

Try SiteLocaleAI today – sign up for the Indie plan at $5/month and unlock the volume‑license feature for your agency. Visit https://sitelocaleai.com/docs for detailed API reference and deployment guides.