# CodeNomad Build Roadmap ## Overview This document outlines the phased approach to building the CodeNomad desktop application. Each phase builds incrementally on the previous, with clear deliverables and milestones. **Status:** MVP (Phases 1-3) is complete. Focus now shifts to post-MVP phases starting with multi-instance support and advanced input refinements. ## MVP Scope (Phases 1-3) The minimum viable product includes: - Single instance management - Session selection and creation - Message display (streaming) - Basic prompt input (text only) - Agent/model selection - Process lifecycle management **Target: 3-4 weeks for MVP** --- ## Phase 1: Foundation (Week 1) **Goal:** Running Electron app that can spawn OpenCode servers ### Tasks 1. ✅ **001-project-setup** - Electron + SolidJS + Vite boilerplate 2. ✅ **002-empty-state-ui** - Empty state UI with folder selection 3. ✅ **003-process-manager** - Spawn and manage OpenCode server processes 4. ✅ **004-sdk-integration** - Connect to server via SDK 5. ✅ **005-session-picker-modal** - Select/create session modal ### Deliverables - App launches successfully - Can select folder - Server spawns automatically - Session picker appears - Can create/select session ### Success Criteria - User can launch app → select folder → see session picker - Server process runs in background - Sessions fetch from API successfully --- ## Phase 2: Core Chat Interface (Week 2) **Goal:** Display messages and send basic prompts ### Tasks 6. **006-instance-session-tabs** - Two-level tab navigation 7. **007-message-display** - Render user and assistant messages 8. **008-sse-integration** - Real-time message streaming 9. **009-prompt-input-basic** - Text input with send functionality 10. **010-tool-call-rendering** - Display tool executions inline ### Deliverables - Tab navigation works - Messages display correctly - Real-time updates via SSE - Can send text messages - Tool calls show status ### Success Criteria - User can type message → see response stream in real-time - Tool executions visible and expandable - Multiple sessions can be open simultaneously --- ## Phase 3: Essential Features (Week 3) **Goal:** Feature parity with basic TUI functionality ### Tasks 11. **011-agent-model-selectors** - Dropdown for agent/model switching 12. **012-markdown-rendering** - Proper markdown with code highlighting 13. **013-logs-tab** - View server logs 14. **014-error-handling** - Comprehensive error states and recovery 15. **015-keyboard-shortcuts** - Essential keyboard navigation ### Deliverables - Can switch agents and models - Markdown renders beautifully - Code blocks have syntax highlighting - Server logs accessible - Errors handled gracefully - Cmd/Ctrl+N, K, L shortcuts work ### Success Criteria - User experience matches TUI quality - All error cases handled - Keyboard-first navigation option available --- ## Phase 4: Multi-Instance Support (Week 4) **Goal:** Work on multiple projects simultaneously ### Tasks 16. **016-instance-tabs** - Instance-level tab management 17. **017-instance-state-persistence** - Remember instances across restarts 18. **018-child-session-handling** - Auto-create tabs for child sessions 19. **019-instance-lifecycle** - Stop, restart, reconnect instances 20. **020-multiple-sdk-clients** - One SDK client per instance ### Deliverables - Multiple instance tabs - Persists across app restarts - Child sessions appear as new tabs - Can stop individual instances - All instances work independently ### Success Criteria - User can work on 3+ projects simultaneously - App remembers state on restart - No interference between instances --- ## Phase 5: Advanced Input (Week 5) **Goal:** Full input capabilities matching TUI ### Tasks 21. **021-slash-commands** - Command palette with autocomplete 22. **022-file-attachments** - @ mention file picker 23. **023-drag-drop-files** - Drag files onto input 24. **024-attachment-chips** - Display and manage attachments 25. **025-input-history** - Up/down arrow message history ### Deliverables - `/command` autocomplete works - `@file` picker searches files - Drag & drop attaches files - Attachment chips removable - Previous messages accessible ### Success Criteria - Input feature parity with TUI - File context easy to add - Command discovery intuitive --- ## Phase 6: Polish & UX (Week 6) **Goal:** Production-ready user experience ### Tasks 26. **026-message-actions** - Copy, edit, regenerate messages 27. **027-search-in-session** - Find text in conversation 28. **028-session-management** - Rename, share, export sessions 29. **029-settings-ui** - Preferences and configuration 30. **030-native-menus** - Platform-native menu bar ### Deliverables - Message context menus - Search within conversation - Session CRUD operations - Settings dialog - Native File/Edit/View menus ### Success Criteria - Feels polished and professional - All common actions accessible - Settings discoverable --- ## Phase 7: System Integration (Week 7) **Goal:** Native desktop app features ### Tasks 31. **031-system-tray** - Background running with tray icon 32. **032-notifications** - Desktop notifications for events 33. **033-auto-updater** - In-app update mechanism 34. **034-crash-reporting** - Error reporting and recovery 35. **035-performance-profiling** - Optimize rendering and memory ### Deliverables - Runs in background - Notifications for session activity - Auto-updates on launch - Crash logs captured - Smooth performance with large sessions ### Success Criteria - App feels native to platform - Updates seamlessly - Crashes don't lose data --- ## Phase 8: Advanced Features (Week 8+) **Goal:** Beyond MVP, power user features ### Tasks 36. **036-virtual-scrolling** - Handle 1000+ message sessions 37. **037-message-search-advanced** - Full-text search across sessions 38. **038-workspace-management** - Save/load workspace configurations 39. **039-theme-customization** - Custom themes and UI tweaks 40. **040-plugin-system** - Extension API for custom tools ### Deliverables - Virtual scrolling for performance - Cross-session search - Workspace persistence - Theme editor - Plugin loader ### Success Criteria - Handles massive sessions (5000+ messages) - Can search entire project history - Fully customizable --- ## Parallel Tracks Some tasks can be worked on independently: ### Design Track - Visual design refinements - Icon creation - Brand assets - Marketing materials ### Documentation Track - User guide - Keyboard shortcuts reference - Troubleshooting docs - Video tutorials ### Infrastructure Track - CI/CD pipeline - Automated testing - Release automation - Analytics integration --- ## Release Strategy ### Alpha (After Phase 3) - Internal testing only - Frequent bugs expected - Rapid iteration ### Beta (After Phase 6) - Public beta program - Feature complete - Bug fixes and polish ### v1.0 (After Phase 7) - Public release - Stable and reliable - Production-ready ### v1.x (Phase 8+) - Regular feature updates - Community-driven priorities - Plugin ecosystem --- ## Success Metrics ### MVP Success - 10 internal users daily - Can complete full coding session - <5 critical bugs ### Beta Success - 100+ external users - NPS >50 - <10 bugs per week ### v1.0 Success - 1000+ users - <1% crash rate - Feature requests > bug reports --- ## Risk Mitigation ### Technical Risks - **Process management complexity** - Mitigation: Extensive testing, graceful degradation - **SSE connection stability** - Mitigation: Robust reconnection logic, offline mode - **Performance with large sessions** - Mitigation: NOT a concern for MVP - defer to Phase 8 - Accept slower performance initially, optimize later based on user feedback ### Product Risks - **Feature creep** - Mitigation: Strict MVP scope, user feedback prioritization - **Over-optimization too early** - Mitigation: Focus on functionality first, optimize in Phase 8 - Avoid premature performance optimization - **Platform inconsistencies** - Mitigation: Test on all platforms regularly --- ## Dependencies ### External - OpenCode CLI availability - OpenCode SDK stability - Electron framework updates ### Internal - Design assets - Documentation - Testing resources --- ## Milestone Checklist ### Pre-Alpha - [ ] All Phase 1 tasks complete - [ ] Can create instance and session - [ ] Internal demo successful ### Alpha - [ ] All Phase 2-3 tasks complete - [ ] MVP feature complete - [ ] 5+ internal users testing ### Beta - [ ] All Phase 4-6 tasks complete - [ ] Multi-instance stable - [ ] 50+ external testers ### v1.0 - [ ] All Phase 7 tasks complete - [ ] Documentation complete - [ ] <5 known bugs - [ ] Ready for public release