This roadmap keeps the project focused on becoming a real desktop tool, not a browser-only app.
Goal: make the current prototype feel like the future product.
- Keep React + Vite as the dev preview.
- Move task logic into domain modules.
- Add a runtime adapter interface for web/Tauri/Electron.
- Replace
localStoragewith an interface that can later point to SQLite. - Define task/list/project/source/suggestion types.
- Add command concepts: capture, show/hide, suggest, approve, defer.
- Keep UI fast, narrow, keyboard-first, and responsive.
Exit criteria:
- Sidebar opens/closes smoothly.
- Tasks persist locally.
- Quick capture works.
- AI/MCP section is clearly shown as suggestion infrastructure.
- No external data is accessed.
Goal: prove that Tauri can deliver the required native UX.
- Add Tauri v2.
- Create a frameless dockable sidebar window.
- Add a settings window.
- Register global shortcuts.
- Add tray/menu-bar item.
- Add launch-at-login setting.
- Position sidebar on the active monitor.
- Test on Windows and macOS.
- Document every platform quirk.
Exit criteria:
Alt + Topens Todobar from another app.- Window appears on the correct monitor.
- Sidebar hides without leaving focus weirdness.
- App can run from tray/menu bar.
- No severe rendering mismatch between macOS and Windows.
Decision gate:
- If Tauri overlay behavior is smooth, continue with Tauri.
- If window behavior is unreliable after focused fixes, run an Electron spike before building more product features.
Goal: make the task core production-shaped.
- Add SQLite in the desktop shell.
- Add migrations.
- Add task event log.
- Add source metadata.
- Add import/export JSON.
- Add Markdown export.
- Add basic backup path.
Exit criteria:
- Data survives app updates and restarts.
- Migration tests pass.
- User can export all data.
- AI/imported tasks can be traced back to their source.
Goal: make Todobar useful every day without AI.
- Inbox
- Today
- Calendar
- Later
- Quick Capture
- Command Mode
- Keyboard navigation
- Editable tasks
- Local notifications and reminders
- Recurring tasks
- Natural-language date parsing
- Priority markers
- Defer/snooze
- Focus task
- Empty states and undo
Exit criteria:
- A user can capture, triage, plan today, complete, defer, and recover from mistakes using mostly keyboard actions.
Goal: add intelligence without losing trust.
- Add provider adapter.
- Keep API keys out of browser/client UI.
- Use structured output for proposed task changes.
- Add suggestion queue.
- Add approve/reject/apply controls.
- Add audit log.
- Add red-team tests for prompt injection and accidental data exposure.
Exit criteria:
- AI can suggest a Today plan.
- AI can split a task.
- AI can summarize a local inbox.
- AI cannot silently edit tasks.
- Every suggestion shows source and confidence.
Goal: connect useful context safely.
- Add MCP client adapter.
- Support local stdio MCP servers first.
- Add connector permission UI.
- Add tool/resource/prompt discovery view.
- Add scoped reads.
- Add write confirmation.
- Add audit log for every tool call.
First connector targets:
- local Markdown/files
- GitHub issues and PRs
- Gmail inbox summaries
- calendar day context
- Notion/docs
- Linear/Jira style issue trackers
Exit criteria:
- The user can connect one local MCP server.
- Todobar can read selected resources.
- Todobar can propose tasks from that context.
- No external write happens without explicit approval.
Goal: make it installable and trustworthy.
- Windows installer path.
- macOS app bundle path.
- Code signing plan.
- Notarization plan for macOS.
- Update channel.
- Crash/error reporting decision.
- Privacy policy.
- Contributor guide.
- Public license.
Goal: keep the sidebar compact while giving power users a larger planning surface.
- Add a second Tauri window for project/list management.
- Move connector setup and AI provider configuration out of the sidebar.
- Add bulk task editing.
- Add notification rule management.
- Add import/export and backup controls.
- Add assistant audit log review.
Exit criteria:
- Sidebar stays fast and focused.
- Larger planning and settings workflows have room to breathe.
- Users can manage connectors, notifications, and data without cluttering the edge panel.
Open-source default:
- Apache-2.0 is the better default than MIT if we want an explicit patent grant for a serious open-source desktop app.
- Consider AGPL only if the project later depends on hosted sync as a core business boundary.
- No marketing landing page as the product screen.
- No giant dashboard.
- No bloated AI chat surface.
- No silent sync.
- No hidden external reads.
- No task writes from AI without approval.
- Keep the sidebar calm and compact.
- Prefer icons for tools, text only for clear commands.
- Keep cards shallow; avoid nested card-heavy UI.
- Motion should explain open/close and state changes.
Implement Milestone 0 fully before adding Tauri:
- Add
src/domain/task model. - Add
src/runtime/adapter shape. - Add
src/storage/web storage implementation. - Add command palette skeleton.
- Add suggestion queue data model.
- Keep current UI working while making the architecture real.