A modern, cross-platform font editor built with TypeScript and Rust, focused on bringing contemporary technologies and design principles to type design.
Shift aims to redefine font editing by combining the power of Rust for performance-critical tasks with the flexibility of web-based UI technologies. Whether you're a type designer or a developer, Shift offers a fresh approach to creating and editing fonts with a focus on speed, precision, and extensibility.
Important
Shift is in a pre-alpha state and is currently only suitable for developers interested in contributing to the project
┌─────────────────────────────────────────────────────────┐
│ Frontend │
│ React UI ←→ Editor ←→ Canvas 2D Renderer │
└────────────────────────┬────────────────────────────────┘
│ IPC / NAPI
┌────────────────────────┴────────────────────────────────┐
│ Backend │
│ shift-node (N-API bindings) ←→ shift-core (Rust) │
└─────────────────────────────────────────────────────────┘
The frontend handles UI and rendering via Electron, while all font data and editing operations live in Rust. Communication happens through native Node.js bindings, keeping performance-critical work off the main thread.
See docs/editor-integration.md for detailed architecture
git clone https://github.com/shift-editor/shift.git
cd shift
pnpm install
pnpm build:native
pnpm devSee ROADMAP.md for current implementation status and planned features. We are planning to ship a production grade font editor.
GNU General Public License (GPL) v3.0
Copyright © 2025 Kostya Farber. All rights reserved.
