20
15 Comments

You can absolutely profit from an open source project

Hacking for fun and profit

When I started building my first project back in 2010, I was mostly focused on features and getting as many users as possible to visit my website.
Back then, I thought of open source software (OSS) as the ideology of hackers and not a real job. Having read Eric Raymond's The cathedral and the bazaar, I really liked the idea of developing software out in the open and sharing my work with the Internet. At first, I thought I'd be doing this just for fun, rather than for profit. I thought to myself that it'd be cool to be working for a big tech company and building open source projects in my spare time. But I soon realized, what I really wanted was, to be an independent software developer working on open source projects.

For the longest time, I thought I was crazy to believe that such an occupation could ever bring me any money. Then I found that other people were already doing it! I was inspired by developers like Mike Perham (Sidekiq) and Lukas Eder (jOOQ) who were maintaining OSS and selling it at the same time. They gave me the courage to try it myself, so I did.

Transparency equals trust

When you build in public or you use platforms like GitHub or GitLab to build your project, you essentially generate trust by providing transparency. And trust is obviously a foundational requirement for doing good business. These source hosting platforms also keep a public track record of your work, which is good for your reputation too. Forget how many stars your project has, focus on how to build the most useful tool in your niche.

It's also a good idea to use websites like Huntr, where you can get reports for vulnerabilities found in your project. Prove that your project is serious about security. And last but not least, always give your users the option to keep their data safe and private - use a robust database and stay away from exotic or obscure data storage technologies.

Types of OSS projects which work best

If you have an open source project which is used by people and companies, chances are it can be sold for profit. Of course, this model would work better for certain types of projects. For example, if you are developing a tiny JavaScript library, it would be hard to package it as a product for sale. I think that it's better to have some sort of full-featured product, which is useful for teams in smaller companies. It is much easier to ask for money from a business, rather than from an individual customer (see B2B vs B2C). If a company already uses your OSS, that's awesome - go and monetize it!

If you don't already have an open source project, or you want to start a new one, here are a few ideas:

  • Tools for increasing productivity in teams
  • Tools for tracking and organizing projects
  • Tools for gathering and sharing knowledge in an organization
  • Open source alternatives to expensive enterprise software

Open source software as a marketing funnel

If you have a successful open source project, you can start thinking about monetizing it. Think of the open source model as a sort of marketing funnel:

  1. Your useful free tool attracts lots of customers
  2. Customers use it and integrate it into their workflow
  3. Customers come back to you with feature requests or they look for support
  4. You make a profit by selling your time or you build extra features for them for a premium
  5. You can also make money by providing cloud-based hosting if that applies to your product

You always have a better chance of converting a free user to a paid customer by offering a paid version of a product that they already use and like.
There are basically two ways to do that - have a single product with two different licenses (e.g. GPL and a custom EULA), or, sell a premium ("pro") version of your software. The best decision you can make is to just start asking for money as soon as possible. Yes, it may sound rude at first but it's vital to your success and sustainability as an indie hacker.

Dual-licensing means offering your software under both a proprietary license and an open-source license, typically the GPL. Customers choose which one they'll use. In a case where your customer is a company, they would most probably choose the proprietary license and pay you, because they don't want to open source their modifications of the software. And when it comes to the client-side code the GPL is very restrictive. Serving a JavaScript or CSS package on a website constitutes "distribution" of the package to the website visitors as they are transferred to and run on the client's machine. This is a violation of the GPL license which your customers would want to avoid and they would prefer the proprietary license. The downside of this model is that you will need to collect signed Contributor License Agreements (CLAs) from your contributors to ensure you have full ownership of the code. Some people are not OK with that and that might result in fewer contributions to your OSS project.

