-
Notifications
You must be signed in to change notification settings - Fork 140
free4chat Roadmap: Embracing Jodel-like Anonymous Room Chat #34
Description
free4chat Roadmap: Embracing Jodel-like Anonymous Room Chat
Project Goal: To transform free4chat into a minimalist, room-based anonymous chat platform, inspired by Jodel's core functionalities, while maintaining a focus on privacy and ease of use. Location-Based Services (LBS) will be intentionally omitted in the initial phases to prioritize core anonymity and simplify development.
Core Principles:
- Anonymity First: User privacy and anonymity are paramount. No personal information collection or tracking.
- Room-Based Community: Rooms are the central organizing unit, replacing location-based channels.
- Simplicity & Ease of Use: Keep features minimal and user interface intuitive for rapid adoption and development.
- Open Source & Community Driven: Encourage community contributions and feedback to shape the project's evolution.
Roadmap Phases:
Phase 1: MVP - Core Room-Based Anonymous Chat (Focus: Web Platform)
-
Objective: Establish a Minimum Viable Product (MVP) that delivers the fundamental Jodel-like anonymous room chat experience on the web, leveraging existing
free4chatWebRTC infrastructure. -
Features to Implement (Based on existing TODOs):
- Room Management:
- [x] Public Room Listing: Implement a simple interface to list available public rooms. (Based on "Public rooms discovery, like hot room list or filter rooms by type/tag" TODO)
- [x] Room Creation: Allow users to create public rooms with a user-defined name/topic.
- [x] Room Joining: Enable users to anonymously join public rooms.
- Anonymous Room Chat:
- [x] Anonymous Text Chat in Room: Utilize existing text chat functionality within rooms, ensuring anonymity.
- [x] Anonymous Voice Chat in Room: Utilize existing voice chat functionality within rooms, ensuring anonymity.
- [x] Emoji Support in Text Chat: Retain emoji support in text chat for richer communication.
- [ ] Persist text messages to browser localStorage (Optional for MVP): Consider adding local storage persistence for text messages if time allows, but not critical for MVP.
- Basic Room Interaction:
- [x] Send Text/Emoji Messages: Ensure users can send text and emoji messages within rooms.
- [x] Voice Communication: Ensure users can engage in voice chat within rooms.
- Room Management:
-
Technical Tasks:
- Frontend (React/Next.js):
- Develop UI for room listing, creation, and joining.
- Adapt existing chat UI to function within the room context.
- Backend (Elixir/Phoenix):
- Implement room management logic (creation, listing, joining).
- Ensure seamless integration with existing WebRTC voice and text chat functionalities within the room context.
- Refactor room discovery mechanism to be room-based instead of location-based.
- Frontend (React/Next.js):
-
Deliverables for MVP:
- Functional Web platform where users can:
- View a list of public chat rooms.
- Create new public chat rooms.
- Join public chat rooms anonymously.
- Engage in real-time text and voice chat within rooms anonymously.
- Functional Web platform where users can:
Phase 2: Iteration & Refinement - Enhancing Room Experience (Focus: Web Platform)
-
Objective: Improve the user experience within rooms and add essential features based on initial user feedback and community input.
-
Features to Implement:
- Room Features Enhancement:
- [ ] Room permission setting, like public/private type setting: Implement private rooms with password protection for more controlled conversations. (Based on existing TODO)
- Private rooms should not be listed publicly.
- Password mechanism using End-to-End Encryption (as described in existing TODO) for enhanced security.
- [ ] Room Topic/Tags: Allow room creators to add topics or tags to rooms for better categorization and discoverability.
- [ ] User List in Room (Optional): Consider adding a simple user list within rooms (with anonymous identifiers) to show who is currently participating, if privacy considerations allow.
- [ ] Room permission setting, like public/private type setting: Implement private rooms with password protection for more controlled conversations. (Based on existing TODO)
- User Experience Improvements:
- [ ] Persist text messages to browser localStorage (If not implemented in MVP): Implement local storage persistence for text messages to improve user experience.
- [ ] Safari (WebKit) Compatibility: Improve compatibility with Safari and WebKit-based browsers. (Based on existing TODO)
- Moderation & Community Tools (Basic):
- [ ] Report/Flag Message (Basic): Implement a basic message reporting mechanism for users to flag inappropriate content.
- [ ] Room Description/Rules (Optional): Allow room creators to add a description or basic rules for their room.
- Room Features Enhancement:
-
Technical Tasks:
- Frontend:
- Implement UI for private room creation and password entry.
- Develop UI for room topic/tag display and selection.
- Enhance chat UI based on user feedback.
- Backend:
- Implement private room logic and password verification.
- Add backend support for room topics/tags.
- Implement basic moderation features (message reporting).
- Frontend:
-
Deliverables for Iteration Phase:
- Enhanced Web platform with:
- Private and public rooms.
- Room topics/tags for better discovery.
- Improved user experience based on initial feedback.
- Basic moderation tools.
- Enhanced Web platform with:
Phase 3: Future Exploration - Advanced Features & Extensibility (Web & Potential App)
-
Objective: Explore more advanced features and functionalities, potentially including real-time collaboration, AI integration, and considering a future mobile app version, based on community interest and resources.
-
Features to Explore (Based on existing TODOs & new ideas):
- Advanced Communication Features:
- [ ] Can send arbitrary data by WebRTC datachannel: Explore and potentially implement the ability to send arbitrary data via WebRTC data channels for future feature expansions.
- Real-time Collaboration (Optional, Explore if Community Interested):
- [ ] User real-time collaboration, like whiteboard: Investigate and potentially implement real-time collaboration features like a whiteboard, using CRDTs or other suitable technologies (as listed in existing TODOs).
- AI Robot Integration (Optional, Explore if Community Interested):
- [ ] AI Robot user, like game robot who can play or facilitate game: Explore the integration of AI robots for games or other interactive experiences within rooms (as listed in existing TODOs).
- Security & Privacy Enhancements:
- [ ] Security enhancement, like coturn TLS setup, end-to-end encryption, etc.: Implement security enhancements, including TURN TLS setup and exploring end-to-end encryption for all communication (as listed in existing TODOs).
- [ ] Privacy enhancement: Continuously evaluate and implement privacy enhancements.
- [ ] TURN enable TLS: Enable TLS for TURN servers for improved security (as listed in existing TODOs).
- [ ] IPV6 support: Explore and implement IPV6 support (as listed in existing TODOs).
- Mobile App (Future Consideration):
- [ ] Explore feasibility of developing a mobile app (Android/iOS) based on the Web platform.
- Advanced Communication Features:
-
Technical Tasks:
- Research and Experimentation: Investigate CRDTs, AI integration, advanced security, and mobile app development frameworks.
- Community Engagement: Gather community feedback on desired advanced features and prioritize based on interest and feasibility.
- Iterative Development: Implement selected advanced features in iterative cycles, focusing on quality and user experience.
-
Deliverables for Future Exploration Phase:
- Potentially enhanced Web platform with advanced features (depending on community interest and feasibility).
- Feasibility study and potentially a basic mobile app version (depending on resources and community interest).
- A more robust and feature-rich anonymous room-based chat platform.
Key Considerations:
- Minimalism: Throughout all phases, maintain a focus on simplicity and avoid feature creep.
- Community Involvement: Actively engage with the open-source community for contributions, feedback, and collaborative development.
- Prioritization: Focus on completing MVP features first, then iterate based on user feedback and community priorities.
- Flexibility: This roadmap is a guide, be prepared to adapt and adjust based on technical challenges, community feedback, and evolving project goals.