Tutorial

Managing 20+ Sites with SiteLocaleAI: An Agency Guide

Published October 9, 2026

Managing 20+ Sites with SiteLocaleAI: An Agency Guide

Managing 20+ Client Sites with SiteLocaleAI: An Agency Guide

“Scale your multilingual portfolio without the overhead of separate translation services.” — Agency Lead


Why SiteLocaleAI for Agencies?

  • Framework‑agnostic – Works with React, Vue, WordPress, Shopify, or any static site.
  • Self‑hosted – You keep control of the LLM keys (Claude, GPT‑4o‑mini, etc.) and data privacy.
  • Psychological price rounding – Prices are automatically rounded to the most persuasive values per currency.
  • SEO‑ready CLI – Pre‑render translated pages so Google indexes the full content.
  • Volume licensing – One plan covers all client domains, simplifying billing.

With these features, an agency can spin up a multilingual version of a client site in minutes, run a single CI pipeline, and keep the entire stack under one roof.


1. Set Up a Central Repository

Create a monorepo that contains a shared site-locale folder and a per‑client configuration file. Using pnpm workspaces (or Yarn) keeps dependencies flat.

# Initialize monorepo
mkdir agency-sites && cd agency-sites
pnpm init -y
pnpm add -D typescript

# Create shared library folder
mkdir site-locale && cd site-locale
pnpm add @sitelocaleai/core

site-locale/config.js

// Shared defaults – can be overridden per client
module.exports = {
  // The LLM endpoint you provide (environment variable for security)
  llmEndpoint: process.env.LLM_ENDPOINT,
  // Default rounding rules – can be extended per currency
  priceRounding: {
    USD: { step: 0.99, prefix: '$' },
    EUR: { step: 0.95, prefix: '€' },
    GBP: { step: 0.97, prefix: '£' },
  },
};

2. Add the Drop‑in JS Library to Each Client Site

For each client, add the library as a dependency and import the shared config.

# Inside client‑A folder
pnpm add @sitelocaleai/core
// client-A/src/i18n.js
import SiteLocale from '@sitelocaleai/core';
import sharedConfig from '../../site-locale/config';

const locale = new SiteLocale({
  ...sharedConfig,
  // Client‑specific overrides
  targetLanguage: 'fr',
  currency: 'EUR',
});

export default locale;

Add the script tag to the HTML template (or a root Vue/React component) so the library loads on every page.

<script type="module" src="/src/i18n.js"></script>

That’s all—no build step is required, and the same library works across WordPress, Shopify, or a static site generator.


3. Automate Price Localization

SiteLocaleAI automatically detects price patterns (e.g., $12.99) and applies the rounding rules defined in priceRounding. If you need custom rules per client, extend the config:

// client‑B/config.js
module.exports = {
  ...sharedConfig,
  priceRounding: {
    ...sharedConfig.priceRounding,
    JPY: { step: 100, prefix: '¥' }, // round to nearest 100 yen
  },
};

The library will replace every price on the page before it’s rendered, giving you the “psychological” effect of $9.99 instead of $10.00, etc.


4. SEO Pre‑Rendering with the CLI

Search engines can’t execute JavaScript the same way a browser does. SiteLocaleAI’s CLI crawls your site, renders each language version, and writes static HTML files that you can serve directly.

# Install the CLI globally (once per CI runner)
pnpm install -g @sitelocaleai/cli

Create a site‑map file that lists all client domains and target languages.

// seo‑map.json
{
  "clients": [
    { "url": "https://client-a.com", "langs": ["en", "fr", "de"] },
    { "url": "https://client-b.com", "langs": ["en", "es", "ja"] }
  ]
}

Run the CLI:

sitelocale-cli pre-render --map seo-map.json --output ./static‑pre‑rendered

The command does the following:
1. Fetches each page.
2. Sends the HTML to your LLM API for translation.
3. Applies price rounding.
4. Writes a language‑specific HTML file (/fr/index.html, /es/about.html, …).

You can now point your CDN or static host to the static-pre-rendered folder. Google will index the fully translated pages, boosting international SEO.


5. Integrate with CI/CD

Add a step to your pipeline (GitHub Actions, GitLab CI, etc.) that runs the pre‑render script after each merge.

# .github/workflows/locale.yml
name: Localize & Deploy
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install dependencies
        run: pnpm install
      - name: Pre‑render SEO pages
        env:
          LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }}
        run: |
          npm install -g @sitelocaleai/cli
          sitelocale-cli pre-render --map seo-map.json --output ./dist
      - name: Deploy to CDN
        uses: some/cdn-action@v2
        with:
          folder: ./dist

All client sites are now automatically localized and SEO‑ready on every release.


6. Volume Licensing for Agencies

SiteLocaleAI offers a Growth plan at $99 per month that includes up to 30 active domains. For agencies managing 20+ sites, this plan provides:
- Unlimited translations (pay‑as‑you‑go LLM usage).
- Central dashboard to view API usage per client.
- Bulk API key management.
- Priority support.

If you exceed 30 domains, the Enterprise tier at $249 adds custom domain caps and SLA guarantees.


7. Quick Checklist for Your Agency

✅ Item
1 Create a monorepo with a shared site-locale config.
2 Add the drop‑in JS library to each client site.
3 Define price‑rounding rules per currency.
4 Generate a seo‑map.json with all client URLs and languages.
5 Run sitelocale-cli pre-render in your CI pipeline.
6 Deploy the static pre‑rendered folder to your CDN.
7 Choose the Growth or Enterprise license based on domain count.

8. Resources & Further Reading


Ready to Scale Your Multilingual Portfolio?

Start a free trial of SiteLocaleAI today, plug in your LLM keys, and watch your agency’s international SEO soar. Try SiteLocaleAI now →