Episode 9: Rocket.Chat – Open Source Enterprise Team Chat with Gabriel Engel

Gabriel Engel is the Founder and CEO of Rocket.Chat, one of the most popular open source chat platforms on the Internet. Rocket.Chat is used for secure team communication by companies and individuals from a variety of sectors ranging from education and technology, to financial, non-profit, governmental and public services.

Transcript

Intro

Michael Schwartz: Welcome to Open Source Underdogs, the podcast where we find the founders of open source software companies and hold them up for their business model insights.

Today my guest is Gabriel Engel, Founder and CEO of Rocket.Chat.

With almost 500 contributors on GitHub and 50,000 monthly downloads, Rocket.Chat is one of the most enthusiastic open source communities around.

We’ve been using Rocket.Chat at Gluu for a while, and we love it. Who needs Skype or Slack?!

You might hear some clinking in the background – this podcast was recorded at the 2018 All Things Open Conference.
So without further ado, here we go. Gabriel, thanks so much for joining us today.

Gabriel Engel: Thanks for having me.

Origin Story

Michael Schwartz: Can you tell us just to get started a little bit about how Rocket.Chat got founded and what did you do before Rocket.Chat?

Gabriel Engel: Yes, of course. It started actually on a website of another company that I was running before, and it came because of the demands of our customers.

We were designing or developing CRM tools and business management tools for a small and medium enterprise, and they were always asking a way that they could talk to their customers on the website and have those little widgets. And at the same time, the people that would be talking to the customers, wanted to talk among themselves.

So we looked at what was available, and we’d either had software where it was designed for help desk, where you can only talk to your customer, but if you want to talk to a colleague, you have to jump into something else and then talk to your colleague. And all those were really hard to integrate to a CRM tool to gather data in the context of the conversation that the data would be displayed.

Maybe we were a bit naïve, but we decided we could do one ourselves since we didn’t find any. And then we ended up developing it. We published as open source because we really liked what we built, and we thought since this was the first time that we built something real, it’s time that someone could help us improve find all the the mistakes that we’ve done, trying to build such a software.

And when we published it, in 24 hours, there was already 30,000 downloads, and people were thinking it was awesome, giving us amazing feedback, then we decided to pivot and focus on that product.

Michael Schwartz: How did you get into the software business?

Gabriel Engel: In my childhood, my father had a software business, so I grew up going to the office with him and playing around the developers and learning how to develop.

I think the first thing I tried to do was just like a menu so I could run all my games from UI – that was the time before Windows when you had to run all your games from the command line, and I wanted to have UI to select my games or develop a little software so I could have a list of my games.

I guess I grew up developing.

Michael Schwartz: Born coding.

Gabriel Engel: Born coding. And that’s why I didn’t even do coding – in Computer Science university I went to do business management because I kind of naively thought that I knew enough of developing already, and that I wanted to learn the business side of things.

Customers

Michael Schwartz: Who are the customers of Rocket.Chat today?

Gabriel Engel: It’s a very broad spectrum, we have companies, like a Deutsche Bahn in Germany, which is like they run all the trains and the public transport in Germany, like 300,000 people.

We have banks in Brazil and US, we have hospitals. There’s always two, three guys that want to run and customize their collaboration platform, and we have a lot – which I find very interesting – a lot of startups which are running Rocket.Chat, not as an internal communication tool, but as an add-on for their own product.

So every time they design a product around a service, and they want their customers to be able to talk to each other, they get a white label version of Rocket.Chat, integrate the user base, and then become the chat part of that solution. We single signed-on all this behind.

Customer Segments

Michael Schwartz: Do you segment the customers’ markets at all, like vertically, or by use of the product?

Gabriel Engel: We are starting to, mainly because we found that actually helps the users to understand, to see their own challenges, so we’re producing a new part of the website, we have different solutions for different types of customers, because now we learn what they are looking for in the software.

Until now, it was a lot of work for us to talk to them and then explain how they could use our tool for that specific use case, so you want to put more of the use cases on the website.

