Skip to content

shift-editor/shift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

682 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

┌──────────────────────────────────────────────────────────────┐
│                         Desktop App                          │
│  Electron shell  ←→  React UI  ←→  TypeScript Editor         │
└───────────────────────────────┬──────────────────────────────┘
                                │ IPC / native bridge
┌───────────────────────────────┴──────────────────────────────┐
│                         Rust Crates                          │
│  shift-bridge      transport adapter                         │
│  shift-workspace   open working state                        │
│  shift-font        live font authoring model                 │
│  shift-store       SQLite working store                      │
│  shift-source      .shift source package IO                  │
└──────────────────────────────────────────────────────────────┘

The desktop app owns shell and editor interaction. Rust owns the live font authoring model, durable working state, source package IO, and native transport boundary.

shift-font is the core Rust object model:

  • Font owns glyphs, sources, axes, metadata, and font-level data.
  • Source is an editable designspace position with a name and location.
  • Glyph is a glyph concept identified by GlyphId.
  • GlyphLayer is authored editable data for one glyph at one source.

Stable IDs are identity. Names and Unicode values are editable metadata.

Getting Started

Prerequisites

Quick Start

git clone https://github.com/shift-editor/shift.git
cd shift

pnpm install
pnpm build:native
pnpm dev

Roadmap

See ROADMAP.md for current implementation status and planned features. We are planning to ship a production grade font editor.

Community

Join our Discord server to ask questions, report bugs, or contribute!

License

GNU General Public License (GPL) v3.0

Copyright © 2026 Kostya Farber. All rights reserved.

About

A cross-platform font editor built in Rust and TypeScript

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors