
A Path to Full-time Open Source - kyledrake
http://www.mikeperham.com/2014/10/01/the-path-to-full-time-open-source/
======
notacoward
From TFA:

"Divide the functionality into open source and commercial parts. Use a GNU
license and a commercial license for the respective parts."

I really don't want to be That Guy, but this sentence takes us away from full-
time open source. At least part time is spent working on source that's not
open. "Open core" is the most common term for this hybrid strategy. I'm not
going to get into the debate about whether that's a valid strategy, but it
does make the headline misleading.

~~~
jordigh
Yeah, fully free would be something like selling GPL exceptions for the exact
same product.

I really like selling exceptions. The product is available to everyone in its
entirety without restriction, but the copyright holders are the only ones who
can sell non-copyleft versions of it. Everyone else can still sell it under
the terms of the GPL, like selling Debian CDs. It shifts the scarcity in a
different direction, treats everyone fairly, and everyone who creates
derivative works pays: either by giving back code or by paying for the
privilege to not give back code.

Selling exceptions seems to me to be the right way to commercialise the actual
product itself instead of support around that product. I know of FFTW and hg4j
who do this now, and Qt used to do it. It's a good business model.

~~~
jamespo
When the software is typically used for SAAS products and not "distributed" in
the same way as something using eg Qt libraries the business case isn't as
compelling however.

~~~
jordigh
In that case, you sell AGPL exceptions.

~~~
sanderjd
Is there any really good documentation (book, article, series, etc.) on all
the different models for this sort of thing, how they work, and it what
situations they are appropriate?

~~~
sarciszewski
Not that I've seen, but there should be. Maybe we can motivate some lawyers to
put something together? :D

~~~
sanderjd
Yeah a "from the trenches" collaboration between some people who have taken
different approaches and the lawyers who worked with them would be really
valuable to me. (Hint: if anybody fits that description, I'm saying I'd pay
good money for it!)

------
peterwwillis
Making money from open source software is a magic trick: it looks hand-wavey,
but literally anyone can do it. The trick is that companies need support for
products. Convince a company to use your product and then get them to pay for
support and/or hosted service. They won't care if you open source it because
they're paying you for support, not the product.

You don't _have_ to go the Free/Pro model, but it makes companies feel better.
Most people feel like they're getting a better product when they have a choice
to pay more. Even if it's the exact same product.

I like to use Tibco Rendezvous as an example. There are very decent open
source alternatives to Rendezvous, but people still pay boatloads of cash to
use a proprietary, incompatible system. Why? Support. It just works, and if it
doesn't work, i'm paying these jokers enough that they will make sure it
works. I will not have to hire developers to make modifications or bug fixes,
I will not have to figure out the upgrade path or maintenance myself, I will
not have to even figure out the damn documentation. I pay money, somebody
fixes my problems. Nobody gives a crap if the source code is available because
the customer doesn't want source code, they want a working product.

(It also helps that business managers usually decide to pay for these things
and not the developers using them)

------
DanielKehoe
I can report I'm earning a living (in San Francisco, no less) by working on an
open source project, RailsApps [1], which is starter applications and a tool
(Rails Composer) that generates starter applications. The business model is
different from Mike's. Developers support the project by purchasing a monthly
subscription at $19/mo. As an incentive to support the project, I write in-
depth tutorials about Rails, which only the subscribers get. Some people
subscribe because they want to keep the project going, and others subscribe
just to get the tutorials. Either way, it's over 500 subscribers right now.
I'm not sure how many other open source projects could use this business model
(maybe you need to be a writer as well as a developer) but it's a route to
consider if you want to make a living doing open source. And I'd say we
definitely need more ways to sustain open source projects.

Babies, burnout, and budget cuts are lurking assassins for almost any open
source project. Most developers do diddly-squat to ensure their projects can
survive and grow, even for key bits of infrastructure we use every day. Mike
Perham's built a piece of infrastructure for us Rails developers, and he's
built a business to sustain it. I wish more developers would take on that
responsibility.

