Skip to content

A cross-platform font editor built in Rust and TypeScript using the Tauri framework

License

Notifications You must be signed in to change notification settings

shift-editor/shift

Repository files navigation

Shift

A modern, cross-platform font editor built with TypeScript and Rust, focused on bringing contemporary technologies and design principles to type design.

image

Why Shift?

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

Architecture

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

Getting Started

Prerequisites

  • 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

Quick Start

  1. Clone the repository:
git clone https://github.com/shift-editor/shift.git
cd shift
  1. Install dependencies:
pnpm install
  1. Run the development server:
pnpm dev:app

Build for Production

pnpm build:app

Common Issues

  • 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

Development Roadmap

We aim to implement the typical features present in font editors such as FontForge, Glyphs, RobotFont etc.

License

GNU General Public License (GPL) v3.0

Copyright © 2025 Kostya Farber. All rights reserved.