Skip to main content

Stack Overview

Tabby is built with modern, production-ready technologies chosen for performance, developer experience, and ecosystem maturity.

Frontend

Next.js 15, React 19, Tailwind CSS 4

Desktop

Electron 38, nut-js, uiohook-napi

Backend

FastAPI, Uvicorn, Mem0

AI

Vercel AI SDK, OpenAI, Groq, Cerebras

Database

Supabase (PostgreSQL), Neo4j

Deployment

Azure Container Apps, Vercel, GitHub Actions

Desktop Application

Electron 38

The foundation of Tabby’s desktop presence. Why Electron?
Electron enables global keyboard shortcuts, clipboard access, and desktop automation that web apps cannot achieve.
While currently Windows-focused, Electron makes macOS and Linux ports straightforward.
Leverage React, Next.js, and modern web APIs while building a native desktop app.
Key Dependencies:

Desktop Automation

nut-js (nut-tree-fork)

Cross-platform desktop automation for keyboard and mouse control:
Use Cases:
  • Undetectable AI typing (typewriter mode)
  • Automated keyboard shortcuts
  • Clipboard paste simulation

uiohook-napi

Low-level keyboard and mouse hook for global event listening:
Features:
  • Global keyboard hooks (even when app is unfocused)
  • Mouse event capture
  • Multi-key combination detection

node-window-manager

Window management and positioning:

Frontend Framework

Next.js 15 with App Router

Modern React framework running inside Electron’s renderer process. Key Features Used:

App Router

File-based routing with layouts and nested routes

Server Components

Optimized initial page loads (even in Electron)

API Routes

Built-in API endpoints for AI completions

Turbopack

Fast development builds and hot reload
Configuration:

React 19

Latest React with cutting-edge features:
  • Automatic batching: Improved performance for state updates
  • Transitions: Smooth UI updates during async operations
  • Suspense improvements: Better loading states
  • useOptimistic: Optimistic UI updates for chat

Tailwind CSS 4

Utility-first CSS framework with v4’s new features:
Benefits:
  • Lightning-fast JIT compilation
  • Native CSS cascade layers
  • Simplified configuration
  • Better performance than v3

UI Component Library

Radix UI Primitives

Headless, accessible components:
Why Radix?
  • Full keyboard navigation
  • Screen reader support
  • Unstyled (full styling control)
  • Battle-tested in production apps

shadcn/ui Pattern

Tabby follows the shadcn/ui pattern:
  1. Components built on Radix primitives
  2. Styled with Tailwind CSS
  3. Full source code in your repo (not npm package)
  4. Customizable with class-variance-authority

Additional UI Libraries

AI & Machine Learning

Vercel AI SDK 6.0

Unified interface for multiple AI providers with streaming support. Installation:
Provider Support:
React Hooks:
Streaming Text Generation:

MCP (Model Context Protocol)

Model Context Protocol integration for Windows desktop control:
Scripts:
Enables AI to:
  • Control Windows applications
  • Read/write files
  • Execute commands
  • Fetch LeetCode problems for interview mode

Web Search (Tavily)

AI-optimized search API:

Backend Services

FastAPI (Python)

High-performance async web framework for the memory service. Why FastAPI?
  • Mem0 compatibility: Mem0 is a Python library
  • Type safety: Pydantic models for validation
  • Auto docs: OpenAPI/Swagger UI built-in
  • Fast: Async/await support, comparable to Node.js
Core Implementation:
Dependencies:

Mem0

Intelligent memory layer for AI applications. Features:
  • Automatic fact extraction from conversations
  • Vector embeddings for semantic search
  • Graph relationships for knowledge mapping
  • Multi-user memory isolation
  • Image memory support with vision models
See Memory System Architecture for details.

Python Package Management (uv)

Fast Python package installer (Rust-based, replaces pip):
Performance:
  • 10-100x faster than pip
  • Deterministic dependency resolution
  • Compatible with pip/Poetry projects

Database & Storage

Supabase (Local Docker)

Open-source Firebase alternative running locally. Components:
1

PostgreSQL 15

Main database with pgvector extension for embeddings
2

PostgREST

Instant RESTful API from database schema
3

GoTrue

JWT-based authentication server
4

Realtime

WebSocket server for live updates
5

Storage

S3-compatible object storage for images
Client Libraries:
Usage:

Neo4j (Optional)

Graph database for knowledge graph visualization. Visualization Library:
Use Case: Displays relationships between memories in the Brain Panel:

Development Tools

TypeScript 5.9

Type-safe JavaScript across frontend, backend, and Electron:

Build Tools

tsup

Fast TypeScript bundler for Electron main process:

electron-builder

Application packaging and distribution:

Code Quality

Deployment & CI/CD

GitHub Actions

Automated workflows for releases and deployment:

Docker

Backend containerization:

Deployment Targets

Desktop App

GitHub ReleasesWindows .exe installer

Memory API

Azure Container AppsFastAPI service in Docker

Next.js API

VercelServerless functions

Additional Libraries

Utilities

React Ecosystem

Visualization

Package Management

pnpm

Fast, disk-efficient package manager:
Why pnpm?
  • 2x faster than npm
  • Saves disk space (content-addressable store)
  • Strict dependency resolution

Version Summary

All versions are pinned to ensure reproducible builds. See frontend/package.json for the complete dependency list.

Next Steps

System Architecture

See how these technologies work together

Memory System

Deep dive into Mem0, Supabase, and Neo4j