Safe and sound
Your data stays on-device, backed by local storage and Markdown.
PROJECT MANAGEMENT APP FOR CHAMPIONS
dotodo blends a tactile board with Markdown-first storage so your projects stay portable, private, and frictionless.
Feature
A local-first board with thoughtful guardrails and no noise.
Your data stays on-device, backed by local storage and Markdown.
Drag, drop, and scan columns without losing context.
No accounts or trackers. You own every line.
Fast navigation and action without leaving the keys.
Move projects in and out with a single Markdown format.
Use it purely as a board without linking a file.
Commit it alongside the rest of your codebase.
Markdown
Add the following to agent.md and let the coding agent read and update task md file:
# dotodo - Markdown Task Editing Instructions
Use the Markdown format below to update tasks. You may:
- Update **status** by moving tasks under the correct section.
- Create **new tasks** by adding new lines (omit `id` to create).
## Format
# Project: Name (id:UUID) # optional, do not change id unless instructed
## TODO
## IN PROGRESS
## DONE
- [ ] (id:UUID) [feature|medium] Task title - Optional description
## Rules
- **Status** is determined by the section header (TODO / IN PROGRESS / DONE).
- **To create a task**, omit `(id:...)`:
- `- [ ] [feature|low] New task title - Description`
- **To update a task**, keep its `(id:...)` and edit title/description.
- **Description** comes after " - " on the same line. Remove it if not needed.
- Keep `type` as `feature` or `bug`. Priority is `low`, `medium`, or `high`.
- Move tasks to the correct section to change status.
## Template
# Project: NAME (id:UUID)
## TODO
- [ ] [feature|medium] New task title - Short description
## IN PROGRESS
- [ ] (id:EXISTING-ID) [bug|high] Existing task title - Updated description
## DONE
- [x] (id:EXISTING-ID) [feature|low] Completed task title - Final notes
## Examples
Create:
- [ ] [feature|medium] Add onboarding hints - Guide new users through actions
Update:
- [ ] (id:abc123) [bug|high] Fix sync race - Handle file update conflicts
Move to done:
## DONE
- [x] (id:abc123) [bug|high] Fix sync race - Handle file update conflicts
check todo.md and finish pending task
update todo.md with tasks that need to be finished to build a global leaderboard
# Project: Product Launch
## TODO
- [ ] [feature|high] Launch checklist - Ship on time
## IN PROGRESS
- [ ] (id:9f2e) [feature|medium] Landing page layout
## DONE
- [x] (id:b7aa) [bug|low] Fix export path
Versioning
Commit your board changes with the same repo history.
Changes sync in both directions, no manual export needed.
Make sure file is linked to the board.
Search
Search spans every project, column, and tag so you never lose a detail.
Philosophy
dotodo is built on the idea that project management should stay close to the work itself.
software development these days is largely spec driven, and features are built within minutes and hours
Instead of locking projects inside a tool, dotodo keeps Markdown as the source of truth. And the visual board is a lens on top of them. This ensures portability, transparency, and long-term ownership of your data.
dotodo favors local-first workflows. Projects live on your machine, sync through files you control, and remain usable without accounts, servers, or hidden automation.
The board is intentionally simple:
dotodo is designed to work equally well for individual developers, small teams, and coding agents. Its strict Markdown format and deterministic rules make it easy to automate, reason about, and evolve over time.
clear interface between intent, execution, and record. nothing more, nothing less.