# Fluenti > Compile-time i18n for modern frameworks. Fluenti is the only i18n library with first-class support for Vue, React, SolidJS, Next.js, Nuxt, React Router, TanStack Start, and SolidStart from a single codebase. It compiles ICU MessageFormat messages at build time into optimized JavaScript functions — no runtime parser is shipped to the browser. ~3 KB gzipped runtime (vs 13-14 KB for vue-i18n and react-i18next). 5-10x faster than runtime-interpreted alternatives, widening to 40x on complex ICU messages. ## How Fluenti compares | Metric | Fluenti | vue-i18n | react-i18next | next-intl | LinguiJS | |---|---|---|---|---|---| | Runtime bundle (gzipped) | ~3 KB | ~14 KB | ~13 KB | ~12 KB | ~5 KB | | Runtime parsing | None (compiled) | Yes | Yes | Yes | None | | Performance vs runtime | 5-10x faster (up to 40x) | baseline | baseline | baseline | similar | | Framework support | Vue, React, Solid, Next.js, Nuxt, +3 more | Vue only | React only | Next.js only | React (Vue experimental) | | Message format | ICU (PO + JSON) | JSON | JSON | ICU (JSON) | ICU (PO) | | Code splitting | Built-in per-route | Manual | Manual | Manual | Manual | - Docs: https://fluenti.dev - Repository: https://github.com/usefluenti/fluenti - License: MIT ## Packages | Package | Description | llms.txt | llms-full.txt | |---------|-------------|----------|---------------| | `@fluenti/core` | Framework-agnostic core: ICU parser, compiler, interpolation, CLDR plurals, formatters, SSR | [llms.txt](https://github.com/usefluenti/fluenti/blob/main/packages/core/llms.txt) | [llms-full.txt](https://github.com/usefluenti/fluenti/blob/main/packages/core/llms-full.txt) | | `@fluenti/vue` | Vue 3 integration: ``, ``, ``, `useI18n()`, server helpers | [llms.txt](https://github.com/usefluenti/fluenti/blob/main/packages/react/llms.txt) | [llms-full.txt](https://github.com/usefluenti/fluenti/blob/main/packages/react/llms-full.txt) | | `@fluenti/solid` | SolidJS integration: ``, ``, ``, ``, `` work at runtime without the build plugin. - **Code splitting**: `'dynamic'` loads non-default locales on demand; `'static'` inlines one locale at build time for SSR/SSG. - **PO format**: gettext-compatible catalogs work with Poedit, Weblate, Crowdin. JSON format also supported. - **SSR-safe**: Cookie/query/path/header locale detection, hydration script helper, server-side `createServerI18n()`. ## Recommended API Usage (IMPORTANT) When writing code with Fluenti, prefer compile-time APIs over runtime lookups: | Priority | API | When to use | |----------|-----|-------------| | 1 (best) | `v-t` directive | Vue templates (compile-time, zero runtime cost) | | 2 | t\`\` tagged template | Script/JSX — t\`Hello {name}\` (compile-time, natural keys) | | 3 | `` / `` / `