The Rocket.Chat Apps Team is responsible for the Apps-Engine framework, which allows developers to make plugins (apps) to extend Rocket.Chat's functionality without having to deep dive into the core codebase. Along with the framework itself, we work on official integrations through the Apps-Engine, maintain the tooling around it and integrate Rocket.Chat with our Marketplace.


We have some recurring calls to talk about our work:

  • Mondays 10am (BRT) - Planning - We have a quick update in our progress and plan out the activities for the week

  • Wednesdays 10am (BRT) - Docs Review / Issue Triage - We alternate between these two meetings each week. Docs Review we review our progress with documenting the framework and delegate new pages to work on if we have the bandwidth; Issue Triage is where we go through some of our repo's issues, responding and prioritising as possible

  • Fridays 10am (BRT) - Retrospective - It happens once every two weeks, we go over our workflow for the last two weeks and identify what we did well, what didn't go so well, and define action items on how we can improve those points


Our dailies are not synchronous; instead we fill out a doc in ClickUp. Some best practices when writing up your daily sync:

  • Describe how you progressed in the last day - This does not necessarily mean "code you've written" - it can be any type of progress: an RFC you've drafted; a flowchart you've sketched in your notebook; new sub-tasks you've realised are going to be needed for you current task. Anything, really! A bit of context is important here, but not too much is required, as we should have discussed the task in detail in the planning previous to it;

  • Highlight any items that look like a blocker - This is really important - if you've identified anything that hasn't been brought to light during the planning, share it. If you got into some code you've found confusing, share it. If you don't feel confident in the approach you're following now, definitely share it. This way the team will be able to help you out and the blockers will be clear to everyone.

Team members should fill out the doc in ClickUp when they start working. At 10:30am (BRT) the full excerpt for the day will be shared in our internal channel in the Open server, at which time all members should review what others have written and start any applicable discussion.

Other Activities

  • You SHOULD check Rocket.Chat for announcements or to answer any pending questions when you start working and before you finish your shift at least. You are, of course, encouraged to engage in any conversation on your channels whenever you like. Please note you are not expected to be always active in chat. Everyone needs time to focus on the task at hand, this is just a rule of thumb so you don't miss out or leave anyone hanging/blocked.

  • You SHOULD push your code to the upstream before you finish your working hours. This way, if anything critical happens, someone else can take over the task you were working on if needed.

Contribution Workflow


New contributions will most likely start with a new git branch. We don't have strict rules for naming a branch, but here are some suggestions:

  • feat/* if you'll be working in new feature

  • fix/* if you'll be working on a fix

  • regression/* if you'll be working on a regression in the current release

  • just use a custom name, without the "folder format", if it doesn't fit the suggestions above