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.
Set up your development environment
- Installation - Install development tools and dependencies
- First Run - Configure and test the application
- Development Workflow - Common development tasks
🏗️ Architecture
Understand how iDO works
- Overview - System architecture overview
- Three-Layer Design - Perception → Processing → Consumption
- Data Flow - How data moves through the system
- Tech Stack - Technology choices and rationale
Learn how to build features
- Frontend Overview - React, TypeScript, Tailwind
- Backend Overview - Python, PyTauri, FastAPI
- Internationalization - Multi-language support
Build and distribute iDO
- Troubleshooting - Common development issues
...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
# First-time setup
pnpm setup # macOS/Linux
pnpm setup:win # Windows
# Or manual setup
pnpm install # Frontend dependencies
uv sync # Backend dependencies# Frontend only (fastest)
pnpm dev
# Full app with TypeScript generation (recommended)
pnpm tauri:dev:gen-ts
# Backend API server only
uvicorn app:app --reload# 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# Production build
pnpm tauri build
# macOS with code signing
pnpm tauri:build:signed
# Clean artifacts
pnpm clean┌──────────────────────────────────────────┐
│ Consumption Layer (Frontend) │
│ React + TypeScript + Tailwind + Zustand │
└─────────────────┬────────────────────────┘
│ PyTauri IPC
┌─────────────────▼────────────────────────┐
│ Processing Layer (Backend) │
│ Python + FastAPI + Pydantic + SQLite │
└─────────────────┬────────────────────────┘
│
┌─────────────────▼────────────────────────┐
│ Perception Layer (Capture) │
│ pynput + mss + PIL + OpenCV │
└──────────────────────────────────────────┘
- Privacy First - All data processing happens locally
- Type Safe - TypeScript + Pydantic throughout
- Developer Friendly - Hot reload, auto-generation, clear APIs
- Extensible - Plugin agents, modular architecture
- Well Documented - Comprehensive guides and references
We welcome contributions! Here's how to get started:
- Set up your development environment
- Read the development workflow guide
- Follow code quality guidelines (run
pnpm format,pnpm lint, etc.) - Submit a PR with clear description
See CLAUDE.md for detailed project rules and best practices.
Navigation: ← Back to Documentation Home • Getting Started →