I posted this on Open Manufacturing recently, in response to someone discussing how he might make money from client side packaged software (he wanted to use a delayed-release gpl, so he’d be open source, but no one could compete with him for the initial period).
My two cents: Don’t do it.
1 – You are violating your own ethics. You clearly don’t want to close
your code in this way, even for a short time. If you really wanted to
close it, you’d keep it hidden.
2 – I assume you want this non-gpl period because you want a lock of
some kind; a way to give yourself a monopoly for a period of time. I
don’t think it’ll really help much though. If people want to pirate
it, they will. The small sliver of law abiding people who will pay you
if you are the only supplier, but might not if there were other
options, how many of those people are there really?
3 – Meanwhile, in the free software arena, you’ll lose credibility for
this odd approach.
Do you have a copy of “Here Comes Everybody”, by Clay Shirky? He
describes the mass amateurization of some professions in the modern
connected world (journalists and photographers are the two examples he
gives). I think packaged client side software is slowly being eaten by
mass amateurization (hooray! what an amazing development for the
world!), and is a bad place to be looking for commercial income at the
moment. One of the best indicators of this is that you’ll find
yourself having to do all kinds of nasty protectionist things in order
to make any money, and I suspect they only work for the big incumbents
in any case, and even there probably not for all that much longer.
Remember when there used to be Shareware? Ah, the 90s. I don’t really
miss it though 🙂
All the software I see these days that has a hope of making money has
a server based component. Server side gives you control, which is good
for you. It also means extra options for the users, which is good for
Some software lends itself to this better than others. Facebook, yes.
Image editing software, not so much. Your project, maybe it closer to
a client side thing than a server side thing? I’m not sure.
A problem with server based solutions is they don’t feel very open,
but this needn’t be the case. You can make entirely open solutions
here, keep your integrity intact and also service your wallet. Here’s
my plan for how:
I’m assuming a client-side type of application. Let’s say yours is
largely about designing 3D objects, which end up saved to files, and
is in this class.
1 – Make the client side app. Make it do everything you currently want
it to do. Make it entirely free, release the code under the GPL. Give
2 – Look at how you can add value by providing a server side. The most
obvious way is to provide sharing capabilities for whatever “files”
your program produces. Think social network. Lots of social tools.
Make this side of things entirely optional, but damned useful. You can
charge for this.
3 – Release your server side code for free, GPL it. Make it possible
for people to set up their own private (or public!) server if they
So you end up releasing an excellent, 21st century product, entirely
free, and value add by providing a hosted server side service.
Maintain your reputation and I think customers will follow.
Really work hard on making sure people can use your entire solution
for free on their own infrastructure if they want to, never hobble it.
You don’t need any artificial lock in here. Just the fact that you are
clearly trustworthy and competent and committed to openness means that
when people see and like the server side stuff, they’ll be most likely
to use your service, even if there are other free alternatives. Oh and
I imagine integration with your servers would probably be very
slightly easier than with any others people set up, even if it’s just
because the menu options go “Use Official Server | Configure a private
btw, you get excellent trust by making the server side free, because
you address the “what if this commercial service folds?” problem.
People know that at worst they can always host it themselves, so they
feel safe using your commercial service (oh remember to provide import
and export functions).