OpenVeda Playbook: Rocket.Chat
Your complete guide to contributing to the world's leading open-source team communication platform.
1. The "Why": Building the Future of Open Communication
- The Mission: Rocket.Chat's mission is to create a secure, flexible, and open-source alternative to proprietary communication platforms like Slack and Microsoft Teams. It's about giving organizations full control over their communication data.
- Your Impact: You'll be working on a real-time application used by millions of people in companies, universities, and communities worldwide. Your code will directly impact how teams collaborate, share files, and communicate securely.
- Why it's a Career Supercharger: This is a fantastic opportunity to gain deep, hands-on experience in a complex, full-stack JavaScript/TypeScript ecosystem. Working on a real-time app with features like video conferencing, live chat, and a rich integration marketplace is a huge learning experience and a massive resume booster for any web developer role.
2. The "What": A Modern JavaScript Powerhouse
- Core Technology: The entire platform is built on JavaScript and TypeScript.
- Backend: Node.js with the Meteor.js framework. This is a unique full-stack framework that handles real-time data synchronization.
- Frontend: React and Blaze.js (the original UI library for Meteor, now being migrated to React).
- Mobile Apps: React Native.
- Database: MongoDB.
- Key Tools: GitHub for all source code and issue tracking.
3. The "How": Your Complete Rocket.Chat Onboarding Journey
3.1: Join the Community
Their community server is where all development discussion and real-time help happens.
- Primary Channel (Live Chat): open.rocket.chat. This is their own public server.
- Your First Action: Once you join, find the
#gsocor#developerschannels. Post a clear introduction.Template: "Hello everyone! I'm Ayush, a developer from India. I'm excited to start contributing to Rocket.Chat for Hacktoberfest. I have experience with React and Node.js. I'm currently setting up the dev environment and looking for a good first issue. Looking forward to being part of the community!"
3.2: The Foolproof Environment Setup
They provide a simple script to get you started, but the Node.js version is critical.
- Prerequisites: You need Git, Node.js, and npm/yarn.
- CRITICAL - Node.js Version: Rocket.Chat is very specific about its Node.js version. Before you do anything, check the
.nvmrcfile at the root of their repository.- Action: Run
nvm installin the project directory. This will automatically install the correct Node.js version. Then runnvm use.
- Action: Run
- Fork & Clone: Fork the Rocket.Chat repo on GitHub and clone your fork locally.
- Navigate into the folder:
cd Rocket.Chat - Install Dependencies: Run
yarn. This is a large project and will take several minutes. - Run the Development Server: Run
yarn dev. This command starts all the necessary processes. - Access: Open your browser and go to
http://localhost:3000. You should see the Rocket.Chat setup screen!
- Official Guide (for reference): Rocket.Chat Developer Documentation
- Common Troubleshooting Tip: 99% of setup issues are caused by using the wrong version of Node.js. Using
nvmas described in Step 2 is not optional; it is mandatory for a successful setup.
3.3: The Contribution Workflow
Standard GitHub PR flow, targeting the develop branch.
- Find & Claim an Issue: Find an issue with the "good first issue" or "help wanted" label. Comment to claim it.
- Create a Branch:
git checkout -b feat/your-feature-name. Make sure your branch is based on thedevelopbranch. - Code & Test: Make your changes. Run the local tests (
yarn test). - Commit & Push: Commit with a clear message following their guidelines (they use Conventional Commits) and push to your fork.
- Open a Pull Request: Open a PR against their
developbranch. Fill out their PR template carefully, linking the issue. - Engage in Review: The team is very active. Respond to feedback and make necessary changes.
4. GSoC History & Focus Areas
- Historical Focus: Rocket.Chat is a veteran GSoC organization. Projects often involve building new integrations (bots), improving the mobile app experience, adding new chat features (like threading or video conferencing improvements), and refactoring older parts of the codebase to modern React.
- What Mentors Look For: Independence and good communication. They want to see that you've read the documentation and tried to solve problems yourself before asking for help. When you do ask, be very clear and provide logs and screenshots. Making a small, successful contribution before GSoC is a huge plus.
5. Key Repositories to Know
- Main Monorepo: github.com/RocketChat/Rocket.Chat - The main server and web client.
- Mobile App: github.com/RocketChat/Rocket.Chat.ReactNative
6. Find Your First Task Right Now
- The Golden Link: Issues tagged "good first issue"
- Help Wanted: Issues tagged "help wanted" are also excellent for newcomers.
7. The Unwritten Rules (Mentor Insights)
- The
developBranch is King: All PRs must be made against thedevelopbranch, notmaster. - UI/UX Matters: Rocket.Chat has a design system. If you're making a UI change, make sure it's consistent with the rest of the application. A screenshot or GIF in your PR is highly recommended.
- Patience with the First Build: The first time you run
yarnandyarn dev, it can take a very long time (10-15+ minutes) to download and build everything. This is normal. Be patient.