Which SDKs and frameworks does i18n-keyless support?
Updated
i18n-keyless ships one API with twelve SDKs, so most common front-end, back-end, and mobile stacks are covered. If you use React, Next.js, Vue, Nuxt, Angular, Svelte, Node.js, Laravel, Rails, Flutter, Swift, Kotlin, Python, or Go, there is a documented path to integrate. Plain HTML works through a single script tag. The site claims setup takes about 5 minutes.
Supported SDKs and frameworks
The official list groups the twelve SDKs by ecosystem:
| Ecosystem | Frameworks / runtimes |
|---|---|
| React | React, React Native, Expo, Next.js, Remix, TanStack Start, Astro |
| Vue | Vue, Nuxt |
| Angular | Angular |
| Svelte | Svelte, Alpine, htmx (via one script tag) |
| Plain HTML | One script tag |
| Node.js | Node.js |
| PHP | Laravel |
| Ruby | Rails |
| Flutter | Flutter (Dart) |
| Swift | iOS, macOS, Vapor |
| Kotlin | Android, Ktor |
| Python | Django, Flask, FastAPI |
| Go | Go |
If your stack appears in this table, you can follow the SDK-specific setup. If it does not, the plain HTML script-tag route is the fallback for browser-based projects.
What "keyless" changes about integration
The core difference from traditional i18n libraries is that you do not maintain a key system. Instead of writing header.welcome.title and mapping it to a translation file, you write the real text and the service handles translation.
Practical consequences for setup:
- No locale JSON to load. You are not wiring up translation files per language.
- No key generation step. There is no separate key registry to create or maintain.
- One file to edit. The site describes the workflow as editing a single file rather than managing many locale files.
- No merge conflicts from locale files. Because there are no per-language JSON files being edited in parallel, the merge-conflict class of problems disappears.
The site frames the alternative as costly: setting up a keys system is described as at least 1 hour of senior dev time, and back-and-forth for each new key as roughly 1 minute per key — with an example of 500 keys across 2 languages totaling about 17 hours.
How to get started
- Confirm your stack is listed. Check the table above. If your framework is there, use its SDK.
- Get an API key. The site provides a "Get API Key for One App" entry point and a dashboard.
- Follow the 5-minute setup. The site states your whole i18n implementation can be done in about 5 minutes.
- Verify by viewing your app in a second language. With the key system, a missing translation shows something like
someheader.welcome.title. With i18n-keyless, the worst case offline is untranslated real words — so a quick language switch is a reasonable sanity check.
Self-hosted vs. hosted
The site offers two deployment models:
- Free self-hosted — you run it yourself.
- Hosted from €4/month — managed service.
The site also addresses the shutdown concern directly with a "What if the service shuts down?" section, which is worth reading if you are weighing the hosted option against self-hosting.
Common integration questions
Does it work with a plain static site? Yes — plain HTML is supported via a single script tag, and Svelte, Alpine, and htmx are also listed under the script-tag approach.
Does it cover mobile? Yes — React Native and Expo on the React side, Flutter for Dart, Swift for iOS/macOS/Vapor, and Kotlin for Android/Ktor.
Does it cover back-end rendering? Yes — Node.js, Laravel, Rails, Django, Flask, FastAPI, and Go are all listed.
What if my framework is not listed? The script-tag route covers browser-based projects. For anything else, the supported list is the authoritative starting point.
What to check before committing
- Confirm your exact framework version is covered by the relevant SDK, since the list names frameworks but not version ranges.
- Decide between self-hosted (free) and hosted (from €4/month) based on whether you want to run the service yourself.
- Read the shutdown section if you are choosing hosted, so you understand the exit path.
The fastest way to validate the fit is to pick your SDK, run the 5-minute setup, and switch languages in your app to confirm real words appear instead of keys.