[1] RailsApps: [http://railsapps.github.io/](http://railsapps.github.io/)

~~~
mperham
I think your success so far is awesome to see. Congrats!

------
ScottBurson
I am surprised that crowdfunding isn't a big deal in the open source world. It
seems ideal: people pay to get software created or improved; nobody pays just
to use it. No restrictive license is required. It seems possible that a
developer doing stuff that is both difficult and very useful could raise
substantial amounts of money.

Certainly there have been a few crowdfunded open source projects we have heard
of, but the model hasn't taken off to nearly the extent I thought it would by
now. Anyone care to speculate on why not?

~~~
na85
Successful crowdfunding campaigns need to be sexy to reach that critical mass,
and "pay me 20000 dollars to make systemd less shitty" is not sexy.

~~~
zura
Also, many (most?) people use open source software because of being free as in
beer. Don't really care about freedom.

------
jashmenn
I've always thought that there should be a "Patreon" [1] for open source.
Companies would commit to paying monthly to an author in exchange for some
sort of reward system like getting the bugs they prioritize fixed.

I once worked for a large Fortune 500 that had several well-known programmers
who's entire job was to be core-contributors to a popular ruby web framework.
They were well paid and had very little oversight.

But given the popularity of this framework, it always seemed a little weird to
me to have a single company funding the development. It's also a little risky
for the community at large because corporate strategy shifts and an open-
source project that was important yesterday may not be important today.

(cf. Evan Phoenix / Rubinius / EY -
[http://en.wikipedia.org/wiki/Rubinius](http://en.wikipedia.org/wiki/Rubinius),
Charles Nutter / JRuby / Sun -
[http://en.wikipedia.org/wiki/JRuby](http://en.wikipedia.org/wiki/JRuby) and
countless others.)

It seems to me that, in theory, we ought to have a platform for monthly
payments to open source developers that maintain projects we use in
production.

[1] [https://www.patreon.com/](https://www.patreon.com/)

~~~
rory096
Isn't that what GitTip^W Gratipay is? The reward/prioritization mechanism
could easily be added on top of that (or be entirely informal).

[https://gratipay.com/](https://gratipay.com/)

------
mperham
Author here. Thanks for the comments, all.

Yep, Pro is not open source. That said, 90% of my time is spent supporting
Sidekiq OSS users, dealing with questions and issues so the OSS work _is_ the
majority of my time.

My next product coming out tomorrow is the same way: 90% of the functionality
is in the free, OSS version and I would expect the same split in time.

------
eps
Hold on. So the money are made from a Pro version, which is not open source.

This is not "the path to full-time open source", that's how to use open source
to bootstap sales of a separate commercial offering. Good to know, I'm happy
for the guy and his 175K, but the title is misleading at best.

~~~
rushabh
We make around 150k with our open source project too and there is no
commercial license. Our revenue is from cloud and developer support. Maybe we
should write a blog around that ([https://erpnext.com](https://erpnext.com))

~~~
akerl_
Please do; as noted above, lots of us would be interested in hearing the
various stories of how groups have monetized open source successfully (and
even unsuccessfully).

~~~
rushabh
Sure will write it up sometime. We could do with some HN love :)

------
sdegutis
I tried to do the same thing with Hydra/Mjolnir[1], but failed miserably and
burnt out completely. Hopefully I can work up the energy to finish my Mjolnir
successor and sell it, but Bogdan[2] tells me it won't make any money.

[1]: [http://mjolnir.io/](http://mjolnir.io/)

[2]: [http://kapeli.com/dash](http://kapeli.com/dash)

~~~
noelwelsh
It's a different market: individuals vs businesses. If it takes a developer
10s longer to find documentation, zero shits are given. If the website can't
accept orders because the queue keeps crashing, the company credit card is
going for a walk to get the problem solved. A direct and measurable impact on
the bottom line, and a visible effect to decision makers are two very nice
properties of a good business.

Your product does look really nice, btw.

~~~
nirvdrum
I think the license here is important as well. I know of a few companies that
just paid the $500 - $750 (it's changed over time) to Mike just to avoid even
having to think about Sidekiq being some sort of GPL license. If it were MIT
or BSD like many other Ruby gems, I'd imagine his revenue would have dropped
precipitously. Given he called the license out specifically, he likely agrees.

It'll be interesting to see what his next project is and if it's a repeatable
model. Asynchronous job queueing & processing is something a lot of Rubyists
need and many on resque were frustrated. Sidekiq was a very attractive carrot,
not the least of which because it was interoperable with resque, leading to a
simple migration path. The stick was an unattractive license that was easily
removed with a small fee.

------
iagooar
As far as I know, there is only 1 person in the Ruby world who is succeeding
with this model, and this is Mike Perham.

While I admire his work and find his business model amazing, I think his
advice is actually very, very shallow and is based on him being lucky, not on
a proven business idea.

I'd love getting me proven wrong, though.

~~~
dlib
Passenger is open source and has an enterprise tier. Though written in C++
they very much serve the Ruby world.

Nonetheless, I agree with your point that this model may not be suitable for
every business.

------
hyp0
In terms of business, this is freemium. People try out the free (GPL) version,
and like it, want premium features, want support, want you to add features
etc.

There's a subtle competitive benefit of free: by providing something valuable
for free that meets people's needs, there's less demand for an open-source
free competitor. In a way, this is a nice reward for helping people; but if
it's too effective, it can stifle innovation (by avoiding the pressure on you
from competitors to improve).

Now of course, GPL has other benefits apart from free-as-in-beer: you have the
code. You can audit it; add your own features; fix bugs. And if the developer
gets hit by a bus, you can carry on without any escrow nonsense,
incompleteness, unmaintainable code. It's also a business benefit to the
developer, as they can get bug-fixes and features and improvements from the
community. But because it's only part of the code that is GPL, they only get
part of this benefit.

However, typically, the biggest benefit of GPL is bug- _reports_ \--- but you
still get them from free users who don't have the code. (They won't be as
good, but usually the hard thing about a bug is that it exists). You typically
won't get much code you can actually use especially if you want to retain sole
copyright (though it can be useful to have as a first draft; and have some
good ideas). Plus... some people might be reluctant to contribute their effort
to someone who's making money (even though they got the code for free).

tl;dr: unsurprisingly, free-as-in-beer is far more significant for a business,
than free-as-in-freedom.

------
sireat
How exactly does the dual-licensing work in practice?

Can you remain the sole seller of exceptions? That is what is to prevent
someone else from forking your project and then selling the exceptions?

I've always suspected that in order to make it in Open Source you have to be
highly socially active. (seems like a requirement for everything these days)

Otherwise, someone who has more social capital(active forum(s) presence,
blog(s), SEO etc) can sell/support your GPLed product perfectly legally and
make a good living from it while you starve.

Let's imagine a ridiculous scenario: someone takes Firefox, slaps their own
logo/branding, maybe makes some minor code changes, maybe not and sells this
product (source code is still freely available to this derivative product).
This actually has happened before(citation needed).

The main difference between your tiny OS product and Mozilla one is that
Mozilla has tons of social capital and anyone trying to charge something
ridiculous for a Firefox clone would be laughed out of Internet.

For example, there were people selling various GPLed products on eBay and as
long as source was included there was nothing illegal about it.

------
VeejayRampay
All the best to Mr Perham for his new project (which I guess won't be Ruby
software), Sidekiq is a fantastic piece of software that addresses the needs
of Actual People™ and does it in an efficient and streamlined way. That being
said, it is true that the model is not as clear cut as the "Full-time Open
Source" in the title would have you believe.

Which doesn't change the fact that there is an open source version of Sidekiq
that works perfectly well, the Pro add-ons are most likely the only non-free
parts and you don't necessarily need that to use Sidekiq.

------
kelvin0
So the Sidekiq is a product that allows to implement service/daemon in Ruby? I
am not a Rubyist, and couldn't figure out what this does ...

~~~
mountaineer
It's a product for handling background jobs, typically generated from web
applications. It's similar in function to resque, delayed job, etc. Rails is
bringing native background job support to Rails 4.2 in the form of Active
Job[1], so these background job runners will become even more popular I
imagine. Sidekiq itself provides a service/daemon (well, the processing part
of it), it does not provide the ability to implement your own service/daemon.

[1]
[http://edgeguides.rubyonrails.org/active_job_basics.html](http://edgeguides.rubyonrails.org/active_job_basics.html)

