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
- Installation Guide – Step‑by‑step setup for any framework.
- CLI Reference – All flags and options for SEO pre‑rendering.
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 →