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
Shift uses the Tauri framework:
- UI: Uses React and Vite for components around the canvas
- Rendering: Webview based UI utilising the HTML canvas and rendered with CanvasKit (Skia) for high-quality graphics
- State management: Zustland for global React state mangement
- Backend: Rust for high-intensive operations and font related processing
- Rust (1.70 or later): Install Rust
- pnpm (1.0 or later): Install pnpm
- typescript (5.8 or later, also known as tsc): Install typescript
- node.js (23.10 or later): Install node.js
- System Dependencies:
- Windows: Microsoft Visual C++ Build Tools, WebView2
- macOS: Xcode Command Line Tools (
xcode-select --install
) - Linux: WebKit2GTK (
libwebkit2gtk-4.0-dev
) and build essentials
- Clone the repository:
git clone https://github.com/shift-editor/shift.git
cd shift
- Install dependencies:
pnpm install
- Run the development server:
pnpm dev:app
pnpm build:app
- If you encounter build errors, ensure you have all system dependencies installed
- For Linux users, make sure WebKit2GTK development libraries are installed
- For detailed troubleshooting, check the Tauri docs
We aim to implement the typical features present in font editors such as FontForge, Glyphs, RobotFont etc.
GNU General Public License (GPL) v3.0
Copyright © 2025 Kostya Farber. All rights reserved.