Welcome to Saykit
Saykit is a modern, framework-agnostic internationalization (i18n) framework that brings compile-time message extraction and type-safe configuration to your applications.Quick Start
Get up and running with Saykit in minutes
Core Concepts
Learn about Saykit’s architecture and design
React Integration
Use Saykit with React applications
API Reference
Explore the complete API documentation
Key Features
Template Literal Syntax
Define messages using intuitive template literal syntax with compile-time macro expansion
Compile-Time Extraction
Automatically extract translatable messages from your source code during build
Framework Agnostic
Works with React, Next.js, and any JavaScript framework or vanilla JS
ICU MessageFormat
Full support for pluralization, ordinals, and select messages using ICU standards
Type-Safe Configuration
Zod-powered configuration schema with full TypeScript support
Flexible Formats
Built-in PO file support with extensible custom formatter API
How It Works
Saykit uses a macro-based approach to define translatable messages directly in your source code:Why Saykit?
Better Developer Experience
Better Developer Experience
Write messages inline using familiar template literal syntax. No more hunting for translation keys or managing separate locale files manually.
Compile-Time Safety
Compile-Time Safety
Catch missing translations and format errors during build time, not runtime. Saykit extracts messages from your code and validates them before deployment.
Framework Flexibility
Framework Flexibility
Use Saykit with any JavaScript framework or none at all. The core runtime has zero dependencies, and framework integrations are opt-in.
Standards-Based
Standards-Based
Built on ICU MessageFormat for pluralization and formatting, ensuring compatibility with industry-standard translation tools and workflows.
Quick Example
Here’s a complete example showing pluralization with Saykit:Next Steps
Install Saykit
Add Saykit to your project using your preferred package managerInstallation Guide →
Configure Your Project
Set up your
saykit.config.ts file to define locales and message extraction rulesConfiguration Guide →Add a Framework Integration
Install the React, Babel, or unplugin integration for your build setupIntegrations →
Extract and Compile Messages
Use the CLI tools to extract messages and compile translationsCLI Reference →
Community and Support
Saykit is an open-source project. Contributions, issues, and feedback are welcome on GitHub.Saykit is currently in active development (WIP). APIs may change before the stable 1.0 release.