05 — Side by side
The comparison, without the adjectives.
Where a row cites a measurement, it comes from the checked benchmark report in the repository. Where nothing was measured, the row says so.
| Criteria | i18next | Palamedes |
|---|
| Message identity | Keys you invent and maintain | The source string plus optional context |
|---|
| Missing translation shows | The raw key, in production | The source text |
|---|
| Catalog format | JSON namespaces | .po (gettext), FCL opt-in |
|---|
| ICU MessageFormat | Opt-in plugin, replaces the native format | Native, end to end, with a checked proof |
|---|
| Extract + update, realistic corpus | 5818 ms vs 73 ms | 80.19× faster on realistic extract + catalog update¹ |
|---|
| Framework reach | React, Vue, Angular, Node, Deno, and more | React and Solid, plus request-local i18n on Node servers |
|---|
| Ecosystem | Very large plugin and integration surface | Small and new — first-party adapters only |
|---|
¹ Median of 7 runs on the realistic corpus (1,500 files, ~400k lines, 6,000 messages — half the files carry no i18n marker), one machine-local run, same semantic validation for every tool. The full report and the harness are in the repository, and the site build fails if these numbers drift from it.