10 Ethical Ways To Fund Your Open-source Project
Funding for open-source projects has for years been a conundrum for many free software developers and advocates. My initial inquiry about open-source funding came from wondering how a game developer could fund open-source game projects while remaining competitive to the potential profits of proprietary releases. Quickly this inquiry grew into a more general list of possible methods of funding all kinds of open-source projects, and luckily many successful examples of these alternative funding methods already exist.
To avoid any confusion I'm going to frame these methods of funding under the following ethics.
No spying on the user (advertising, data mining, etc.)
No compromising of a products functionality ([1]AdBlock Plus)
No source code obfuscation
No obfuscation on compiling the program
No restrictive license on what is done with the source code
With these general guidelines out of the way lets get into this list of 10 ethical ways to fund your open-source projects.
One Time Donations
Every open-source project should provide it's supporters an option for one time donations. One time donations are one of the best low effort ways to begin getting financial support from dedicated users. More than likely accepting one time donations will not provide you with a sustainable income, however it can still be a great boost when combined with other revenue sources.
Patrons
Patrons have long been around to support starving artists, and modern platforms like Librapay, the soon to be defunct Bitbacker and Patreon have made great strides with taking patronage into the digital age. When a developer or a project is able to build long term financial support it provides a level of sustainability and security, allowing better focus on actual development. A premiere example of this kind of revenue model working for open-source is the Godot game engine. Currently boasting 1,145 patrons, with a total income of $11,469 a month.
Selling Support
This revenue model consists of selling technical support, setup, consulting, and much more. Essentially you build a paid ecosystem around supporting and maintaining a piece of open-source software. Red Hat comes to mind as a pioneer in this field having been a consistently profitable company for the last 16+ years. Red Hat got it's roots in selling support for it's Linux distribution Red Hat Linux, but now they have all kinds of products in a broad range of categories from middleware to storage.
Closed Assets
Keeping license restricted assets for valid purchasers of software is a great way to have an open-source project while being able earn revenue from sales. The closed asset model is particularly well suited for game development, as generally games have a large amount of assets, such as art, music, and sound effects. This approach was popularized by John Carmack, a founder of id Software, and is seen in many of id Software's game releases, including the ever popular Doom and Quake series, which still garner sales to this day.
Hardware Sales
Depending on the type of open-source project you are creating one possible avenue for profit is selling hardware. This model could work for a wide variety of [2]projects, including operating systems (Pop! OS), VoIP/telephony (Digium), and robotics (ROS). A great example of open-source hardware succeeding is the company Adafruit. Adafruit has it's roots selling DIY kits for creating open-source hardware, and software projects. A personal favourite example of the hardware model is Arduboy, an Arduino based handheld game console; it's seriously awesome.
Corporate Sponsors
If an open-source project manages to grow large enough and have decent infrastructure built around it, then corporate sponsorship opens up as a means of revenue. In the space of corporate sponsorship Linux dominates with hundreds of sponsors. Though Linux dominates it isn't alone in the realm of corporate sponsorship; a few more sponsored projects are Apache, and OSGeo. Generally sponsorship is renewed yearly providing more sustainability then an income model like one time donations.
Crowdfunding
With modern sites like Kickstarter, Gofundme, Indiegogo, and Bountysource, giving your open-source projects a jump start with crowdfunding has never been easier. Crowdfunding is a great way to get a large chunk of income all in one go, hopefully completely funding a development goal or the completion of your project. If you set your crowdfunding goals correctly -- and manage to achieve them -- then for most smaller projects crowdfunding alone can be enough to get by. For large projects, or ones with continuous maintenance crowdfunding is still a great way to get a kick-start, or at least fund a few development goals. Depending on the project an Initial Coin Offering might be the best way to crowdfund, and might even work toward helping users obtaining assets for an open-source project such as a card game -- I touch on this more in the "Merchandise and Resources" section. Don't forget you can combine crowdfunding with other sources of income. Here are a few projects who had success crowdfunding, Niryo One, La Frite, Beehives, Nybble Robotic Kitten.
Grants
A fairly common way of funding an open-source project is through grants. Government and university grants are two income options that some open-source projects have had success with; of course results will greatly vary depending on your government or university. You can also get grants from other sources, such as these open-source projects that are giving grants to help out smaller open-source development, Mozilla's grant program, open-source Grants initiative of the Travis Foundation.
Direction Incentives
A model for for funding open-source I have never seen utilized -- but would likely have great success -- is direction incentives. What are direction incentives? In short direction incentives are a list of potential additions to a project that users put money towards, and ones with the most funding are prioritized. This could work in a multitude of ways, but in terms of game development a few examples are, what dungeon gets made next, what set of items are worked on, what new character is added, etc. Another way to explain direction incentives is polling user opinion based on financial support.
A project likely wouldn't want direction incentives to rule all of development as this could lead to loss of control, ignoring core development, neglecting bug fixes, etc. Thus it is up to a project manager to maintain balance and not make direction incentives too ludicrous.
Merchandise and Resources
If done cleverly, selling merchandise could be quite a decent option for making revenue from open-source projects. For example, if a project had a lovable [3]mascot then to bolster sales that mascot could be put on all kinds of merchandise. That said generally most projects just use merchandise as a way to spread the word, and potentially provide a little extra income. A few projects selling merchandise that come to mind are ElementaryOS, Wikipedia, Free Software Foundation, and Docker.
Along the same vein as merchandise you could also sell external resources; such as tutorials, I could see this providing some revenue for an open-source game engine. The tutorials could come with assets as well to further the incentive.
With an open-source game buying and selling assets could be a integral part of gameplay. This idea is particularly suited to card games, for example Spells of Genesis. One problem is that selling of in game assets is a grey area when it comes to my initial rule of "No compromising of a products functionality".
Summary
Traditional methods of selling software don't thrive as well in the world of open-source, but that doesn't mean profit is impossible. With some creativity and a little elbow grease competing with proprietary sales isn't impossible; in fact, it has been done many times. Some previously mentioned projects have even seen unparalleled success likely because of taking an alternative route to their competitors.
Also, it is worth remembering that the 10 methods of generating revenue from an open-source project listed above can be combined in a multitude of ways to further increase profitability.
Get creative, profiting from open-source isn't a one trick pony, don't be afraid to think outside the box.
Footnotes
[1] AdBlock Plus gets paid by Google for letting whitelisted Acceptable Ads bypassing the browser ad remover.
[2] Hardware can also be designed and sold for an existing open-source project, with the proper license or owners permission. Arduboy is quite a good example it makes use of the already existing open-source Arduino electronics platform.
[3] Checkout these mascots for different computing projects, many of them are for open-source projects -- do a word search for "open-source".
Pretty cool list, thank you!