Also we’ve already seen that the older toolkits were so different, even on the setup wizards. We are asking for the size of the company and the industry they’re working on so we can actually customize the setup, based on the usage and the size of the organization.

Michael Schwartz: Do you see any commonality among the types of customers who want to operate their own communication platform?

Gabriel Engel: Well, yes.

Usually, there is some specific industries where we have more value, like financial sector, usually they put a high value on privacy.

Some high-tech industries, like Intel or HTC. HTC is not one of our customers. For Intel, we are running protocols, so I think they put a high value on what engineers are talking, and they don’t want anyone else outside that organization to have access to that conversation, a healthcare – there is a range of organization where privacy is high value.

Balancing Community Versus Enterprise

Michael Schwartz: So, there’s a huge open source community for Rocket.Chat, and Gluu’s also a Rocket.Chat community – how do you balance serving customers and serving the open source community?

Gabriel Engel: The open source community for us is pretty much everything, and the company would not exist without the community.

It was the community that gave us not just the visibility of the project, by using and talking about and helping to share and promote, but also so many of the features were developed by the community.

One of the things that I tried to learn earlier, and I went to visit the guys in MongoDB and Elasticsearch, talking to the VP of product and the commercial guys, “How do you balance between what you charge for and what you keep free in a community edition?” And they were always talking like, “You’re going to see quite clearly things that large enterprises are looking for, what they need, and are willing to pay for it.”

We found out that with few banks and larger organizations where it’s free, that it is not a good price for them because then you don’t have an SLA, you don’t have someone to call when things go wrong.

They wanted to pay, and there was a few features which many large organizations wanted, like being able to do a complete auditing on the message, or all the employees, or track some of the conversations for a regulatory reasons, where you have to have a history of the conversation of the sales people with the clients, and so on. And they wanted those features, the community didn’t even care.

Usually, it’s one smaller community, they are talking to each other, they’d rather not have that feature – so it was clear, “Okay this is a feature that we can charge for. The community is not interested, but organizations are willing to pay for, and they want to have a price value.”

That was the way we balance what are the big guys asking that the small or medium-sized companies are not asking for, so we can put that in the enterprise version and charge for it.

Customer Interaction

Michael Schwartz: How do you interact with customers?

You mentioned that larger customers get an SLA, community maybe has forums, you are a chat company so maybe you offer chat – but can you talk a little bit about the range of customer interactions that you can have based upon the business model?

Gabriel Engel: I guess one thing that is our favorite from the beginning, from being a chat company, is that we gather all our community on our own chat platform.

I like sometimes to talk about – like, it is loop, where people would come to the chat to talk to us, the community was using it to self-organize. And if there was any feature that was missing, or making it harder for us to organize and collaborate, we would fix the tool that was making us get better organized and collaborate better.

So it’s almost like this feedback loop of improving the tool, getting more organized to improve the tool. And that was a key part, first eating our own dog food.

And we’ve seen other projects, where they were using a different platform to communicate with the community than the product itself, which first didn’t make much sense.

We soon realized that chat is great for real-time communication, but still sometimes people would miss the fact of having sometimes a forum, to have some of the conversation in a way that you could be referenced is slightly better, so we ended up creating a forum lately this year.

And we still have some email support that we created mainly for the enterprise, but we decided that we would allow even the community if they needed to send an email, going to the same Q, just different SLA.

When our support people have a spare time, they would get Q from the other communities and would try to answer those. Mainly on the chat we have a support channel, and channels for each of the components, so people can go there and talk to the developers.

And the forum sometimes, it’s just for discussion about a feature, or like a change, they want more people to be able to write more and take more time to gather input and an opinion. And email sometimes, it’s just mainly because of some people if they want to open a ticket, to send an email to our support team.

Revenue Streams

Michael Schwartz: Can you just broadly define what are the revenue streams for Rocket.Chat, like what do you actually sell?

Gabriel Engel: We’ve started with what was the easiest one, which is a SaaS version of Rocket.Chat.

So we have this cloud components, the Rocket.Chat is a service that is a starting point, but we don’t think this is going to be the main revenue generator because this is mainly just a way to get people to try Rocket.Chat, to experience or/and have a minimum revenue for entrance to join the network. So this was the initial one.

