On Windows, Mac, and mobile devices, you can make a decent living selling software directly to users. On those platforms, people are accustomed to paying for applications. Things are different for open-source software. You're free to charge money, but what's to stop someone from taking the source code and releasing an alternative?

You need to take a different approach to make money in the open-source world. How exactly do people make money producing Linux code and giving it away for free?

1. Asking for Donations

VLC-website-donate

You go to an application's webpage and see a donate button in the corner. Do you click it? Maybe. Probably not. This is the problem with relying on donations as a source of income. Sometimes money comes in. Often, it doesn't.

Patreon has helped out some members of the open-source community, but many developers aren't popular enough to attract a following monthly.

Distros such as elementary OS and Ubuntu MATE manage to bring in some revenue using this model, but the platform is better suited for content creators than software developers. Some alternatives to Patreon such as Liberapay and Open Collective share the values of the open-source community but typically bring in even less money.

Organizations have an easier time attracting donations than individual developers. Groups such as The GNOME Foundation, KDE e.V., the Free Software Foundation, and the Software Freedom Conservancy bring in enough donations to function.

Open source enthusiasts donate to benefit a cause, and companies sometimes contribute big dollars to support technologies they depend on. Some are even willing to become corporate sponsors.

2. Working for a Company

Many developers earn their monthly income creating Linux code. They work for companies that, for one reason or another, have determined that supporting the Linux ecosystem is good for business.

Some are "open source" companies. Making free software is a key part of what they do. Red Hat is the largest example of this. Canonical, who makes Ubuntu, is another prominent one. Both make money by establishing support contracts with companies that use their products.

A growing number of tech companies are giving back to the open-source community, even if the primary product they create isn't free. Google, whose Android and Chrome OS are both based on Linux, is heavily invested in how well the kernel performs. Microsoft has its own Linux distros now too. The same is true of Amazon.

Related: Signs Microsoft Is Really a Fan of Linux

Still, most companies with Linux developers don't contribute code back to the broader community. Many of them simply create or maintain the enterprise software necessary for a company to do its job. Linux, after all, is more prominent on servers than desktops.

3. Being an Independent Consultant or Contractor

A developer can make decent money going independent. Rather than join a company, they take their skills and work as a consultant. Many organizations need help starting an open-source project, and a consultant can help them get off the ground.

Others find that keeping a project going is even harder and turn to a consultant for help. Many companies need help building or maintaining a Linux server but don't want to hire someone for a full-time position. An independent contractor with Linux expertise can come in and take care of the job.

This work doesn't always provide the steady paycheck that being an employee does, but it provides more reliable income than donations. It gives someone with plenty of Linux-related skills a way to subsidize all the programming they've done for free.

4. Hunting Bounties

One innovative approach to paying developers is actually rather old school. Name a job you want to be done and put up a bounty. Whoever does the deed takes home the reward.

Bountysource is a website where users can contribute money towards these bounties. The reward doesn't have to come from one source. Many people can toss $5 toward a project in hopes that if enough people jump in, a developer will find the reward enticing.

Unfortunately, the prize money doesn't always match the task. The elementary project previously embraced Bountysource as a way to attract help, but even with additional contributions from users, most jobs only offered a developer $100 or less. That's pennies compared to the money a programmer makes in the private sector.

5. Selling Paid Versions

krita-microsoft-store

This may seem like we've come full circle, but it's true, some projects do make money by selling paid versions. One example is Krita, the digital painting tool that is part of the KDE project. The app is free for anyone to download, but you have to pay if you get it from the Microsoft Store.

Krita isn't alone. A number of apps now remain free to download from the usual places, but they cost money from sources where people are inclined to associate quality with cost.

The Conversations XMPP client is free on F-Droid, but it will set you back a few bucks on Google Play. Paid software does sometimes appear on the Linux desktop. The most prominent example is elementary OS, whose AppCenter has a pay-what-you-can model that is one of the many reasons to give elementary OS a try.

While you have the option to change the price of any app to $0, by default, many are paid apps. The same is true for the operating system itself. Then there is Zorin OS, which provides a paid version called Zorin OS Pro.

Why Do They Do It?

Motivations vary from one person to the next. Many developers have an ideological belief that software should be free and open source. Some are happy to use their skills creating software they enjoy after spending hours on less interesting projects for their day job.

Others are students flexing their muscles for the first time. At the end of the day, "free" labor isn't free. Volunteers have to make money somehow. And while much of the software in your distro's repos come from developers who work for free, many people are still paid to contribute to the open-source ecosystem.