Luminotes.com will shut down on March 1st. Read more.
why you should sell open source software

why you should sell open source software

(This post is about the business / software development side of Luminotes, so if you're only interested in personal wiki improvements, you may want to skip this one.)

For the past year and a half or so, I've been doing something a little odd. I've been selling open source software.

This is software for which you can purchase an online subscription or download a stand-alone desktop version. And yet, it's completely open source.

Open source software, for those who have been living under a rock for the past decade or so, is software in which the underlying human-readable programming instructions are freely distributed. Practically, that means that if you're technically inclined, you can download and use such software at zero cost.

So first of all, why would I want to make my software open source? Well, most software is traditionally closed source, meaning that the human-readable source remains secret, preventing people from seeing how the software actually works or making any modifications to it.

This approach, to me, seems markedly anti-social and anti-consumer. Selling closed source software is roughly analogous to selling someone a car with the hood welded shut. If they want to fix the car or change how it works, they are stuck with things as the manufacturer has dictated them.

When I started out, I decided that I wanted to make the kind of business in which I'm partnering with my customers to make something exciting for all involved, not just trying to create sharecroppers with software that they can't examine or modify.

Most open source business models seem to focus around giving away the software and selling some ancillary service, like support or consulting. This is fine for certain businesses, but I don't think it's unreasonable to want to concentrate on making software and getting compensated directly for it. And that means selling your software.

Since my source is open, I can benefit directly from the few users who delve into the source code themselves and provide improvements or bug fixes. I'm just one lone programmer creating this software, so any contributions can make a big difference.

Also, some customers simply feel more comfortable with software that they can audit or modify, as a sort of built-in insurance mechanism. If I ever go out of business or change my product line, my users aren't locked into the software.

Okay, so then the obvious question is: Why would anyone actually pay for open source software rather than just downloading it for free? Let's turn that question around. Why wouldn't anyone pay for open source software? If the customer is getting something that makes their life easier, something that saves them time, something that solves a problem, then why should the fact that the source code is available change their willingness to pay?

Sure, there are some types of open source software that would be difficult to sell directly. Developer tools are one such area, because many developers have no qualms about building the software from the freely available source code themselves. Luminotes is definitely end-user-oriented software, meaning that most Luminotes users are non-technical and thus have little to no interest in the source code itself.

That leads to a rather interesting observation. For most Luminotes users, the fact that the source code is freely available is completely unremarkable. No one, except for a few software developers, really cares that they can read, modify, and distribute the internals of the software.

In other words, if you decide to make your end-user software open source, most of your users probably won't even notice! The sky won't fall, your revenue stream likely won't dry up overnight, and your competitors won't suddenly start selling your software.

We've been trained as software developers to think that our source code is our crown jewels, and that if anyone got their hands on it, they would instantly start competing with us. First of all, get over yourself! Your source code, while it's obviously valuable to you and perhaps a handful of your users, is very likely completely uninteresting to almost everyone else.

As a developer, it may be difficult to admit it, but it's rare that desktop or web-based software source code does anything even remotely novel. Let me guess. Your software probably does some writing stuff to disk, some reading stuff from disk, and some displaying the stuff that was read from disk. Honestly, unless your source includes some cool algorithm for calculating seating plans, your code is very likely completely mundane.

This doesn't mean that the software itself isn't really cool. It just means that what your users care about is how the software makes their lives easier, and not how the sausage is made.

So this is a call to all software developers and small business owners out there. Consider open sourcing your end-user software. Whether you decide to make your source code available to your users should be based on a simple cost-benefit calculation, just like any other business decision. As a small business software developer, open source is not something to be afraid of.

Dan​​

"Completely" open source?  Then where's the source for the Windows desktop version? :)

Windows Luminotes Desktop source

The full source code for Luminotes Desktop for Windows is available along with the source for all other versions of Luminotes.

Enjoy,
Dan

Installer

How about the source code for the installer?

So this is just the web version running locally?  Any plans to make it more like a real desktop application (menu, toolbar, keyboard navigation, drag/drop, etc.)?

Installer

I'm actually using InnoSetup for the installer, which is completely open source.

You're correct in that Luminotes Desktop is just a web application running locally. You don't need a separate web server and it doesn't connect to the internet. I don't have any plans at this time to make Luminotes Desktop into a traditional browserless desktop application, as that would require maintaining two fairly distinct code bases.

However, it's certainly possible to make the current Luminotes Desktop local web application more desktop-like in future releases. If you have any specific requests for such features, please do let me know.

Dan

Installer

Right, what I meant was, I don't see the .iss file in the source code.

As far as making the app more desktop-friendly, keyboard navigation improvements would be a good place to start.

Installer

Oh, the .iss file is generated from the setup.py file using py2exe (also open source). Look for "luminotes.iss" within that file for details.

Keyboard navigation improvements are definitely planned. Check out the general discussion forum for a thread on this topic.

Dan

To write a comment, please login first. No account? Sign up to get a free account.

posts 7 total