The second then is this support model contract with a few features for the larger and medium enterprise, which then, it’s is growing and is becoming quickly our main revenue service.

And the third one that we are launching is the marketplace, where we are going to be publishing our plug-ins and integrations free, but we are going to allow people to publish with a license for charging people, based on a user account or server account, their own public plug-ins, and integrations, and extensions.

In a way, when I think back, I always said we based our revenue model into WordPress, Automattic. So they have a SaaS version, they have a marketplace for plug-ins and extensions, and they have a support brand for large corporations.

So we inspired our business model in WordPress. We like to say we are the WordPress of chats.

Michael Schwartz: Do you think you’ll launch your own commercial plug-ins?

Gabriel Engel: We want to turn some of the features that we developed for enterprise, to be turned into plug-ins, mainly because we think we need to keep a single-code base, we don’t want to have different code bases for enterprise or for community.

What we want to do is, when you buy the enterprise support, you’re going to get the license for a few of the plug-ins that are on the marketplace.

For example, this auditing tool for messages, it’s going to be a plug-in. This way, you reduce the barrier for someone to migrate from the community to start paying you something. You want to have like a very low entry point.

So I just want this little feature for the enterprise, then you can just buy that later feature for a very small amount. And then if you want more features of the enterprise, you can keep installing and installing them. And maybe if you don’t use one of them, you can uninstall that feature, and that would affect your monthly plan.

So in the future, it’s going to be all plug-in, sometimes free, sometimes commercial.

Value Proposition

Michael Schwartz: It’s a competitive market. Everyone knows Slack, there is Mattermost, whom we interviewed last season. What’s the value proposition for Rocket.Chat, while your customers downloading, installing, and adopting Rocket.Chat?

Gabriel Engel: We designed the whole system to be more than just an app for collaboration, we designed it to be a messaging platform that you can integrate into different entry points, and be a hub.

So Rocket.Chat, we can already integrate, even with your Facebook page, with your WhatsApp for business profile, your telegram business account – you can have all these entry points to talk to the customers.

We designed API, the bots, also could be a first to talk to your customers on the platform, talk to your people. And we designed it in a way where you can turn a platform easier to make it a white label, as well as your company, it’s really on Messaging Collaboration Platform, we are deploying the federation protocol, so Rocket.Chat service can talk to each others, or each organization can share channels with other organizations. Each one running their own server, but having a federation protocol to be able to talk to each other.

So we are seen more of an engine for communication than just the app, but it comes out of the box with the features and the UI that you already expect from Slack, but then that’s just the beginning.

You can take that a lot further and connect with everything you want, even email as well, connect and receive email messages inside Rocket.Chat.

Unexpected Applications

Michael Schwartz: Have any of the deployments of Rocket.Chat surprised you, maybe when you’re saying people used the platform for something you hadn’t anticipated?

Gabriel Engel: Yes, there’s a few, like dating websites.

Looking back, it’s quite obvious, but some people created Rocket.Chat for hospitals, where they changed the channel model, where each patient becomes a channel, so the doctors and the nurses inside that channel and even the X-ray machines posting the exam results in that channel.

They just changed the focus.

And then we’re seeing the Rocket.Chat for universities, where each class then becomes the channel. There is some interesting change where people get the platform, but they adapt that specific industry and put their, whatever is the main focus of that, whether it’s patient-centric or student-centric, into the organized flow of information. I think that’s very powerful.

Challenges of Entrepreneurship

Michael Schwartz: So entrepreneurship is more challenging than most entrepreneurs realize that when they got into it. What have been some of the challenges of entrepreneurship for you and starting the company?

Gabriel Engel: So I guess in the beginning, we were very limited on resources, we were just a small company and we were making ends meet.

It was really hard, and then it took until the project got some momentum for investors to come to talk to us, and then come and start offering, that they wanted to invest. That was an amazing experience, being actually chased by investors that wanted to participate.

