Content
<div align="center">
<h1>Babelize</h1>
<p><strong>Autonomous i18n platform — automate internationalization for modern web apps</strong></p>
<p>
<a href="https://github.com/babelize/babelize-dashboard/stargazers">
<img src="https://img.shields.io/github/stars/babelize/babelize-dashboard?style=flat&logo=github" alt="Stars" />
</a>
<a href="https://github.com/babelize/babelize-dashboard/actions/workflows/ci.yml">
<img src="https://github.com/babelize/babelize-dashboard/actions/workflows/ci.yml/badge.svg" alt="CI" />
</a>
<a href="https://discord.gg/4kMng8XVcm">
<img src="https://img.shields.io/discord/1457805791724703941?label=Discord&logo=discord" alt="Discord" />
</a>
<a href="https://babelize.co">
<img src="https://img.shields.io/badge/website-babelize.co-blue" alt="Website" />
</a>
<img src="https://img.shields.io/github/license/babelize/babelize-dashboard" alt="License" />
</p>
<p>
<a href="#quick-start">Quick Start</a> •
<a href="#features">Features</a> •
<a href="#cli">CLI</a> •
<a href="#architecture">Architecture</a> •
<a href="#tech-stack">Tech Stack</a> •
<a href="https://babelize.io/docs">Documentation</a> •
<a href="CONTRIBUTING.md">Contributing</a>
</p>
</div>
Babelize scans your codebase, extracts translatable strings via AST analysis, translates them using AI, and generates ready-to-use locale files — all without leaving your workflow.
---
## Quick Start
```bash
# Install the CLI
npm install -g @babelize/cli
# Authenticate and initialize your project
babelize auth login
babelize init
# Translate your app into 3 languages
babelize run start --languages es,fr,de
```
That's it. Babelize detects your framework (React, Next.js, Vue), extracts strings, translates them, and injects the locale files back into your project.
Or use the hosted dashboard at [babelize.co](https://babelize.co) — no CLI needed.
---
## Why Babelize?
Internationalization is still done manually in most projects: extract strings, send them to translators, copy-paste locale files, repeat for every language and every change. Babelize automates the entire pipeline.
- **AST-level extraction** — understands your code, not just regex
- **Context-aware AI translation** — preserves variables, JSX, and formatting
- **Incremental** — only translates what changed, reuses cached translations
- **CI/CD ready** — CLI + API for automation, lockfile-based for deterministic output
- **Framework agnostic** — React, Next.js, Vue, and more
---
## Features
### Translation Pipeline
| Phase | Description |
|-------|-------------|
| **Scan** | AST-based string extraction from ts/tsx/js/jsx with framework auto-detection |
| **Key Generation** | Collision-safe key mapping with source-hash caching |
| **Translate** | AI-powered via NLLB-200, Anthropic, or OpenAI — context-aware, variable-safe |
| **Inject** | Strategy-pattern AST injection for framework-specific locale patterns |
| **Preview** | Length overflow analysis, RTL detection, before/after diff |
| **Review** | Web dashboard with per-key editing, bulk approve/flag, filter by language |
### Developer Experience
- **CLI** — Full platform parity from the terminal. Run translations, manage projects, raise PRs.
- **REST API** — Swagger/OpenAPI documented. Everything the dashboard can do, the API can do.
- **MCP Server** — AI-native integration via `@babelize/mcp` for Cursor, Claude, and AI coding agents.
- **Webhooks** — GitHub push-event-triggered sync with HMAC verification.
- **Real-time** — WebSocket (Socket.IO) progress updates during translation runs.
### Platform
- **Project Management** — GitHub repo or ZIP upload, PR management, sync detection, archive/freeze
- **Translation Memory** — Redis + Postgres caching, glossary with CSV import/export, "never translate" terms
- **Team Collaboration** — Role-based access (owner, admin, editor, viewer), invitations, threaded comments with @mentions
- **Authentication** — Email/password, OAuth (GitHub, Google, GitLab), MFA, session management, refresh token rotation
- **Billing** — Tiered plans (Free, Pro, Studio), AI credit system, Dodo Payments, usage metrics (MRR/ARR)
- **Security** — Helmet CSP, CORS allowlist, CSRF double-submit cookie, rate limiting, RLS, encrypted secrets at rest
- **GDPR** — Data export, account erasure (Art. 17), automatic purging, cookie consent
---
## CLI
```bash
# Authentication
babelize auth login # Interactive login
babelize auth login --email $EMAIL --password $PASS # CI/CD mode
babelize auth whoami # Current user info
# Projects
babelize projects list
babelize projects create --name "My App"
babelize init # Initialize in current directory
# Translations
babelize run start --project <id> --languages es,fr,de
babelize run preview --project <id> --languages es,fr # Dry run
babelize run status <babel-id> --watch # Live progress
babelize run analyze # i18n readiness check
# Pull Requests
babelize pr list <project-id>
babelize pr raise <project-id>
babelize pr update <project-id>
# Team
babelize members list <project-id>
babelize invitations send <project-id> --email user@example.com --role viewer
babelize comments create --project <project-id> --content "..." --type suggestion
# Translation Memory & Glossary
babelize tm list <project-id>
babelize languages list
babelize languages add <project-id> <lang-id>
# Billing
babelize billing plans
babelize billing usage
babelize checkout --plan <id>
# Admin
babelize admin stats
babelize admin users
babelize admin billing metrics
# Utility
babelize <command> --json # Machine-readable output
babelize <command> -v # Verbose logging
```
> **URL resolution:** `BABELIZE_API_URL` env → saved config → `localhost:3001` (dev) / `api.babelize.co` (prod)
---
## Architecture
```
babelize-dashboard/
├── apps/
│ ├── frontend/ Next.js 16 App Router (port 3000)
│ ├── backend/ Express.js 5 + BullMQ workers (port 3001)
│ ├── docs/ Fumadocs documentation site (port 3002)
│ └── translator/ Rust/Axum microservice — NLLB-200 inference
├── packages/
│ ├── types/ Shared Zod schemas, TypeScript interfaces, constants
│ ├── cli/ @babelize/cli — Commander.js CLI
│ └── mcp/ @babelize/mcp — MCP server for AI coding agents
├── supabase/ PostgreSQL migrations + RLS policies
└── docker-compose.yml Local Postgres + Redis
```
**Data flow:** Frontend → Next.js API proxy routes → Express backend → BullMQ queues → Engine pipeline (10 phases) → Rust translator (optional) → Supabase/Redis persistence. Real-time updates via Socket.IO.
### Backend Modules
The Express API is organized into 17 domain modules: `account`, `admin`, `analytics`, `apiKeys`, `auth`, `babels`, `billing`, `checkout`, `enterprise`, `invitations`, `notifications`, `projects`, `subscriptions`, `system`, `users`, `webhooks` — plus 6 background workers for engine processing, file operations, subscription expiry, account purging, and sync digests.
---
## Tech Stack
| Layer | Technology |
|-------|------------|
| **Monorepo** | Bun workspaces |
| **Runtime** | Bun, Node.js |
| **Frontend** | Next.js 16, React 19, Tailwind CSS v4, shadcn/ui, Recharts |
| **Backend** | Express.js 5, TypeScript, BullMQ, Socket.IO |
| **Database** | PostgreSQL (Supabase + RLS), Redis |
| **Auth** | Supabase Auth (JWT, OAuth — GitHub/Google/GitLab) |
| **AI Translation** | NLLB-200 (self-hosted Rust), BYOK (Anthropic, OpenAI) |
| **Payments** | Dodo Payments |
| **Testing** | Jest, React Testing Library, Playwright |
| **Monitoring** | Sentry (client + server), Vercel Analytics |
| **API Docs** | Swagger / OpenAPI 3.1 |
---
## Project Status
| Check | Status |
|-------|--------|
| TypeScript | 4/4 packages pass |
| Build | Frontend, CLI, Types pass |
| Lint | 0 errors across all packages |
| Tests | Frontend: 2 pass. Backend: 271 pass, 0 fail |
| License | GPL-3.0 |
---
## Ecosystem
| Package | Description | npm |
|---------|-------------|-----|
| `@babelize/cli` | Full-featured CLI for CI/CD and terminal workflows | [npm](https://www.npmjs.com/package/@babelize/cli) |
| `@babelize/mcp` | MCP server for AI coding agents (Cursor, Claude) | [npm](https://www.npmjs.com/package/@babelize/mcp) |
| `@babelize/types` | Shared TypeScript types and Zod schemas | internal |
---
## Security
We take security seriously. See [SECURITY.md](SECURITY.md) for our vulnerability disclosure policy.
- JWT auth with HttpOnly cookies + refresh token rotation
- Row Level Security (Supabase RLS) + RBAC middleware
- Helmet CSP, CORS allowlist, CSRF double-submit cookie
- Rate limiting (Redis sliding window, tier-based)
- Webhook verification (HMAC-SHA256 + standardwebhooks)
- Encrypted secrets at rest, Sentry error tracking
- Hardened credit reservation with atomic enforcement
---
## Contributing
We welcome contributions from the community. Please read our [Contributing Guide](CONTRIBUTING.md) to get started.
- Check [`good first issue`](https://github.com/babelize/babelize-dashboard/labels/good%20first%20issue) labels for beginner-friendly tasks
- Join our [Discord](https://discord.gg/4kMng8XVcm) for questions
- See the [full changelog](CHANGELOG.md) for release history
---
## License
Babelize is licensed under the **GNU General Public License v3.0 (GPL-3.0)**. See [LICENSE](LICENSE) for the full text.
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.