A lot of people have sent me emails about why Monica is open source. There are a lot of reasons for this that I want to describe at length here. Open sourcing a consumer product and at the same time trying to make money out of it is not something that is that common (unfortunately) and perhaps this will inspire others to do the same. I've been personally inspired by how Sentry, GitLab and many others have created companies around open source products and even if Monica doesn't generate any revenues yet, I wanted to share my own thoughts on the topic.
The pros of open sourcing your product
- I've always wanted to create an open source product. Probably by idealism. I've been using open source products for as long as I can remember and I wanted to humbly contribute to the open source ecosystem in return. I also thought it was cool on the CV.
- Monica contains a lot of personal data. I would argue that this data is way more potentially harmful than what people put on Facebook. For some it's a huge privacy concern. By making Monica open source, and providing ways to install it yourself on something that you own and control, it's up to you to decide whether you want to take the risk of letting someone else host your data, or if you want to keep it under your control.
- Because of the sensitive nature of data hosted by Monica, and because I'm a single developer who is not as good as the community as a whole, I needed to open source the product to make sure hundred of eyes scrutinize the code and look for bugs, potential breaches and improvements. And find things that should be fixed or enhanced much quicker than what I could do myself.
- When people have access to your source code, and become users of the platform, you will be astonished by how much they will contribute. They will submit pull requests with great ideas and concepts, that you can immediately put in the product for everyone to profit from it. It's awesome. Of course, all ideas are not great and you will refuse pull requests from time to time, for various reasons. But globally it's extremely positive and you will receive great new features.
- In an age where social networks are extremely opaque in what they collect and how they use the data, people are more and more concerned about their privacy. For a very good reason. Monica doesn't display ads and does not resell any data. But why take my word for it? For one reason: the freely available source code is exactly what is in production. I don't maintain a second fork with private modifications. Therefore, everything I do is transparent and users can control that I don't do anything nasty. It's all about transparency and creating a relationship based on trust.
- Developers are the most important part of an ecosystem. When developers like what you do, they will create an ecosystem around it and cool things that you would have never thought about. This is a very strong magical moment when that happens. Developers are also powerful influencers and your best ambassadors. Non geeks people reach out to them often to ask for the latest tech advice. And if they like Monica, they will talk about it with almost the same reach as a post from a Kardashian would in a gossip magazine.
The cons of open sourcing your product
- Regardless of your license, there is a risk that people take your code and spin off a company around it, and take the market you wanted to address. There is nothing you can do about it. A popular maxim says that an idea is worth nothing, only the execution matters. In Monica's case, it's more than an idea - the code is already there and it's already an execution. The more mature the product will be, the more it'll be tempting for other people to steal the code. I'm ready to live with it, as long as the community benefits from the results of this.
- If you get big, you might become less attractive to either venture capitalists or potential buyers. But you know what? In my case it is good news because I'm not building something for them, I'm building something for users. I don't care about what VCs will think about the product.
- It is time consuming to deal with the community. Don't get me wrong. I love interacting with them, and I feel extremely blessed that there is a passionate community around Monica already. But while I'm trying to build what's next for the product, I spend a lot of time every day checking issues, verifying pull requests and answering emails. Like, a significant part of my time actually. Again, I'm not saying it's bad. Actually I'm enjoying it greatly. But this time sink is something to consider if you decide to open source your product and you need to be willing to participate and take care of your community.
I can't think of any other drawbacks. You should consider open sourcing your next idea.