Then we got into this new phase, where we had enough capital to do our plans and to grow and invest in a project fast, but then there were different challenges, like how you hire the right people when you want to grow that fast, to hire that many people in a short period of time, but you keep the DNA of your company and to keep the people you are working with the same.

We had some interesting experiences, we hired a lot of people and some people would end up not fitting, and then you have the experience of having to let them go. And sometimes they’re good professionals, but they just do not fit the culture in the way you want your company to be.

Then you start learning how to hire, and even moving from a five-person company, where you are the center of everything and it’s easy to know what everybody’s doing, and everybody relies on you for decisions, and then when you go to 40 people – that transition is harder than I was expecting. Because normally everybody was just waiting for my decision, and then delegating, it’s harder.

That’s been one of my learning this year, it’s how to delegate. And delegate is not just tell people to do something, you have to teach them your decision-thinking and matrix so they can feel comfortable that they are not asking you but they know what the goal of the company is, how the company should make the decision, what are the values or what is important – it is harder than it looks and than I expected.

Should I Start That Business

Michael Schwartz: If you are talking to a young entrepreneur, are you going to recommend them to start a company?

Gabriel Engel: Unless they’re following something, a problem that they really love to solve, and they’re not seeing anyone solving it, and it’s something that they feel really, really excited about, then I would recommend them they start a company to do that.

But if they’re starting a business just because they think it’s cool to start a business, I would say don’t do it.

Because you’re going to need more than just the, “Oh, it’s nice to be able to keep with the challenges, you need something that you really love to get you through the hardest moments.”

So, yeah, it really depends on how much you love the problem that you are solving, rather than just thinking that is cool.

Challenges Of Brazil

Michael Schwartz: You are from Brazil – are there any challenges specific to Brazil that you’ve encountered or maybe just starting…?

Gabriel Engel: What is not a challenge in Brazil?

We have a saying in Brazil: “Brazil is not for amateurs.” Because everything can get rather complicated, even to start a business in Brazil.

I remember, in the UK, it took me 20 minutes on a website to open my own company when I was living there. And then I had everything in the mail the next day, and I had the company running.

In Brazil, it can take up to three months just to open the business, and you have to hire an accountant, it’s so much paperwork just to get the business there. To close it – it’s even a worse story.

Sometimes they say, “In Brazil, you open a company but you never close it.” So think twice when you’re opening a business. In Brazil, the labor laws make it a lot harder to get the type of a relationship with your developers that people are used to here in US or other countries.

In Brazil, the timekeeping of the developers, they have to do those clock – how they call it?

Michael Schwartz: Time cards or punch cards.

Gabriel Engel: Yeah, punch cards, which really is not what I expect on a startup, when our developers are stressed and we need to asked them to do punch cards.

I had that experience once, my accountant told me, “oh, you need to do the punch cards, you need to do the punch cards.” Then I asked my developers to do that, and it completely changed the relationship, they started to treat the company as a job rather than something that they were engaged in because they think, “okay, they are controlling me, so I’m just going to do my X hours a day, and leave in the middle of doing it.”

Because you have to do a punch card and leave, so we ended up deciding just to take the risk, saying we’re not the type of a company that will do punch cards. We’ll just ignore that part of the law.

And there’s a few other things about the amount of holidays that you need to get, how you take your holidays – everything is really restricted and not designed for a tech company. So you either ignore or you have a really strange relationship with your developers.

Geographic Distribution

Michael Schwartz: What’s the distribution of Rocket.Chat customers? I imagine it’s very global, but where do you see the concentrations?

Gabriel Engel: There is a concentration relatively in US, 30% of the users are in US, then Europe is another 30%, but it’s spread, like Germany is the top country, then UK, and France.

I think Germany has about 13% of the customers, and Brazil is only 1.8%. In Brazil, most people don’t even know that the company was founded by Brazilians. And there is a lot of like in India and China, spread all over.

But it’s almost evenly spread based on the size of the economy of each country. It’s interesting.

Partners

Michael Schwartz: How about partnerships? Do you have any channels who either integrate the product, or how’s it going with developing like partnerships and channel partners?

