Skip to main content
Yasumu leverages modern, battle-tested technologies across its stack. This page documents the key dependencies and why they were chosen.

Frontend technologies

Core framework

TechnologyVersionPurpose
Next.js16.1.1+React framework for the UI layer
React19.2.1+UI library for building components
TypeScript5.9.3+Type-safe JavaScript development
Tailwind CSS4.xUtility-first CSS framework
Why Next.js? Despite being a desktop app, Next.js provides excellent developer experience with hot module replacement, automatic code splitting, and a rich ecosystem. Yasumu uses Next.js in static export mode (no server-side rendering).

UI libraries

LibraryVersionPurpose
shadcn/ui3.5.0Base component library
Lucide React0.475.0+Icon system
Monaco Editor4.8.0-rc.3Code editor (powers VS Code)
next-themes0.4.6+Theme switching (light/dark mode)
Why Monaco Editor? Monaco is the same editor that powers Visual Studio Code, providing best-in-class code editing with syntax highlighting, IntelliSense, and more.

State management

LibraryVersionPurpose
TanStack Query5.90.12+Server state management and caching
Zustand5.0.9+Client-side UI state
nuqs2.8.6+URL query state management
Why TanStack Query? Formerly React Query, it provides declarative data fetching with built-in caching, background updates, and optimistic updates—perfect for managing RPC calls.

Desktop shell (Tauri)

Tauri core

TechnologyVersionPurpose
Tauri2.xDesktop application framework
Rust2024 editionSystems programming language

Tauri plugins

PluginVersionPurpose
tauri-plugin-dialog~2.4.2Native file/folder dialogs
tauri-plugin-fs~2.4.4Filesystem access
tauri-plugin-http~2.5.4HTTP client with unsafe headers
tauri-plugin-os~2.3.2OS information
tauri-plugin-process~2.3.1Process management
tauri-plugin-store~2.4.1Persistent key-value storage
tauri-plugin-updater~2.9.0Auto-update functionality
tauri-plugin-window-state~2.4.1Window state persistence
Why Tauri plugins? Each plugin provides a specific native capability with a security-first approach. Unlike Electron’s all-or-nothing node integration, Tauri plugins give granular control over what the frontend can access.

Tanxium runtime

Deno dependencies

DependencyVersionPurpose
deno_runtime0.229.0Core Deno runtime with transpilation
deno_core0.363.0V8 bindings and ops system
deno_fs0.131.0Filesystem operations
deno_resolver0.52.0Module resolution
deno_ast0.51.0TypeScript/JavaScript parsing
Why Deno? Deno provides a modern JavaScript runtime with built-in TypeScript support, secure-by-default permissions, and web-standard APIs. Using deno_runtime allows embedding this functionality directly into the Tauri app.

Backend framework

TechnologyVersionPurpose
Hono4.10.4+Fast web framework for the RPC server
Drizzle ORM0.44.7+Type-safe ORM for SQLite
Zod4.1.12+Schema validation
Why Hono? Hono is an ultrafast web framework that works across runtimes (Node, Deno, Bun, etc.). It’s perfect for building the internal RPC server with minimal overhead. Why Drizzle ORM? Drizzle provides TypeScript-first ORM with excellent type inference and migration support. It generates minimal runtime code and works great with SQLite.

Build tools

Monorepo management

ToolVersionPurpose
pnpm10.19.0Fast, disk-efficient package manager
Turborepo2.5.8+Monorepo build system
Why pnpm? Pnpm uses a content-addressable store, saving disk space and speeding up installs. Its strict hoisting behavior also prevents accidental dependencies. Why Turborepo? Turborepo provides intelligent caching and parallel execution, dramatically speeding up builds in a monorepo setting.

TypeScript tooling

ToolPurpose
@typescript/native-previewExperimental native TypeScript compiler
tsc-aliasPath alias resolution after compilation

Additional dependencies

Tauri (Rust)

# Key Rust dependencies in Cargo.toml
tokio = "1.41.0"              # Async runtime
anyhow = "1"                   # Error handling
serde = "1"                    # Serialization
rustls = { version = "0.23" }  # TLS implementation
uuid = "1.18.1"                # UUID generation

Tanxium (TypeScript/Deno)

DependencyPurpose
smtp-serverCatch-all SMTP server for email testing
mailparserEmail parsing

Development tools

ToolPurpose
PrettierCode formatting
ESLintJavaScript linting
PostHogPrivacy-friendly analytics

Platform support

Yasumu targets three major desktop platforms:
  • Windows: Windows 10/11 (64-bit)
  • macOS: macOS 10.15 (Catalina) or later
  • Linux: Ubuntu 20.04+ or equivalent

Version catalogs

Yasumu uses pnpm’s catalog feature to manage shared versions across the monorepo:
catalogs:
  build:
    '@types/node': ^24.6.2
    '@typescript/native-preview': ^7.0.0-dev.20260109.1
    typescript: ^5.9.3
  react:
    '@types/react': ^19.2.7
    '@types/react-dom': ^19.2.3
    next: ^16.1.1
    react: ^19.2.1
    react-dom: ^19.2.1
  tailwind:
    '@tailwindcss/postcss': ^4
    tailwindcss: ^4
This ensures consistent versions across all packages and simplifies dependency updates.

Why these choices?

Every technology in Yasumu’s stack was chosen based on:
  1. Performance: Fast runtime performance and build times
  2. Developer experience: Great TypeScript support and tooling
  3. Stability: Battle-tested libraries with active maintenance
  4. Bundle size: Minimal impact on the final application size
  5. Type safety: Strong typing to catch errors at compile time
  6. Community: Active communities and good documentation

Next steps

Build docs developers (and LLMs) love