Ship your product in every language.
Extract your strings, let an agent do the first pass, review what matters, and release — with a CLI + SDK for your codebase, or a single script tag for your website. Translators and reviewers are free on every plan.
See your own site translated — right now, no account:
How it works
Extract. Translate. Ship.
One pipeline whether your strings come from source code or a crawled website. The free tier needs no card.
Extract your strings
Run `locavello extract` to scan your code for t() calls and push every key — or paste your site URL and let the crawler pull the visible text from each page.
Agent first pass, human review
An agent translates everything, and a mechanical gate rejects any output that drops an ICU placeholder. Your reviewers approve, edit, or reject in the workbench — their seats are free.
Release it
Publish an immutable, content-hashed release per locale. `locavello pull` commits the catalogs into your repo, or the script tag serves the release on your site — failing open to your original language.
Features
Everything Locavello ships.
Everything below runs in production today.
Agent translation, gated
An agent produces the first pass for every locale. A mechanical placeholder-safety check runs on every single write — a translation that drops or renames an ICU placeholder never enters the database.
Review workbench
Three panes: your keys, the editor, and context — source text, placeholder chips, translation-memory suggestions, and glossary hits. A review queue surfaces everything the agent produced, oldest first.
Gated namespaces
Mark namespaces like legal or pricing as gated: machine output never auto-publishes from them. Only reviewer-approved translations ship — always.
Glossary + translation memory
Do-not-translate terms and forced translations, account-wide or per project. Every approval feeds a cross-project translation memory that suggests matches on the next string.
Releases you can diff
Publishing creates an immutable, content-hashed release per locale. Publishing the same content twice is a no-op, and any two releases diff key-by-key.
CI gate + pseudo-locale
`locavello check` fails your build on missing keys and placeholder mismatches, and warns on length overflows. The en-XA pseudo-locale catches hardcoded strings and tight layouts before you pay for a single translation.
Pricing
Translators and reviewers are free. On every tier.
Per-seat pricing is what makes the incumbents expensive. We never charge for the people who make quality — you pay for projects, keys, and agent words. Priced in IDR.
Early access — every paid feature is free while we launch; founding customers get 50% off for 12 months when billing starts.
Free
Try the whole pipeline on a real project.
- 1 project · 2 locales
- 200 keys per project
- 1,000 agent words (one-off trial)
- CLI + SDK + pseudo-locale + CI gate
Starter
For a product finding its second market.
- 3 projects · 5 locales
- 2,000 keys per project
- 50,000 agent words / month
- Unlimited free translator + reviewer seats
Pro
For teams shipping in many languages.
- 10 projects · unlimited locales
- 20,000 keys per project
- 250,000 agent words / month
- Unlimited free translator + reviewer seats
Scale
For platforms localizing everything.
- Unlimited projects, locales, and keys
- Negotiated agent words
- Unlimited free translator + reviewer seats
- Everything in Pro
Keys are counted once per project — never multiplied by locale. Every tier includes the CLI, the Next.js SDK, the en-XA pseudo-locale, and the CI check gate. Full comparison →
Compare
How Locavello stacks up.
Against the platforms teams actually evaluate. Where their models differ from ours, we describe the model rather than invent numbers.
| Capability | Locavello | Crowdin | Lokalise | Phrase | Weglot |
|---|---|---|---|---|---|
| Translator + reviewer seats | Free, every tier | Per-seat plans | Per-seat plans | Per-seat plans | Quota-based plans |
| Keys counted per project, not per locale | Plan-dependent | Plan-dependent | Plan-dependent | Word quotas | |
| Zero runtime dependency (committed catalogs) | Via file exports | Via file exports | Via file exports | Proxy / JS-served | |
| Agent first pass with a mechanical placeholder gate | MT add-ons | MT add-ons | MT add-ons | MT built-in | |
| Instant website preview without an account | Account required | Account required | Account required | Account required | |
| Pricing | From Rp 90k/mo · IDR | Per-seat, USD | Per-seat, USD | Per-seat, USD/EUR | Usage quotas, EUR |
Competitor descriptions reflect their publicly documented pricing models, not measured comparisons.
For developers
Catalogs in your repo. Typed keys. A CI gate.
Mode A is built the way you wish i18n worked: `extract` finds your t() calls, `pull` commits the released catalogs plus a generated `locavello.d.ts` — so keys autocomplete and typos fail type-check. At runtime your app never calls Locavello at all.
- ICU MessageFormat with per-locale fallback chains — t() never throws and never renders blank
- locavello check fails CI on missing keys and placeholder mismatches
- locavello pseudo generates en-XA offline to catch hardcoded strings early
- REST API with lv_live_ keys and a consistent response envelope
# Install once $ npm i -g @forjio/locavello-cli # Scan for t() calls and push the keys $ locavello extract --push Extracted 214 key(s) from 87 file(s) — 12 new, 0 warning(s). # Commit released catalogs + typed keys $ locavello pull id: 214 key(s) (release rel_01JXW…) Wrote locavello.d.ts
import { useT } from '@forjio/locavello-next'; function Cart({ count }: { count: number }) { const t = useT(); return <p>{t('cart.items', { count })}</p>; } // en: '{count, plural, one {# item} other {# items}}'
One login
Sign in once. Use every Forjio product.
Locavello shares its account system with the rest of the Forjio family through Huudis SSO. Add a teammate here and they're already part of your other Forjio workspaces.
FAQ
Common questions.
Is the free tier really free?
Yes — a tier, not a trial. One project, two locales, 200 keys, and a one-off 1,000-word agent translation trial. And during early access, every paid feature is free for everyone while we launch.Do I pay for translator or reviewer seats?
Never, on any tier. Per-seat pricing is what makes traditional localization platforms expensive — it punishes you for involving the people who make translations good. You pay for projects, keys, and agent words. People are free.Can the agent break my app with a bad translation?
Not through a dropped placeholder — the most common i18n crash. Every write, agent or human, passes a mechanical check that the translation uses exactly the source string’s ICU placeholders; mismatches are rejected before they reach the database. Namespaces you mark as gated (legal, pricing) additionally never publish machine output — only reviewer-approved text ships from them.What happens if Locavello goes down?
In SDK mode: nothing. Your catalogs are committed to your repo and your app never calls Locavello at runtime. In website mode, the script tag fails open — visitors see your original language, never a blank page.Can I localize my site without touching its code?
Yes. Paste your URL in the preview above, sign up, and Locavello crawls your site, agent-translates the strings, and lets you review them. Publishing puts a single script tag on your site that serves the released translations with a locale switcher.How does billing work?
Every paid feature is free while we launch, and founding customers get 50% off for 12 months when billing starts. Prices are in IDR, and keys are counted once per project — never per locale copy. One thing is metered from day one: agent-translation words follow the per-tier quotas even during early access, because each run spends real compute.
Your next market speaks another language.
Start free — no card, reviewers never cost a seat, and everything paid is free during early access.