Skip to main content

Frontend Stack

Core Framework

19.1.0
UI framework with modern hooks and concurrent features
~5.8.3
Type-safe JavaScript with strict mode enabled
^7.0.4
Build tool with fast HMR and optimized production builds

UI & Styling

^4.1.18
Utility-first CSS framework with custom design tokens
radix-ui@^1.4.3
Accessible headless UI primitives (Dialog, Popover, DropdownMenu, etc.)
^12.29.2
Animation library for smooth transitions (successor to Framer Motion)
custom
Pre-built accessible components built on Radix UI + Tailwind

Editor & Rich Text

^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
^3.4.1
ProseMirror core (powers TipTap)

Data & Forms

^8.21.3
Headless table library for database views
^7.71.1
Performant form validation
^4.3.6
TypeScript-first schema validation
^5.2.2
Zod integration for react-hook-form

Canvas & Visualization

^12.10.0
Node-based canvas editor (formerly React Flow)

Utilities

^1.1.1
Command palette component (Command+K)
^2.0.7
Toast notifications
^0.4.6
Dark mode theme switching
^0.7.1
Type-safe CSS class variants
^2.1.1
default:"tailwind-merge"
Conditional class names + Tailwind class merging
^4.6.2
Resizable sidebar/panel layouts

Backend Stack

Core Framework

2.x
Rust-based framework for building desktop apps
  • tauri - Core runtime
  • @tauri-apps/api - JavaScript bindings
  • @tauri-apps/cli - Build tooling
2021 edition
Systems programming language (see Cargo.toml)

Tauri Plugins

2.x
Native file picker dialogs
2.x
Open files/URLs in default system apps
2.x
Persistent key-value settings storage
^2.10.0
Auto-update functionality
2.x
System notifications
^2.3.1
Process management for Codex app-server

Serialization & Data

^1.0
default:"derive"
Rust serialization framework
^1.0
JSON serialization for IPC and file storage
^0.9
YAML frontmatter parsing
^0.31
default:"bundled"
SQLite bindings with embedded SQLite

Filesystem & I/O

^6.0
Cross-platform filesystem watcher
^0.10
SHA256 hashing for content-addressed storage
^0.4
Hex encoding for hash strings
^0.22
Base64 encoding for binary data URLs

Networking

^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
^2.0
URL parsing and validation

AI & LLM

^0.24.0
default:"derive"
Multi-provider LLM framework
  • OpenAI, Anthropic, Gemini, Ollama support
  • Tool calling & structured outputs
^0.8
JSON Schema generation for AI tool definitions

Utilities

^1.0
default:"v4"
UUID generation for note IDs
^0.3
default:"formatting"
Date/time handling (used for daily notes)
^1.0
Regular expressions for parsing
^0.1
Structured logging
^0.3
default:"env-filter"
Log filtering and formatting
^1.0
default:"macros, rt, time"
Async runtime for AI streaming
^0.3
Async utilities
^0.7
Additional Tokio utilities

Platform-Specific

^0.7
macOS window blur effects
^20.0
default:"macOS only"
macOS font enumeration

Development Tools

Linting & Formatting

^1.9.4
Fast linter + formatter (replaces ESLint + Prettier)
  • Auto-organizes imports
  • Enforces code style
  • TypeScript-first

Testing

^4.0.18
Vite-native test runner
  • Unit tests for utilities
  • Integration tests for editor extensions

Type Definitions

^19.1.8
React type definitions
^19.1.6
React DOM type definitions

Package Manager

10.28.2
Fast, disk-efficient package managerOnly builds native modules when needed:
package.json

Icon Library

^1.1.4
Open-source React icon library
^3.1.1
Core icon set

Version Matrix

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