Skip to content

Repository files navigation

🧰 Toolbox

A self-hosted AI study hub for system design interviews

Docker License

Toolbox Chat Interface

Toolbox is a self-hosted web app that brings together everything you need to prepare for system design interviews: an AI tutor, an editable knowledge library, a drag-and-drop architecture whiteboard, spaced-repetition flashcards, and a Pomodoro timer — all in one dark, focused interface.


✨ Features

Feature Description
🤖 AI Learning Chat Session-based chat with 4 AI personas (Socratic, ELI5, Strict, Devil's Advocate), topic-specific starter prompts, and concept map generation
📖 Knowledge Guide 7-pillar structured library with AI-assisted Commit flow to save learnings from chat sessions
🎨 Architecture Builder React Flow-powered whiteboard with 25+ components, drag-to-connect anchors, minimap, multi-select, templates, and AI design verification
📚 Flashcards + SRS SM-2 spaced repetition system with per-deck settings, card browser, deck stats, and a study activity heatmap
🕸️ Knowledge Graph Layered prerequisite map of ~60 system design concepts (React Flow + dagre) with a live SM-2 retention heatmap, lineage highlighting, readiness filters, curated learning tracks, and deep links into Guide, Builder, and Flashcards
🧱 Adaptive Remediation Fail an advanced card and the SRS engine detects shaky foundations, then queues the prerequisite cards into your next review session
🧮 BotE Calculator Back-of-the-envelope sizing sandbox: live QPS/storage/cache/bandwidth/hardware math, scenario presets, an interactive latency cheat-sheet with a budget composer, AI "Audit My Math", and 1-click Markdown export
🧠 Feynman Simulator Voice-enabled Feynman technique: explain a concept, get structured AI feedback on gaps
🔀 Interleaved Review Study all due cards across every deck in a single shuffled session
🍅 Pomodoro Timer Persistent focus timer with plant gamification (🌱→🌸→🥀) and Strict Mode
⚙️ Shadow Memory The AI learns your timeline, strengths, and goals across sessions for personalized coaching
🔌 Multi-Provider AI Gemini, Claude, and OpenAI out of the box, plus bring-your-own-model via any OpenAI-compatible endpoint (Ollama, LM Studio, vLLM, OpenRouter, …) with live model discovery

📸 Screenshots

Knowledge Graph — prerequisite map with live SRS heatmap BotE Calculator — capacity estimation sandbox
Knowledge Graph BotE Calculator
Architecture Whiteboard Builder Structured Knowledge Guide
Architecture Builder Knowledge Guide
Spaced Repetition Flashcards Feynman Technique Simulator
Flashcards Feynman Simulator

🚀 Quick Start

Docker Compose (Recommended)

git clone https://github.com/arvarik/toolbox.git
cd toolbox
cp .env.example .env
# Add your API keys to .env (or configure via the Settings UI)
docker compose up -d

Access at http://your-server:3100.

Get a free Gemini API key at Google AI Studio

Local Development

npm install
npm run dev   # Vite (5173) + Express (3100)

📚 Documentation

Document Description
User Guide Complete guide to all features and workflows
API Reference Full REST API — every endpoint, request/response shape
SRS Algorithm SM-2 implementation, state machine, Hypercorrection Penalty
Deployment Guide Docker, Proxmox LXC, Nginx/Caddy setup
Architecture Tech stack, data model, AI integration
Design Reference CSS design system, component patterns, motion guidelines
Agent Instructions For AI coding agents — rules, patterns, gotchas
Contributing Dev setup, coding standards, PR process

⚙️ Configuration

Variable Default Description
PORT 3100 Server port
DB_PATH ./data/toolbox.db SQLite database path
GEMINI_API_KEY Gemini API key (can also be set via Settings UI)
CLAUDE_API_KEY Claude API key (can also be set via Settings UI)
OPENAI_API_KEY OpenAI API key (can also be set via Settings UI)

Custom OpenAI-compatible endpoints (Ollama, LM Studio, vLLM, OpenRouter, Groq, ...) are managed in the Settings UI. The app discovers each provider's model catalog live, so new model releases appear without an app update.

All user data lives in a single SQLite file — back it up by copying that file.


🛠️ Tech Stack

React 19 · Vite · React Router · Zustand · React Flow (@xyflow/react) · dagre · Vanilla CSS · Node.js · Express · SQLite (better-sqlite3) · Vercel AI SDK (Gemini / Claude / OpenAI / BYOM) · Docker


📄 License

MIT

About

System Design Interview Study App

Topics

Resources

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages