Thoughts on Open Source Communities
Two paths to build successful open source communities
Recently, I have had two great conversations with people who are part of open source communities. Last week, I had to travel to Pune (120km from Mumbai) for the Product Nation Roundtable. Luckily, Nirav Mehta, of StoreApps and Putler, was also attending the roundtable and offered me a ride. As it turned out, it was an amazing opportunity to learn more about Nirav and his participation in the Woocommerce ecosystem.
As it turned out Nirav and I had a lot in common. Not only were we of the same age and had very similar family backgrounds, this was also our second coming at entrepreneurship. Both of us also were part of open source communities, had a product driven mindset and he is the only other person I know who still uses an iPhone 4s. Nirav is a great storyteller too. At a very young age, he won a competition from Microsoft and was invited to Redmond for a meeting with Bill Gates! Talk about life changing events.
Nirav publishes a very successful bunch of plugins for Woocommerce. Woocommerce is an e-commerce extension of the Wordpress, the world's most popular blogging platform. Wordpress is one of the inspirations for ERPNext. Wordpress has create one of the largest open source communities around the world, and Nirav is one of the leaders in India in this community.
Mumbai-Pune Expressway (source Wikipedia)
As we sped on the highway, we I asked him about Wordpress, monetization and open source. He got his first success in an open source community, when he created a plugin for ActiveCollab, an open source project management tool. His plugin became so successful that at a point, it became a reason why people started adopting ActiveCollab. Probably uncomfortable by the success of plugin developers like Nirav, the core team behind ActiveCollab, killed the plugin architecture, leaving developers in a limbo. Nirav, saw his revenue almost evaporate overnight and that justifiably made him angry. (ActiveCollab is now a fully commercial tool)
At this point, I could empathize with both Nirav and the ActiveCollab developers. As a publisher of an open source project, I am not a big fan of plugins (or apps). Many times, what comes in a plugin, could very well become a part of the core product offering. A great example is the web browser. Today no operating system comes without a bundled web browser, but in the early days, the web browser was just another application you would install on your operating system. Similarly for open source projects, the apps or plugins can sometime become so important, that it really makes sense for them to be a part of the core product. I am not saying plugins are always bad, and there are examples where it makes sense to have some functionality as an option, rather than a core offering. But often once this model flourishes, you have competing plugins doing the same thing, and it becomes a nightmare for the user to choose. But here is the biggest problem:
In open source products, often the plugins themselves are not free and the user has to pay for them. This is specially true for web platforms like Wordpress, Woocommerce and Odoo.
So the tendency of a developer in such ecosystems, is to put parts of functionality they could have contributed to the product, into the plugin, since it provides an opportunity to make some money. From Nirav's point of view, this totally made sense. As a third party developer, he is never going get the kind of traction he would get as the core product and if he has an opportunity to monetize from his efforts, there is no reason why he walk away.
After the ActiveCollab experience, Nirav created a few plugins for Woocommerce and a bunch of them became very successful. The Wordpress ecosystem has always thrived on third party providers to provide themes and plugins to the core product. It seems like a good fit for Wordpress since each plugin or theme represented a certain style or taste, and this ensured that Wordpress users had the best menu of styles they could choose from. From Nirav's point of view it seems like a complete win-win-win. The core product is open (open core), the plugin makers provide paid extensions and users get a full choice.
But if you look from an open source point of view, it is a dilution of the purity of the principal. Let us take the Wikipedia example. Imagine what would happen if Wikipedia created a paid section, where if you wanted to read certain articles (say 30%) you had to pay a certain fee.
I am sure there would be a bunch of people who would have loved to pay to make sure that Wikipedia maintained its great quality and its contributors could earn a living. And some people would say that this is against the principles of freedom, and question who would decide what is paid and what is free? They would have questioned that why should Wikipedia only benefit a small elite?
Nirav also shared that Wordpress took a whopping 50% of each plugin sale from the official marketplace. This meant that Automattic (the company behind Wordpress) had a great economic incentive to ensure plugin developers flourish. No wonder they maintained a tightly controlled marketplace. In my view creating a plugin architecture would mean creating a 3-tier ecosystem. The core developers, extension ecosystem and the users. Once the core developers get dependent on the extension ecosystem for their sustainability, the user experience definitely suffers. I am sure it would be very difficult for an end-user to directly setup a woocommerce shopping cart without help from a developer.
While I don't think there is anything wrong in this model, it definitely creates a friction in the end user experience and creates a perverse incentive for this friction to exist so that the ecosystem flourishes. My resolve to not push the ERPNext ecosystem in that direction only became stronger.
The other experience I had was with a passionate end-user of an open source project. Raghavendra Kamath is a professional illustrator who is an active community member of Krita, an open source alternative to Photoshop and more. Last month, due to the efforts of a few members, the Mumbai Linux User Group meetings were revived. This week, Raghavendra volunteered to share his experience using Krita as an end user and it was a fascinating talk.
Linux User Group meetup at Mumbai
While Nirav gave me the opportunity to learn about open source communities from the service provider perspective, I took this opportunity to learn from Raghavendra about open source communities from the end user perspective.
Krita started as a GIMP knockoff for the KDE project, but later took a life of its own when it decided to focus on illustrators (and not photographers). Today, Krita offers a many more out of the box tools for artists than any commercial software in the market.
The communication hub for the Krita Project is the IRC channel. As an end user, Raghavendra is always logged in the the IRC channel. He uses the bleeding edge release and immediately reports any bugs he finds to the core developers. He also takes time to help out other illustrators who are using or evaluating Krita. Krita uses Bugzilla to manage bug reports and you need to be truly motivated to use Bugzilla as an end user, as its interface is still very old. Krita has only two paid developers (one from the Netherlands and one from Russia), and one of them is part time. Between the two of them, the manage to take out a thousand bugs a month.
Clearly Krita has no "service providers". The whole project runs on an ideologically "free" software model. The Krita foundation is supported by donations, and they raise close to $80k per year that supports the developers. Along with that, they also do a fund-raiser each year that helps them raise another $35k. Compare this to the Woocommerce ecosystem, and it seems like they are building this on extremely tight budgets, but they still seem to be doing extremely well. Not only are most of the end users using Krita completely free, the participation from the end users is very high.
What clearly stands out that the Krita ecosystem, is not interested in creating any "friction" for its end users. End users of Krita, like Raghavendra are not making any money from the time and passion they give to the software, unlike Nirav who runs a healthy company that supports 18 people. Krita seems more a labour of love and Woocommerce seems a more commercial and prosperous community.
I am sure both models have their pros and cons. In some ways I would love to see developers and contributors to Krita get more rewarded financially (maybe their time will come) and I also worry that a commercial open source ecosystem like Woocommerce, which is based on artificial scarcity, can be easily disrupted by someone who pushes the bar even lower.
Ultimately these are hard questions, since our society is largely based on commerce and not love. What a pure open source model asks its community is to value love over money, but it does not show you a way to sustain your livelihood. It does not care if you are a penniless artist or supported by a cushy day-job or consulting gig, and in that way it is a bit cruel.
From the ERPNext point of view, our goal will be to find the right balance. We want to build a frictionless experience for the end user and yet make sure we care for the community that contributes. This seems like a tough goal to achieve, but I am confident that we will find a way.
Rushabh is a software developer and founder of ERPNext. He usually writes about the startup experience, open source and the technologies he is working on.