How to make $100k in OSS by working hard

My Sidekiq project isn’t just about building the best background processing framework for Ruby, it’s also a venue for me to experiment with ways to make open source software financially sustainable for the developers who work on it hundreds of hours each year (e.g. me). Let’s review.

When Sidekiq was first released in Feb 2012, I offered a commercial license for $50. Don’t like Sidekiq’s standard LGPL license? Upgrade to a commercial license. In nine months of selling commercial licenses, I sold 33 for $1,650. If you figure I spent 300 hours building Sidekiq, that’s less than minimum wage. Result: failure.

In October last year I announced a big change: I would sell additional functionality in the form of an add-on Rubygem. Sidekiq Pro would cost $500 per company and add several complex but useful features not in the Sidekiq gem. I do little to market it, don’t buy ads or sponsor anything; it’s sold purely through word of mouth and mentions in the Sidekiq documentation.

In the last year selling Sidekiq Pro, I sold about 140 copies for $70,000. Assuming I’ve spent 700 hours on Sidekiq so far, that’s $100/hr. Success! Sales have actually notched up as Sidekiq has become more popular and pervasive: my current sales rate appears to be about $100,000/yr.

This isn’t retirement money but it is very respectable money for a side project and one I could make into a full-time job if desired. It makes supporting Sidekiq something I enjoy rather than a chore I dread: in the last year I’ve released 34 versions of Sidekiq with lots of new features, bug fixes and tons of contributions from the community.

My one open question is how to market Sidekiq Pro now? Sure, I could fill the Sidekiq website with boring whitepaper case studies and sell 24/7 support but… ugh. So far my best response has been at developer conferences: when I meet and network with other Rubyists to answer their questions and soothe their fears, they buy Sidekiq Pro. I wish I had the time and fortitude to travel around the world but a wife and child does not allow this flexibility.

As always, thank you to my customers for making this ongoing experiment a success and I hope the results so far encourage other OSS developers to experiment with ways to finance their own hard work.