Gabriel Engel: What we started to do this year is try to get to the larger customers and enterprise, to channel partners, where they hold a relationship with those customers to resell our license and support, so they can do the implementation work, they can do customizations, because we felt that when we were trying to do this ourselves, it was taking too much time of our developers away from the projects.

It’s tempting because it’s kind of an easy money, and because the work is there, they have the budget, they want to pay you, but we found out that at the end that we were getting our developers to do all this work, and the project wasn’t developing enough because we were having to do specific projects for customers.

So we decided, “Let’s train partners around the world to do this.” You have a larger community that is economically healthy, you have more people selling and talking and doing a better job than we could remotely. And you could focus on the projects to help them sell more.

Then we found out that there were more productive arrangements. So now we do have channel partners that resell when we’re looking for more, and that’s how we think about going to expand to resellers and channel partners.

Sales

Michael Schwartz: What’s the sales strategy? Do you think that companies mostly find you and reach out to you? How does it work from I guess beginning to end of the sales process?

Gabriel Engel: Yeah. So far we are really reactive.

People were finding us, and then even larger corporations – we’d get a phone call or an email from, for instance, like Intel, the guys would actually say, “Oh, we’ve been trying Rocket.Chat for two months, and we want now to move to the next step and have the Enterprise Edition. We already decided – how can you proceed?”

It makes you think two things, like how open source is amazing, and the company is already trying and it has come to you on a late stage of the selling cycle, but also we found out how many people didn’t find, that were not participating, they didn’t even know that they were in this bid they were looking for.

So we are only this quarter hiring sales teams to start engaging with customers, trying to understand what their needs are and offer a solution to them.

But before we were really reactive, people were trying Rocket.Chat and then would come to us, asking for Enterprise and an SLA.

Now, we are organizing ourselves to start to promote the Enterprise version of SLA, and even looking to some customers that are leaving HipChat because Atlassian has killed the project. So actively trying to go, like, do those companies show that they have a good path to migration from HipChat to the Rocket.Chat.

Distributions

Michael Schwartz: You mentioned license before an Enterprise versus Community Edition, but you said there was only one edition.

Gabriel Engel: The source code is the same.

The only part is because the marketplace still cannot install all the components that we want, so the Enterprise Edition, we compiled the Community Edition and we just added some those plug-ins that we cannot distribute via the marketplace yet.

It’s a temporary fix to a technical challenge that we’re having on how to distribute Enterprise features to the marketplace when it’s not finished yet.

License Enforcement

Michael Schwartz: So there’s different bits, the base code is the same, but there’s the Enterprise different bits. Are you just controlling access to the bits or is there some type of license enforcement in that, too?

Gabriel Engel: There is a license that we generate that activates that component based on the number of users. It’s still early days, we’re playing with it, how are we going to be doing it, it’s on a git repository.

Nevertheless, that’s part of the plug-ins. But in this initial phase, we designed – because we wanted even other people to be able to put a license and then copy the model.

We were very inspired on how Atlassian did their own marketplace, where there are so many other companies selling plugins for Jira. And Tempo, for instance, is one of the massive plugins used by almost all Jira customers.

We thought, okay, if we were going to bring those guys to develop plugins for Rocket.Chat, we need to give them the same type of functionality, where we can generate their license that they can apply when installing the plug-ins.

We started getting, inspired by Atlassian, trying to copy how they work, and then we’ll see if our community shows and have a different demand that we can adapt to it. From the start, we decided to get inspired by something that is already working well.

Test Marketing

Michael Schwartz: Are there any other types of partnerships that you think have been helpful in developing the business?

Gabriel Engel: Yes, we have sometimes, even for a way to expose the product, we have offered Rocket.Chat as a service for a few communities and organizations to organize themselves, in a way the people in that community can see the tool to the value, and then learn more about our platform.

Some of those organizations are the ones that gave you the most valuable feedbacks because they value what they’re getting for us for free, because we’re not just giving a CloudBerry, and hosting, and deployment, and externalization for free.

