Get Glyph
Warning This documentation is still a work in progress. Some details may be out of date depending on the version of Glyph you are using, but it is being actively reviewed and improved.
Documentation AI Assistant Development Licensing

Documentation

Technology Stack

Core technologies and dependencies used in Glyph

Frontend Stack

Core Framework

React 19.1.0

UI framework with modern hooks and concurrent features

TypeScript ~5.8.3

Type-safe JavaScript with strict mode enabled

Vite ^7.0.4

Build tool with fast HMR and optimized production builds

UI & Styling

Tailwind CSS ^4.1.18

Utility-first CSS framework with custom design tokens

Radix UI radix-ui@^1.4.3

Accessible headless UI primitives (Dialog, Popover, DropdownMenu, etc.)

Motion ^12.29.2

Animation library for smooth transitions (successor to Framer Motion)

shadcn/ui custom

Pre-built accessible components built on Radix UI + Tailwind

Editor & Rich Text

TipTap ^3.4.1

Headless rich text editor framework

  • @tiptap/react - React integration
  • @tiptap/markdown - Markdown parsing/serialization
  • @tiptap/starter-kit - Common extensions
  • @tiptap/extension-* - Task lists, tables, links, images
@tiptap/pm ^3.4.1

ProseMirror core (powers TipTap)

Data & Forms

@tanstack/react-table ^8.21.3

Headless table library for database views

react-hook-form ^7.71.1

Performant form validation

zod ^4.3.6

TypeScript-first schema validation

@hookform/resolvers ^5.2.2

Zod integration for react-hook-form

Canvas & Visualization

@xyflow/react ^12.10.0

Node-based canvas editor (formerly React Flow)

Utilities

cmdk ^1.1.1

Command palette component (Command+K)

sonner ^2.0.7

Toast notifications

next-themes ^0.4.6

Dark mode theme switching

class-variance-authority ^0.7.1

Type-safe CSS class variants

clsx ^2.1.1
Default: tailwind-merge

Conditional class names + Tailwind class merging

react-resizable-panels ^4.6.2

Resizable sidebar/panel layouts

Backend Stack

Core Framework

Tauri 2.x

Rust-based framework for building desktop apps

  • tauri - Core runtime
  • @tauri-apps/api - JavaScript bindings
  • @tauri-apps/cli - Build tooling
Rust 2021 edition

Systems programming language (see Cargo.toml)

Tauri Plugins

tauri-plugin-dialog 2.x

Native file picker dialogs

tauri-plugin-opener 2.x

Open files/URLs in default system apps

tauri-plugin-store 2.x

Persistent key-value settings storage

tauri-plugin-updater ^2.10.0

Auto-update functionality

tauri-plugin-notification 2.x

System notifications

tauri-plugin-process ^2.3.1

Process management for Codex app-server

Serialization & Data

serde ^1.0
Default: derive

Rust serialization framework

serde_json ^1.0

JSON serialization for IPC and file storage

serde_yaml ^0.9

YAML frontmatter parsing

rusqlite ^0.31
Default: bundled

SQLite bindings with embedded SQLite

Filesystem & I/O

notify ^6.0

Cross-platform filesystem watcher

sha2 ^0.10

SHA256 hashing for content-addressed storage

hex ^0.4

Hex encoding for hash strings

base64 ^0.22

Base64 encoding for binary data URLs

Networking

reqwest ^0.12
Default: rustls-tls

HTTP client for link preview fetching

  • Uses rustls instead of OpenSSL
  • blocking - Synchronous API
  • json - JSON body support
  • stream - Streaming responses
url ^2.0

URL parsing and validation

AI & LLM

rig-core ^0.24.0
Default: derive

Multi-provider LLM framework

  • OpenAI, Anthropic, Gemini, Ollama support
  • Tool calling & structured outputs
schemars ^0.8

JSON Schema generation for AI tool definitions

Utilities

uuid ^1.0
Default: v4

UUID generation for note IDs

time ^0.3
Default: formatting

Date/time handling (used for daily notes)

regex ^1.0

Regular expressions for parsing

tracing ^0.1

Structured logging

tracing-subscriber ^0.3
Default: env-filter

Log filtering and formatting

tokio ^1.0
Default: macros, rt, time

Async runtime for AI streaming

futures-util ^0.3

Async utilities

tokio-util ^0.7

Additional Tokio utilities

Platform-Specific

window-vibrancy ^0.7

macOS window blur effects

core-text ^20.0
Default: macOS only

macOS font enumeration

Development Tools

Linting & Formatting

@biomejs/biome ^1.9.4

Fast linter + formatter (replaces ESLint + Prettier)

  • Auto-organizes imports
  • Enforces code style
  • TypeScript-first

Testing

vitest ^4.0.18

Vite-native test runner

  • Unit tests for utilities
  • Integration tests for editor extensions

Type Definitions

@types/react ^19.1.8

React type definitions

@types/react-dom ^19.1.6

React DOM type definitions

Package Manager

pnpm 10.28.2

Fast, disk-efficient package manager

Only builds native modules when needed:

"pnpm": {
  "onlyBuiltDependencies": ["@biomejs/biome", "esbuild"]
}

Icon Library

@hugeicons/react ^1.1.4

Open-source React icon library

@hugeicons/core-free-icons ^3.1.1

Core icon set

Version Matrix

ComponentVersionNotes
Node.js18+Required for pnpm
Rust1.70+2021 edition
macOS11+Big Sur or later
Windows10+64-bit
LinuxUbuntu 20.04+Debian-based

Architecture Decisions

Why Tauri over Electron?

  • Smaller bundle size (~10MB vs 100MB+)
  • Lower memory footprint
  • Native system integration
  • Rust security guarantees

Why TipTap over other editors?

  • TypeScript-first
  • Full control over markdown serialization
  • Extensible plugin system
  • ProseMirror foundation (battle-tested)

Why Biome over ESLint/Prettier?

  • 10-100x faster
  • Single tool for linting + formatting
  • Built in Rust
  • Auto-import organization

Why Rig over LangChain?

  • Rust-native (type-safe)
  • Multi-provider abstraction
  • Streaming support
  • Tool calling with JSON schema