28 thoughts on “How to make $100k in OSS by working hard”

  1. In this case, I think the best marketing is yourself. Just be yourself, maintain a very good technical blog (sth like blog.sidekiq.org) and launch some by-products.

    One great example of a successful blog is Digital Ocean’s blog. It can actually help you get new customers. And as always, Hacker News is your friend!

    Also, this might be interesting to you, if you haven’t already read it.
    https://37signals.com/svn/posts/1620-sell-your-by-products

  2. I think there is an opportunity for somebody to setup an organization that provides Sales, Marketing and after Sales technical support (24×7) to enterprises for products like this. Essentially, scaling great open source products to the enterprise.

  3. As you have developed a network of people you know going to conferences, isn’t there anyone you can trust to work with you in other areas of the world?

    Maybe you could start a cooperative of individuals providing Sidekiq Pro support worldwide.

    At some point, however, you will need to make this a full time job if you want to scale it up further.

    Congrats!

  4. There’s an easy path for you to generate more revenue: don’t limit yourself to Ruby. There are thousands of companies which are not using Ruby and are limited to only 2 other job queues, gearman and beanstalkd. And both seem to have less features than your product.

    1. Add a REST interface to sidekiq that every language on the planet could implement. You instantly have broadened your audience.
    2. Refactor your gem to use the REST interface to talk to the sidekiq REST application (AKA sidekiq server). This allows you to only have a common codebase for every language, you no longer have distinct codebases for sidekiq inproccess gem and sidekiq server.
    3. You can remove Redis dependency for sidekiq pro and maybe implement a much better solution
    4. (optional) pay someone to develop a client library for python and php. having libraries directly provided from the source is a great bonus, but not needed if you don’t like. People will build these libraries anyway.

    The “fault” most developers made, is limiting their job queue to a single language (sidekiq, resque…). Because of this, there are only 2 usefull job queues out their usable by everyone: beanstalkd and gearman. And both have less features than your product and do not have a graphical web interface. Do not underestimate a graphical interface.

  5. Consulting is a viable option too – you can consult companies/corporations for customizations and/or use sidekiq as your resume for tech consulting…

  6. How do you manage incoming features from the community around the open source product which directly conflicts with the features in the sold Pro add on?

    Do you have some type of rule system such as:

    “After 5 requests to add feature X to the main then we allow it and it will be removed from the Pro version.”

  7. re: how to market Sidekiq Pro?

    One good way to start is by explaining in better detail what the benefits of Sidekiq Pro are. From the pro page (http://sidekiq.org/pro/) it is difficult to determine what the differences are between free/pro. Feel free to ping me if you’d like some additional feedback. :D

  8. I don’t really know Sidekiq, so I wouldn’t know for sure what would work for you, but have you thought also about to create some sort of service (that’s more up to your thinking what service would be) that works with Sidekiq? It would be like what you did with the Pro, but this time you would have something that helps business co even more, using your infrastructure – thus charging more, because you are abstracting this to them an making things easy – and doing recurring revenue ($99, $199, etc / month).

    That way you would kinda bootstrap a company that provides this service.

    Another way I see is also providing top-notch support/consultancy like many OSS. I think is the way the company that did Vagrant gets most of it’s money from.

  9. Great article, I like this model!

    As a fellow Rubist, I’m curious, how do you sell the gem? Do you require a license or registration? Do you do anything to try and prevent pirating? A gem store might be an interesting concept…

  10. Here are a few ideas for marketing it (full disclosure: I’m a professional marketer):

    1) Use Ruby communities online. By getting known on places like StackOverflow etc you can generate more interest for Sidekiq by helping people solve their problems.
    2) Go to Ruby conferences wearing your t-shirt and talk with people. Give them free access for 15 days to check it out if they work for big enough of a company.
    3) If you use other coding languages, create Sidekiq for X.
    4) Offer a free and easy way for people to test/learn Ruby. Think W3C for Ruby.
    5) Ask people who signed up for the 15 day free trial why they didn’t upgrade. Use this knowledge to solve that problem.

    Hope that’s helpful. Btw, I’m on Clarity.fm and happy to talk about more ideas – https://clarity.fm/dohertyjf

  11. I’m a JS/Ruby/Java developer who works in the marketing industry. I use(d) sidekiq for previous projects at work & side projects.

    One thing I would add to John’s comment: A 15 day trial does not work for Sidekiq Pro because it’s packaged as a gem (the end user gets the source code). That means, there’s no way to make sidekiq stop working after 15 days.

    A few more quick ideas:

    1. Take the endorsements a notch up? Interview 1-3 of them for an hour and write about it on your sidekiq pro site as a permanent page. The idea is, I want to know, in detail, that someone else had the same problems I had and was successful using sidekiq. Give them $50 gift card for the one hour of time on the phone.

    2. Maybe get in touch with Ryan Bates to do a 3 min video about pro features and put that on this site?

    3. Sponsor Portland Ruby meetups. (or……ahem NYC ones? :)

    4. Give away cool karate sidekiq stickers. (Could look cool if it were “kicking” the Apple logo on my Macbook!)

    5. Have you personally emailed/messaged anyone who has submitted pull requests but are not pro users?

    Anyway. I’m on Twitter @iamchrisle and thanks for releasing awesome code. Save me tons of work.

  12. Just curious, with regards to the commercial license you’re using, did you have a lawyer draft up a license that is specific to your product? Just wondering how that process works – do you go to a lawyer and just tell them I want to allow customers to use my software in ways X,Y, and Z and then they draft up the license accordingly – is that basically how it works?

    Inspiring post, and keep up the great work!

  13. First of, congrats! This is awesome!

    Note that it’s not about working hard (you did for 300 hours and made almost no money!). It’s also not about your hourly rate. Pricing has actually nothing to do with you, only with the (perceived) value to your customer.

    It’s about finding the right price point and the right features for the market you are serving—in a B2B setting like this you want to be close to but lower than the value you’re giving your customer.

    If your customer would need to spend, say, 100 developer hours to get the extra features in your gem, and their product is delayed by a month by it, $500 is nothing.

    For companies really needing your product and making (enough) money of it, it really doesn’t matter if it’s $500 or $1000, or $2000, or $5000 — they’d rather spend more if they know that you can support it in the future as well. Many “decision makers” in bigger companies will just go for the most expensive product because it internally makes them look good (“I picked the best option”).

    Good luck! :)

  14. Sidekiq is great. The Admin UI is great. If I were Mike, i’d market this just by publishing some very real use-cases where people use legacy systems in-place of Sidekiq and show detailed performance metrics, along with cost savings for worker-VMs. This to me would be the most tangible benefit IT departments are after if you are targeting companies.

    You could go the other way, and create some specific backend services (eg. email delivery, CSV/XSLT/JSON processing services) which are built on Sidekiq and market those (or get others too)!

    The REST-API idea is a good one, which has been done by Jim Webber in the NEO4J database to give interop to almost any language.

  15. When dealing with questions of pricing, “charge more” is the right answer a shocking percentage of the time. Thomas’ reference to basing price on received value is spot on.

    I’m curious about the support model. Does $500 basically entitle the buyer to lifetime support? (If so, charge more.)

    Also, are there other products in the same space that are selling licenses as you are? I don’t know of any, but you might. Is Sidekiq Pro competing against anything other than the OSS version? If so, it might be worthwhile to do a detailed comparison of these. (Probably even better if someone else did the comparison.)

    After all the mixed results of the past decade and a half or so of commercial open source efforts, it’s great to see individual people building businesses around projects like this. It’s even better when it happens to one of the real nice-guys of the OSS world.

  16. Very inspiring article. I’d love to hear more details about your licensing process – techniques, algorithms, lessons learned, etc. Great work on Sidekiq!

  17. We were exposed to Sidekiq in a brief (2 hour) course in a web dev immersion class. Trying to find help, tutorials, or mini-projects that explain the usefulness of Sidekiq on a novice level are absent. Having little tutorials (like Github does), or codecademy challenges, codepen API calls etc…would be a welcome relief. This would expose new coders to the value of your project, get them using it early on in their career, and promote its usefulness by making it a ubiquitous and indispensible resource in their projects. Word of mouth and happy (knowledgable) users are the best advertising.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>