So the way they would like to repay us is by giving us quality feedback, and getting engagement from the community to use the platform and give feedback. This have helped a lot in the building of the product and improving of the product to engage in this developing communities and business communities.

Open Source Development

Michael Schwartz: What are your thoughts about how the open source development methodology has helped the product?

Gabriel Engel: Definitely one thing that people talk about is how you need to be close to your customer, and open source makes that part a lot easier to be close to your customer when they are really using something that your developers are your initial main customers, because they’re going to be opening issues, they’re going to be talking a lot on the chat, and even opening pool requests.

So for the beginning, we have so many pool requests opened by the community, and that was even a lot more than we expected, and even from what some other projects expected.

I talk to other leads of open source projects, and sometimes they would ask me like, “Why do you guys get so much collaboration? There are many people actually helping you develop the product.”

And my opinion was like, first, we are really open to pool request, we always try help that the request gets approved. We go an extra mile to really try to have the developer fix the code, to get it into our code base, if it’s a feature that we think it’s nice and that our community will benefit from it.

But also because when people are using the tool so much, and if it’s something that is annoying, they are willing to collaborate and develop that. But it has completely shaped the project.

Some of our largest features were developed by companies using Rocket.Chat.

For instance, the global search that we added that can be powered by Solar, or Elasticsearch, or other full-text search databases, was developed by the community, specifically by Deutsche Bahn because they wanted to use that, and then they called back because for them Rocket.Chat is a tool that they use, rather than a product that they want to sell.

We have many of the largest features developed by the community, and then sent back to us by pool request, so it totally shaped us, made us get close to our customers, and made the customers being able to help shape the product in ways that we didn’t think before.

Current Progress

Michael Schwartz: How do you feel about where you are right now?

Gabriel Engel: Right now, we are transitioning.

In 2017, our focus was very much on growing the project features, growing the user base, and having a healthy community. And then in 2018, we started to focus on monetizing the tool.

Now, we are seeing the results of that, we are growing companies that have Enterprise features and support, we are growing this marketplace – that is one of our dreams from the beginning, to have more people publishing apps there, and we are starting to see people now publishing apps on the marketplace.

It’s an exciting moment where we see the revenue part of the projects starting to work out as we planned. In all, that is a very crucial moment in our organization where you finally have to turn on the money-making part.

And when it works, it’s quite an exciting moment.

Final Advice

Michael Schwartz: Do you have any advice to help entrepreneurs who have decided to take the plunge?

Gabriel Engel: I guess open source was always the community is your most valuable asset. They are the ones that are going to help you to get market fits, show you what features are important, what they’re missing on the product, and giving you feedback.

And if they feel engaged with the product, they will defend you, say good things about you, and feel that they partially own what you are building, so we think that the community is the most valuable asset of a project because they help build the product.

Respect them and listen to them – it’s the main point.

The second is, when you’re going to the revenue part and building a way that you can charge the right people, and understand that sometimes smaller companies or other organizations, they will be contributing to the product not financially, but with time, development and their feedback. And understand what organizations that are going to use your product are not just willing to pay but want to pay, because they want to have a commercial relationship with you, and balance, and then build the features on the paying part for those guys.

Just value your community and charge people who want to pay.

Michael Schwartz: Great. Well, Gabriel, thank you so much for your time, congratulations on Rocket.Chat, and best of luck.

Gabriel Engel: Thank you so much.

Michael Schwartz: Thanks for tuning in to season 2.

We’re starting the international portion of our journey, and we’ll be talking to startups in Germany, the UK, South Africa, and Israel.

Transcription and episode audio can be found on opensourceunderdogs.com.

Special thanks to the Linux Kernel for co-sponsoring this podcast.
Music from Broke For Free by Chris Zabriskie and Lee Rosevere.

Production assistance from Natalie Lowe. Operational support from William Lowe. Thanks to Rocket.Chat for sending Gabriel to the All Things Open conference.

If you want to support this podcast, please leave a review – that really helps us get the word out.

We’ll be pushing episodes more frequently now so make sure you keep checking back.

Until next time – thanks for listening.

Popular Episodes

Subscribe to our newsletter
for news and updates