Developer Documentation

December 21, 2025 ยท View on GitHub

Welcome to the iDO developer documentation! This section is for developers who want to compile, develop, or contribute to iDO.

Note: If you just want to use iDO, see the User Guide instead.

๐Ÿ“š Documentation Structure

๐Ÿš€ Getting Started

Set up your development environment

๐Ÿ—๏ธ Architecture

Understand how iDO works

๐Ÿ’ป Development Guides

Learn how to build features

Frontend

Backend

Features

๐Ÿš€ Deployment

Build and distribute iDO


๐Ÿ” Quick Navigation

I want to...

...set up a development environment โ†’ Installation Guide

...understand how iDO works โ†’ Architecture Overview

...create a new API endpoint โ†’ Development Workflow

...add a new React component โ†’ Frontend Guide

...modify the database โ†’ Development Workflow - Database

...add a new language โ†’ i18n Guide

...fix a development issue โ†’ Troubleshooting


๐Ÿ“‹ Common Development Commands

Setup

# First-time setup
pnpm setup                  # macOS/Linux
pnpm setup:win              # Windows

# Or manual setup
pnpm install                # Frontend dependencies
uv sync                     # Backend dependencies

Development

# Frontend only (fastest)
pnpm dev

# Full app with TypeScript generation (recommended)
pnpm tauri:dev:gen-ts

# Backend API server only
uvicorn app:app --reload

Code Quality

# Format and lint
pnpm format                 # Auto-format code
pnpm lint                   # Check code quality

# Type checking
pnpm tsc                    # TypeScript
uv run ty check             # Python

# Validate translations
pnpm check-i18n

Build

# Production build
pnpm tauri build

# macOS with code signing
pnpm tauri:build:signed

# Clean artifacts
pnpm clean

๐Ÿ›๏ธ Architecture At a Glance

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚     Consumption Layer (Frontend)         โ”‚
โ”‚  React + TypeScript + Tailwind + Zustand โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚ PyTauri IPC
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚     Processing Layer (Backend)           โ”‚
โ”‚  Python + FastAPI + Pydantic + SQLite    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚     Perception Layer (Capture)           โ”‚
โ”‚  pynput + mss + PIL + OpenCV             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฏ Development Principles

  1. Privacy First - All data processing happens locally
  2. Type Safe - TypeScript + Pydantic throughout
  3. Developer Friendly - Hot reload, auto-generation, clear APIs
  4. Extensible - Plugin agents, modular architecture
  5. Well Documented - Comprehensive guides and references

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

  1. Set up your development environment
  2. Read the development workflow guide
  3. Follow code quality guidelines (run pnpm format, pnpm lint, etc.)
  4. Submit a PR with clear description

See CLAUDE.md for detailed project rules and best practices.


๐Ÿ“ž Getting Help


Navigation: โ† Back to Documentation Home โ€ข Getting Started โ†’