Start
What is Verbaly?
Verbaly is an open-source i18n toolkit that inverts the usual flow: you write natural text in your code and the compiler extracts the messages, generates stable keys, TypeScript types and per-locale bundles. It ships the core verbaly runtime (~3 KB, zero dependencies) plus framework packages for @verbaly/react, @verbaly/vue, @verbaly/svelte and build plugins for Vite and every major bundler.
The whole write→ship cycle lives in one tool: init, live extraction, machine and human translation, a CI gate that fails on missing or broken translations while every build lists them, and a static renderer that ships pages already translated. Catalogs are plain JSON: no proprietary format, portable to any TMS.
What it looks like
You write the sentence, in the language you think in. No key, no catalog, no init() call.
import { t } from 'virtual:verbaly';
t`Hello ${name}, you have ${count} messages`;The compiler reads that and writes the rest: a key derived from the text itself, and your source catalog filled in. Every other language waits with an empty string that verbaly check will not let you ship.
// en.json, generated from your source
{ "usNGUet6": "Hello {name}, you have {count} messages" }
// es.json, waiting: an empty string is a missing translation
{ "usNGUet6": "" }Why Verbaly?
Every i18n library translates text. The difference is how much work it leaves on your desk. Verbaly's answer: as little as possible.
data-verbaly and the DOM interpreter fills them, re-renders on a language switch and picks up nodes added later.Verbaly is pre-1.0, so the API can still change between minor versions (every change is called out in the changelog). And if what you need is a huge plugin ecosystem, i18next has years of it. What Verbaly offers is the same job with far less machinery, and an honest comparison to check it.