Proposal: Potential Roadmap.md
Hi, all.
I'm loving the app, which I've just discovered. I wanted to help a bit, but can't code. I've had a look at the readme and the open issues, and tried to understand how the app could be made even better. I've used AI to format this. I hope it's helpful, if not, please close and accept my apologies.
Chris
I wanted to propose creating a `ROADMAP.md` file to help users and contributors understand where Cardinal is heading. This isn't about committing to deadlines—it's about giving people clarity of the vision and priorities.
## Why a Roadmap?
- **Helps new contributors** find meaningful work aligned with project goals
- **Manages user expectations** about what's coming vs. what works today
- **Guides decision-making** when choosing between competing priorities
- **Shows project momentum** to potential users and contributors
## Proposed Structure
I suggest organizing our roadmap by **maturity phases** rather than dates, since we're working with variable resources. Here's a draft:
---
# Cardinal Maps Roadmap
This roadmap reflects our current priorities and vision for Cardinal Maps. We're a community-driven project, so timelines depend on contributor availability. Want to help? Pick an issue and jump in!
## Phase 1: Foundation - Rock-Solid Core Experience
**Goal:** Make the existing features reliable and polished before adding new ones.
**Why this matters:** Users need to trust Cardinal for basic navigation before they'll explore advanced features.
### Critical Reliability Fixes
- [ ] Fix app crashes when planning trips for later (#99)
- [ ] Resolve startup crash race condition (#18)
- [ ] Improve search reliability - users must be able to find their destinations (#76)
- [ ] Fix slow rerouting when user deviates from route (#33)
- [ ] Prevent sudden route changes in wrong direction (#74)
- [ ] Improve ETA accuracy (#75)
- [ ] Fix audio playback resumption after navigation announcements (#98)
### User Experience Polish
- [ ] Better error messages for long routes instead of technical errors (#89)
- [ ] Fix navigation bar emphasis to follow selected tab (#22)
- [ ] Localize offline download service strings (#96)
- [ ] Handle dark mode preferences properly (#78)
- [ ] Fix favorites management issues (#82)
### Search Improvements
- [ ] Handle apostrophes in place names correctly (#49)
- [ ] Deliver better Point of Interest search results (#28)
- [ ] Include country information in all map pins (#80)
---
## Phase 2: Offline-First - Deliver on the Privacy Promise
**Goal:** Make Cardinal the best offline navigation experience available, truly respecting user privacy.
**Why this matters:** Privacy and offline capability are our key differentiators. We should excel here.
### Intelligent Offline Downloads
- [ ] Auto-download map and routing tiles along routes when navigation begins (#92)
- [ ] Download high-detail map tiles along route for navigation (#50)
- [ ] Use offline mode as fallback when online reroute is slow (#93)
- [ ] Perform continuous map matching in navigation using offline Valhalla (#94)
### Offline Infrastructure
- [ ] Overhaul offline geocoder (#9)
- [ ] Remove internet dependencies for glyphs and fonts (#8)
- [ ] Implement map matching prior to reroute (#5)
---
## Phase 3: Navigation Features - Match Users' Expectations
**Goal:** Add the features people expect from a modern navigation app.
**Why this matters:** These features are table stakes for daily-use navigation apps.
### Speed & Safety
- [ ] Display real-time speed (#85)
- [ ] Display speed limits on the map (#68)
- [ ] Show warning when exceeding speed limit (#69)
- [ ] Show user when they're going the wrong direction (#72)
- [ ] Rotate user icon according to direction they're facing (#73)
### Visual Improvements
- [ ] Fix roundabout illustrations (#70)
- [ ] Mark destination with a flag (#83)
### Destination Features
- [ ] Suggest car parks and parking spaces near destination (#84)
- [ ] Enable POI search around a dropped pin (#90)
---
## Phase 4: Sharing & Social - Connect with Others
**Goal:** Let users share locations and plans with friends and family.
**Why this matters:** Navigation is often collaborative—people need to share where they are and where they're going.
### Location Sharing
- [ ] Share one's current location (#86)
- [ ] Share a pin's location (#87)
- [ ] Share a POI's location (#88)
---
## Phase 5: Advanced Features - Going Beyond the Basics
**Goal:** Add features that make Cardinal Maps truly exceptional.
**Why this matters:** These features will delight power users and expand Cardinal's capabilities.
### Transit Integration
- [ ] Show public transport directions by default (#27)
- [ ] Consider integrating Transitous API (#100)
### Traffic & Routing
- [ ] Add traffic data (#95)
### Cloud Features
- [ ] Add authentication and user accounts (#11)
- [ ] Implement favorites backup & sync with Murena Workspace (#10)
---
## Ongoing Priorities (No Specific Phase)
These items should be addressed continuously throughout development:
### Code Quality
- [ ] Add detekt unused/dead code lints (#24)
- [ ] Keep localization up to date (#32)
### Documentation
- [ ] Update app to point to GitLab instead of GitHub (#101)
---
## How We Prioritize
Our prioritization follows these principles:
1. **Reliability first** - Crashes and broken core features block everything else
2. **Privacy & offline** - Our differentiators deserve excellence
3. **User expectations** - Features people assume exist should come before nice-to-haves
4. **Community input** - We listen to user feedback and contributor interests
## Contributing
See an issue that excites you? Jump in! Here's how:
1. Comment on the issue to let others know you're working on it
2. Check if there's related work in other issues
3. Read our [CONTRIBUTING.md] for development guidelines
4. Ask questions if anything is unclear
**New to the project?** Look for issues tagged with "good first issue" or reach out and we'll help you find something suitable.
---
## Questions or Feedback?
This roadmap is a living document. If you think we should reprioritize, add items, or change direction, please open an issue or comment below. Cardinal is a community effort—your input shapes where we go next.
task