Measured bundle size
The current runtime entrypoint measures about 4.2 KB gzip in the repo benchmark; the full dist is reported separately.
CLI workflows | TypeScript safety | Tested adapters | Zero dependencies | MIT
npm install @pico-intl-dev/core @pico-intl-dev/astro pico-intl keeps the core runtime small while the CLI and adapters carry the workflow advantage.
The current runtime entrypoint measures about 4.2 KB gzip in the repo benchmark; the full dist is reported separately.
Core, React, Next, Vue, Svelte, Solid, Astro, and Angular share one behavioral contract for translation, fallback, locale state, and direction metadata.
Bidirectional migration. Import from i18next, react-intl, vue-i18n, Fluent, or PO. Export to all of them. Your translations, always.
Built purely on native platform APIs — Intl.PluralRules, Intl.Locale. Nothing else. No transitive risk, ever.
init, validate, doctor, translate, extract, generate types, CI gates, stats, import/export, and review files for provider-backed drafts.
Measured. t() simple lookup averages 29 ns on Node.js v24. Real numbers, not marketing. Run npm run bench:ci to verify.
Install, create your locale files, wire up the instance. You're done. No plugins, no config sprawl, no runtime surprises.
import { getAstroT } from '@pico-intl-dev/astro';
import en from './locales/en.json';
import es from './locales/es.json';
const t = getAstroT(Astro.currentLocale ?? 'en', { en, es }, 'en');
<h1>{t('hero.title')}</h1> Add pico-intl to product apps that need portable JSON catalogs, strict gates, and opt-in framework adapters.