Launching today

JSON Link
Local-first open-source i18n spreadsheet & MCP server
6 followers
Local-first open-source i18n spreadsheet & MCP server
6 followers
Free open-source client-side localization spreadsheet & i18n workspace. Convert between Nested JSON, Excel, CSV, Flutter ARB, iOS strings, and Android XML with variable-safe AI translation, Zawgyi Unicode conversion, and automated GitHub PR sync.




Hi everyone, Iām Pyae Phyo Maung, creator of JSON Link.
If you build cross-platform apps across Flutter, React, iOS, or Android, you know how fragile localization pipelines can be. We repeatedly hit three major bottlenecks:
Runtime Token Crashes: Non-technical translators or general AI models frequently break variable syntax ({count}, %1$s, {{name}}). When your mobile app boots up, missing parameters trigger unhandled exceptions and production crashes.
Multi-Format Overhead: Converting spreadsheets into Flutter ARB (@key metadata), Android strings.xml, iOS Localizable.strings, and TypeScript definitions requires manual formatting or glue scripts.
Data Privacy & SaaS Bloat: Paying monthly subscriptions just to manage string key-value pairs while sending unreleased app copy to third-party clouds creates avoidable operational risk.
I built JSON Link to fix this once and for all: an open-source, local-first localization workstation that runs entirely in your browser with zero backend.
Key Architecture Highlights:
Authentic Spreadsheet UX: Full edge-to-edge grid with freeze panes, formula bar (fx), drag-to-resize columns, Excel-compatible copy-paste, and 50-step undo/redo.
Deterministic AST Token Isolation: Parses ICU MessageFormat, Mustache, and Printf tokens into locked visual tags so variables cannot be accidentally modified.
Direct Local Folder Sync: Uses the Native File System Access API to bind directly to your project's local folder (src/locales or assets/l10n). Writes straight to disk across all formats with 1 click.
Direct GitHub Sync & Automated PR Workflow: Connects to public/private repos via GitHub PAT directly in-browser. Tree-scans standard locale directories (locales/, l10n/, values-*/), loads files into the grid, and automatically opens a Pull Request with a dedicated feature branch (jsonlink/translations-...). Built-in safety guardrails permanently block read/write access to code, configurations, and secrets.
Zero-Knowledge Workspace Sharing (#share=...): Compresses multi-language workspace payloads in-browser using DEFLATE (pako) into the URL hash fragment. Zero server storage, zero database overhead. Plaintext data never touches a server.
Client-Side AES-GCM 256-bit Encryption: Optional password-protected encryption for Instant URLs and standalone .jsonlink project files (PBKDF2 key derivation, 100,000 iterations via Web Crypto API).
OpenRouter BYOK Security: Bring your own API key with client-side AES-GCM 256-bit encryption. Zero server hops between the browser and LLMs.
AI Termbase & Glossary: Enforces strict glossary rules to preserve brand names during batch translations.
Zawgyi ā Unicode Transcoder: Built-in Rabbit heuristics for legacy Southeast Asian font encoding detection and conversion.
Universal 1-Click Exporters: Production-ready bundles for Flutter ARB, Android XML, iOS Strings, TypeScript translations.d.ts, Excel, and CSV.
Native MCP Server: Standalone stdio JSON-RPC 2.0 server exposing localization tools directly to Claude Desktop, Cursor, and Google Antigravity.
Verification Baseline:
308 automated tests across 42 suites (Vitest / RTL) enforced in CI.
100% offline desktop PWA capability.
MIT licensed, zero telemetry, zero analytics scripts.
We would love to hear your feedback:
Are there edge-case interpolation formats or CLI parsers you need in your daily workflow?
What additional tools would you like exposed in the stdio MCP server for agentic IDE workflows?
Repository: https://github.com/pyaephyomaungdev/json-link
Live App: https://json-link.pages.dev/