Skip to main content

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 managerOnly builds native modules when needed:
package.json
"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