I'm more in favor of the second approach where you have a free and a paid version of the same product. The free version can have a more permissive and commercial-friendly open source license, like the Apache 2.0, and the paid version can have a proprietary license (EULA) and include extra features and support. This is exactly how I run my business - I have a couple of 100% open source projects, one of which has a "pro" version (Scoold Pro). I charge 499€ for the pro version as a one-time fee. It's up to you to decide whether you want to include the source code in that price. I've decided to charge four times that amount for the source code. I simply have a private Git repository that can be accessed only by customers who paid for the code. They are free to download the code and modify it however they need. In terms of support - you'd want to include at least some basic support in the price. For example, the price of my paid project includes one year's worth of basic support (email, chat) and after that customers can "renew" their license to continue receiving more support and features. Even though I'm not technically selling a subscription for the software, the continued support is a sort of subscription-based service which is sold for the same price, each year.

Of course, you also have the option to provide cloud-based hosting for your product, if applicable. Most of my clients prefer to deploy the software on their premises, but some do prefer to have a managed service where they don't have to worry about maintenance and security. This is why last year I launched a subscription-based SaaS for my paid software which is running on the AWS cloud.

On a final note - open source is serious business, so be bold and charge money for it!

  1. 4

    We're building an open-source project now that helps you deploy cloud-agnostic infrastructure! https://github.com/multycloud/multy

    You can absolutely make money from open-source! Here is a compilation of business models: https://github.com/PayDevs/awesome-oss-monetization

    1. 1

      Really cool project and thanks for the awesome list for monetization - I didn't know about that one.

  2. 2

    Thanks for the tips, Alex, nice post. I really agree with what you said about transparency. I read an article recently that mentioned how "94% of customers would be loyal to a transparent brand," exactly for the reason you mentioned - because it leads to trust.

    BUT it also mentions why businesses should be careful not to be too transparent - i.e. don't go around giving away trade secrets and let competitors copy you and/or find a competitive advantage. If anyone is interested:

    https://www.forbes.com/sites/mikekappel/2019/04/03/transparency-in-business-5-ways-to-build-trust/

    1. 1

      Yes, indeed! What do you think about this "open startup" trend going on lately, where you share all your company's financial data on the Internet? I like the idea but, as you said, I'm worried about being too transparent.

      1. 1

        I personally quite enjoy reading about other startup's financial data, but mainly because (i) I'm nosy and simply curious to know, and (ii) I think in the long-term, open conversations about money/earnings/savings can promote greater equality (there's still a big divide in earnings between genders and people from different nationalities and races). BUT, obviously, from a company's perspective - I get that it's important to be mindful of how much you disclose. It's a tough balance, I don't envy those who are faced with making this decision...

  3. 1

    One of the great things about open-source is that you get early users right away. You can also build the community from the day 1.

    We're building DoTenX - an alternative for Zapier and it's been a fantastic journey so far:

    https://github.com/dotenx/dotenx

    1. 2

      This is great! I'd love to try this and it would be great if there was a more detailed 'Getting started' section or a website for more detailed documentation.

      1. 1

        Thanks for the kind words, will improve it soon.

  4. 1

    Alex, Nice Post!
    I'm also building an open-source project that is https://www.codingspace.codes/, a website where we provide a variety of web development challenges that will help you improve your coding skills and become better at web development.
    Github Repo: https://github.com/rishipurwar1/coding-space

    1. 2

      Starred! I have a friend who is just now learning to code and I'll send him the link. Thanks!

  5. 1

    Thanks for the insights in your OSS experiences, @albogdano!

    What's the best strategy of marketing and attracting users to open source projects?

    1. 1

      It's really hard to say because it depends on the project, but I think a mix of content marketing, SEO, and posting to relevant user groups should work great for a start.

  6. 1

    Wow! Thank you so much for the amazing tips!
    I'm developing an open source project and actually launching today so this was very useful!

    if you want here's
    -> GitHub https://lnkd.in/eewNYt_8
    -> Product Hunt https://lnkd.in/e7NjKMEJ

    1. 1

      What's the reason to use URL shorteners?

    2. 1

      I wish you the best of luck with your project! Already in top 3 on PH - congrats! I suck with ML, but the project sure looks interesting.

Trending on Indie Hackers
I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments How I Sourced 60% of Customers From Linkedin, Organically 12 comments Hero Section Copywriting Framework that Converts 3x 12 comments Promptzone - first-of-its-kind social media platform dedicated to all things AI. 8 comments How to create a rating system with Tailwind CSS and Alpinejs 7 comments