Todobar is an open source project licensed under the Apache License 2.0. Contributions are welcome in any form — bug fixes, new features, documentation improvements, platform polish, or design feedback. This page explains how to get set up, where contributions are most needed, and what to include when you open a pull request.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Leonxlnx/todobar/llms.txt
Use this file to discover all available pages before exploring further.
Fork and set up the environment
Fork the repository
Fork Todobar on GitHub and clone your fork:
Install dependencies and start the app
Follow the full setup guide at Set up the Todobar development environment. The short version:
Areas especially welcome for contributions
The following areas have the most room for focused community help:- Windows and macOS edge-window behavior — pixel-accurate docking, multi-monitor targeting, and interaction with system trays and taskbars across OS versions.
- Accessibility and keyboard-first task flows — full keyboard navigation through task lists, focus management, ARIA roles, and screen reader compatibility.
- Local-first data storage — migration from
localStorageto SQLite, import/export formats, and backup flows. - Release signing and auto-update — Windows code signing certificates, Apple notarization, and a signed auto-update channel via the Tauri updater.
- MCP connector design — the adapter interface for connecting external context sources (GitHub, calendar, notes, filesystem) without silent reads or writes.
- AI planning UX with privacy boundaries — proposal flows, approval UI, confidence and source display, and audit logs for AI-created tasks.
Product principles
Keep these in mind when contributing:- Keep the sidebar fast and quiet — avoid adding weight to the main render path.
- Prefer local-first behavior — do not add external network access without an explicit permission model.
- Keep AI and MCP features optional and inspectable — the core task app must remain fully useful without them.
- Preserve Windows and macOS behavior when changing native window code — note which platforms you tested on in the pull request.
Code style
Todobar is written in TypeScript (React) and Rust (Tauri backend). The TypeScript layer uses ESLint withtypescript-eslint, eslint-plugin-react-hooks, and eslint-plugin-react-refresh. Run the linter before committing:
- Use TypeScript throughout — avoid unverified
anytypes and untyped escape hatches. - Keep components focused; prefer extracting small pure helpers over growing a single file.
- Rust code follows standard
cargo fmtandcargo clippyconventions.
Tests
Two smoke test commands are available:npx playwright install chromium first.
Pull request process
Good pull requests include:- A focused change — one logical concern per PR makes review faster.
- Screenshots or a screen recording for visible UI changes.
- The exact commands you used to test the change.
- Platform notes when touching Tauri window behavior or native APIs — state whether you tested on Windows, macOS Apple Silicon, macOS Intel, or used CI only.
main. GitHub Actions runs ci.yml automatically on both Windows and macOS — check that CI passes before requesting review.
Issue tracker
The public issue tracker is focused on real user reports. Roadmap planning, release follow-ups, and architecture decisions live in thedocs/ directory of the repository so the tracker stays actionable. Before filing an issue, check whether the topic is already covered in docs/roadmap.md or docs/product-vision.md.