Frontend Stack
Core Framework
React 19.1.0UI framework with modern hooks and concurrent features
TypeScript ~5.8.3Type-safe JavaScript with strict mode enabled
Vite ^7.0.4Build tool with fast HMR and optimized production builds
UI & Styling
Tailwind CSS ^4.1.18Utility-first CSS framework with custom design tokens
Radix UI radix-ui@^1.4.3Accessible headless UI primitives (Dialog, Popover, DropdownMenu, etc.)
Motion ^12.29.2Animation library for smooth transitions (successor to Framer Motion)
shadcn/ui customPre-built accessible components built on Radix UI + Tailwind
Editor & Rich Text
TipTap ^3.4.1Headless 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.1ProseMirror core (powers TipTap)
Data & Forms
@tanstack/react-table ^8.21.3Headless table library for database views
react-hook-form ^7.71.1Performant form validation
zod ^4.3.6TypeScript-first schema validation
@hookform/resolvers ^5.2.2Zod integration for react-hook-form
Canvas & Visualization
@xyflow/react ^12.10.0Node-based canvas editor (formerly React Flow)
Utilities
cmdk ^1.1.1Command palette component (Command+K)
sonner ^2.0.7Toast notifications
next-themes ^0.4.6Dark mode theme switching
class-variance-authority ^0.7.1Type-safe CSS class variants
clsx ^2.1.1Conditional class names + Tailwind class merging
react-resizable-panels ^4.6.2Resizable sidebar/panel layouts
Backend Stack
Core Framework
Tauri 2.xRust-based framework for building desktop apps
tauri- Core runtime@tauri-apps/api- JavaScript bindings@tauri-apps/cli- Build tooling
Rust 2021 editionSystems programming language (see Cargo.toml)
Tauri Plugins
tauri-plugin-dialog 2.xNative file picker dialogs
tauri-plugin-opener 2.xOpen files/URLs in default system apps
tauri-plugin-store 2.xPersistent key-value settings storage
tauri-plugin-updater ^2.10.0Auto-update functionality
tauri-plugin-notification 2.xSystem notifications
tauri-plugin-process ^2.3.1Process management for Codex app-server
Serialization & Data
serde ^1.0Rust serialization framework
serde_json ^1.0JSON serialization for IPC and file storage
serde_yaml ^0.9YAML frontmatter parsing
rusqlite ^0.31SQLite bindings with embedded SQLite
Filesystem & I/O
notify ^6.0Cross-platform filesystem watcher
sha2 ^0.10SHA256 hashing for content-addressed storage
hex ^0.4Hex encoding for hash strings
base64 ^0.22Base64 encoding for binary data URLs
Networking
reqwest ^0.12HTTP client for link preview fetching
- Uses
rustlsinstead of OpenSSL blocking- Synchronous APIjson- JSON body supportstream- Streaming responses
url ^2.0URL parsing and validation
AI & LLM
rig-core ^0.24.0Multi-provider LLM framework
- OpenAI, Anthropic, Gemini, Ollama support
- Tool calling & structured outputs
schemars ^0.8JSON Schema generation for AI tool definitions
Utilities
uuid ^1.0UUID generation for note IDs
time ^0.3Date/time handling (used for daily notes)
regex ^1.0Regular expressions for parsing
tracing ^0.1Structured logging
tracing-subscriber ^0.3Log filtering and formatting
tokio ^1.0Async runtime for AI streaming
futures-util ^0.3Async utilities
tokio-util ^0.7Additional Tokio utilities
Platform-Specific
window-vibrancy ^0.7macOS window blur effects
core-text ^20.0macOS font enumeration
Development Tools
Linting & Formatting
@biomejs/biome ^1.9.4Fast linter + formatter (replaces ESLint + Prettier)
- Auto-organizes imports
- Enforces code style
- TypeScript-first
Testing
vitest ^4.0.18Vite-native test runner
- Unit tests for utilities
- Integration tests for editor extensions
Type Definitions
@types/react ^19.1.8React type definitions
@types/react-dom ^19.1.6React DOM type definitions
Package Manager
pnpm 10.28.2Fast, disk-efficient package manager
Only builds native modules when needed:
"pnpm": {
"onlyBuiltDependencies": ["@biomejs/biome", "esbuild"]
}Icon Library
@hugeicons/react ^1.1.4Open-source React icon library
@hugeicons/core-free-icons ^3.1.1Core icon set
Version Matrix
| Component | Version | Notes |
|---|---|---|
| Node.js | 18+ | Required for pnpm |
| Rust | 1.70+ | 2021 edition |
| macOS | 11+ | Big Sur or later |
| Windows | 10+ | 64-bit |
| Linux | Ubuntu 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