Foco is a cross-platform productivity app designed to help users stay focused and accomplish their daily goals. It combines a minimalist Pomodoro-style timer with structured daily objectives and distraction blocking.
The mission of Foco is to provide discipline without friction: a lightweight, transparent, and effective tool to structure daily work, reinforce habits, and minimize digital distractions.
▤ Task Management - Create, organize, and track your daily tasks
⏱ Focus Sessions - Pomodoro-style work sessions with timing
☂ Distraction Blocking - Block websites and apps during focus time
packages/
├── desktop/ # Main Tauri + React application
│ ├── src/ # React frontend (TypeScript)
│ └── src-tauri/ # Rust backend
├── extension/ # Future browser extension (placeholder)
└── cli/ # Future CLI tool (placeholder)
Technology Stack:
- Frontend: React 19.1.0 + TypeScript 5.8.3 + Vite 7.0.4
- Backend: Rust + Tauri 2.x framework
- Package Manager: pnpm workspaces
- Quality Tools: ESLint 9.0.0, Prettier, Husky
- Node.js >=20 (LTS recommended)
- pnpm >=9
- Rust toolchain (stable)
- Tauri >=2
# Clone repository
git clone <repository-url>
cd osr.foco
# Install all dependencies
pnpm bootstrap
# Start development server
pnpm dev
# Open desktop app (separate terminal)
pnpm open# Development
pnpm dev # Start dev server (http://localhost:1420)
pnpm open # Launch desktop app in dev mode
pnpm build # Build production app
# Code Quality
pnpm lint # Run ESLint
pnpm lint:fix # Fix ESLint issues
pnpm format # Format with Prettier
# Release
pnpm commit # Interactive conventional commit
pnpm release # Create release with changelog- Modern monorepo structure with pnpm workspaces
- Tauri + React + TypeScript foundation
- Comprehensive tooling (ESLint, Prettier, Husky)
- Conventional commits with automated changelog
- Cross-platform desktop targeting
- Core task management functionality
- Focus session timer implementation
- Website blocking capabilities
- User interface and experience
- Browser extension companion
- Command-line interface tool
This project maintains high code quality standards:
- TypeScript Strict Mode: Explicit typing required
- Functional React: No class components
- Performance First: Optimized for desktop usage
- Security Focused: Input validation and secure practices
- Well Documented: Comprehensive documentation in
.guided/
Comprehensive project documentation available in .guided/:
- Architecture: Technical design and stack details
- Assessment: Project health and improvement roadmap
- Testing: Strategy and quality assurance approach
- Operations: Troubleshooting and maintenance guides
We welcome contributions! Please see:
- Contributing Guide: CONTRIBUTING.md
- Code Standards: Documented in
.guided/architecture/guardrails.md - Development Setup:
.guided/base/setup.instructions.md
- Fork the repository
- Create feature branch (
feat/new-feature) - Follow code standards and commit conventions
- Submit pull request with clear description
- Node.js: >=20.x (LTS)
- pnpm: >=9.x
- Rust: Stable toolchain
- Platforms: Windows, macOS, Linux
This project is licensed under the MIT License - see the LICENSE file for details.
- Homepage: opensource.rocks
- Documentation:
.guided/folder - Issues: GitHub Issues
- Discussions: GitHub Discussions
Built with 💚 for your brain