Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. React
  3. formatjs

formatjs

TypeScript@formatjs/unplugin@1.2.3

A suite of JavaScript libraries for internationalization (i18n), including the popular react-intl library.

Visit WebsiteGitHubGitHub
14.7k stars1.4k forks0 contributors

What is formatjs?

FormatJS is a monorepo containing a suite of JavaScript libraries and tools for internationalization (i18n). It solves the problem of formatting dates, numbers, lists, and messages for different languages and locales in web applications, with its most notable library being react-intl for React projects.

Target Audience

JavaScript and TypeScript developers building web applications that need to support multiple languages, particularly React developers using react-intl.

Value Proposition

Developers choose FormatJS for its comprehensive, modular approach to i18n, its adherence to the ECMAScript Internationalization standard, and its excellent integration with modern frontend tooling like React, Babel, and TypeScript.

Overview

The monorepo home to all of the FormatJS related libraries, most notably react-intl.

Use Cases

Best For

  • Adding internationalization to React applications
  • Formatting dates, numbers, and lists for different locales
  • Managing complex translation messages with plurals and genders
  • Extracting and compiling translation strings in build pipelines
  • Ensuring consistent i18n across server and client-side JavaScript
  • Polyfilling the Intl API for older browsers

Not Ideal For

  • Projects using non-React frameworks like Vue or Svelte where framework-specific i18n libraries offer better integration
  • Applications with simple translation needs that don't require complex ICU message formatting or locale-specific rules
  • Teams prioritizing minimal bundle size over comprehensive i18n features, as FormatJS's polyfills and modular packages can add significant weight
  • Dynamic, content-heavy sites where translations are managed server-side without a build step, as FormatJS's tooling is optimized for static extraction

Pros & Cons

Pros

ICU Message Format

Supports the powerful ICU syntax for handling plurals, genders, and selectors in translations, enabling complex localization scenarios directly from the README's feature list.

Seamless React Integration

The react-intl library provides first-class support for React applications with hooks and components, making i18n intuitive and well-documented in the published packages.

Comprehensive Build Tooling

Includes a CLI, Babel plugin, and TypeScript transformer for extracting and compiling translation messages, streamlining the i18n workflow as highlighted in the Key Features.

Standards Compliance

Implements the ECMAScript Internationalization API (ECMA-402), ensuring consistency and future-proofing with browser standards, a core part of the project philosophy.

Cons

Modular Complexity

The suite is split into over 15 independent packages (e.g., @formatjs/intl-datetimeformat, @formatjs/intl-numberformat), requiring careful dependency management and increasing setup overhead.

Bundle Size Impact

Using polyfills for older browsers and loading locale data can significantly increase bundle size, with no built-in tree-shaking defaults, affecting performance for lightweight apps.

Limited Non-React Support

While core libraries exist, the best integration and documentation are for React; other frameworks may lack first-party tools, pushing developers to seek alternatives.

Frequently Asked Questions

Quick Stats

Stars14,739
Forks1,387
Contributors0
Open Issues3
Last commit2 days ago
CreatedSince 2014

Tags

#locale-formatting#internationalization#globalization#typescript#i18n#localization#javascript#web#react#icu-messageformat#react-intl#translation#intl

Built With

B
Babel
T
TypeScript
L
Lerna

Links & Resources

Website

Included in

React72.7k
Auto-fetched 6 hours ago

Related Projects

react-i18nextreact-i18next

Internationalization for react done right. Using the i18next i18n ecosystem.

Stars10,032
Forks1,052
Last commit1 day ago
react-intlayerreact-intlayer

Per-component Internationalisation solution for JS application. Type-Safe. Translate with AI. Edit Visually.

Stars788
Forks121
Last commit13 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub