Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

As an entrepreneur/programmer who makes a good living from writing and selling software, I'm dumbfounded as to why developers write applications and then put them up on the Internet for free. You've found yourself in one of the most lucrative fields in the world. A business with 99% profit margin, where you have no physical product but can name your price; a business where you can ship a buggy product and the customer will still buy it.

Occasionally some of our software will get a free competitor, and I think, this guy is crazy. He could be making a good living off of this but instead chose to make it free.

  • Do you not like giant piles of money?
  • Are you not confident that people would pay for it?
  • Are you afraid of having to support it?

It's bad for the business of programming because now customers expect to be able to find a free solution to every problem. (I see tweets like "is there any good FREE software for XYZ? or do I need to pay $20 for that".) It's also bad for customers because the free solutions eventually break (because of a new OS or what have you) and since it's free, the developer has no reason to fix it. Customers end up with free but stale software that no longer works and never gets updated. Customer cries. Developer still working day job cries in their cubicle. What gives?

PS: I'm not looking to start an open-source/software should be free kind of debate. I'm talking about when developers make a closed source application and make it free.

share|improve this question

closed as not constructive by Mark Trapp Sep 26 '11 at 8:16

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

"Ship buggy product..." Sigh :( – user1249 Sep 14 '10 at 7:09
Free software breaks? I'm sorry you choose bad free software. Have you tried something like Ubuntu? So much quality software in one nice package. And, IE or Chrome being free isn't a bigger issue to you? How's a solitary programmer going to compete with that? – dlamblin Sep 14 '10 at 22:05
I've had plenty of payware apps that have died after an OS upgrade and were not updated. – mlk Sep 15 '10 at 8:31
Free software breaks more than commercial software? Thats completely false. – alternative Feb 6 '11 at 13:43
99% Profit margin? Can I take some of the drugs you're on? My time isn't worthless. – Incognito Feb 6 '11 at 14:32

64 Answers 64

There does come a point where enough is enough, and then there is the fact that it does take more effort to sell something even though it may be a small effort. I still need to come up with a way to collect money for example.

I think the reason I post free apps that are closed source is simply because I love full featured freeware myself, so I like sending it out to the world with the same idea in mind. When I can get a significant task done with a completely free software package it feels great, so I like to share that.

Really if the answer of 'why not make it free?' comes down to 'because you can get piles of money' then it all is about what your motivation for releasing some software is. Not everyone is motivated by more and more cash.

share|improve this answer
It's less about the cash itself, but the ability to make enough of it to be able to work for yourself... not for a company or as a contractor, but entirely for yourself. Software makes doing this so easy. No office, no overhead, etc. Once you've done that you can never go back to working for someone else. – Ken Sep 13 '10 at 14:58
@Ken: That's not strictly true. Working for yourself entails certain bits of work that not everyone wants to be involved with. I have looked at the option of working for myself, and while I feel confident I could do it, I have no desire to deal with a lot of the minutiae that would come with it. I found a company I'm happy to work for, that values me, and I'm content working for them. – Harper Shelby Sep 14 '10 at 5:10
Question - If you are releasing it as freeware, do you have a specific reason not to release it as free software (open source)? – alternative Feb 6 '11 at 13:47

I release my software for free because I have spent time and energy on it but have neither the time or inclination to market it, someone might-as-well benefit.

By personal philosophy is (and I do sell software too), "Competition makes you better".

If you can't create a product that blows the competition (free or not) out of the water you're going to be in trouble.

share|improve this answer
But you don't even need to market it! Just make a basic webpage and if it does something that people need, and typing that need into Google makes your webpage come up, then you'll have instant customers. – Ken Sep 13 '10 at 15:00
@Ken Yes but if you don't market it, nobody's going to find it, and then you're not going to get paid anyway. There are gazillion programs out there for every task. Divide the number of potential customers by gazillion and you get an epsilon percent that will be exposed to your program by sheer chance, and they are not going to buy it because they are just some teenagers who just want to use your program once, ad hoc for something. So what's the point? Without thinking about the business practices around your program you're not going to be paid anyway (not any significant amount anyway). – EpsilonVector Sep 14 '10 at 5:10
@Ken There it is: "...or an article talking about our product". How did you manage to get someone to write an article about your program? People don't usually write about some obscure audio-video format converting program buried deep in the archives. Just the fact that a journalist noticed you means you invested more efforts in promoting your program than what many do-it-for-fun programmers are willing to invest. – EpsilonVector Sep 14 '10 at 17:24

I see two main reasons:

  • An individual programmer may just want to be known and loved.

  • There is an alternate economic model behind the scene. Some famous examples: iTunes, Acrobat reader, Firefox, Ubuntu are all free but their promoters all make money with these products (selling entertainment, paid features, audience for search engines, support).

share|improve this answer
This alternate economic model would start to work as soon as the baker around the corner started to give away their bread in exchange for the free software they have downloaded. – Giorgio Nov 30 '12 at 10:07


Most of us make use of software that has been provided to use free of charge. As a result, it makes sense to share our own software free of charge as well. Basically, we are exchanging our software for the other free software but without the overhead of actually going through a transaction. There will be leaches who do not contribute, but since distribution is so cheap that does not matter.

Selling is Hard

Actually trying to sell software makes the process much more difficult as you have to market, collect money, and worry about the legal ramifications of selling to people. For a lone programmer this takes them away from what they really want to be doing. As a result they may release their program simply so that other people can have benefit even if they cannot.

A New Model

It might be argued that a new model of software development is arriving. The model of selling software is an attempt to take physical-world selling and apply it to software. However, software is not like the physical world. Because distribution is so cheap a couple of issues arise.

  1. Letting someone use your software is basically free for you.
  2. Attempting to prevent people who haven't paid for the software from using it is really expensive.

Under this view, attempting to charge per copy of the software is a losing game. Thus you should attempt to make money on software-related services, not software itself. Thus you might charge for a support contract, hosting services, etc. rather than the right to use the software itself.

Incidentally, this model is used by webcomics, web series, etc. which give the primary product away for free and sell related merchandise.

share|improve this answer
@Yar: Getting apps onto the App Store is not difficult if you pay attention to the rules and guidelines. Getting people to notice it once there, among 150,000 or whatever it is now other apps, is. – David Thornley Oct 25 '10 at 19:28
+1 for the "New Model" section. – Svante Feb 6 '11 at 11:25
The "selling is hard" point is something many people overlook but is very true. Most programmers are bad at it and generally hate doing it. +1 – Eran Galperin Feb 6 '11 at 15:26

A lot of free apps are created by someone who is fully employed and has come up with an idea for an application that they produce in their spare time. That person doesn't "need" the money to survive.

A lot of times finding the mechanisms to market, sell and collect payment are just not worth the effort and sometimes individuals just enjoy offering something they thought as useful to the general public.

If you are competing with a free application then the best strategy is to make a better product. I've often purchased an application over using a free version just because it offered more features or was better implemented in some way.

share|improve this answer

I've "released" (well uploaded to my website) a couple of desktop applications for free because I didn't think anyone would be prepared to pay for them.

They're very small applications and I couldn't justify charging more than £10 or so for them anyway. I didn't expect to get many users (I know I have at least one) so it didn't seem worth setting up the PayPal integration on my website to collect payments.

If I ever write something larger that I think will have a market then I will look harder and longer at getting payment for it.

share|improve this answer

Releasing free apps and working on open source programs are great advertisements for selling a product, namely you. (Alternatively phrased: free apps are a loss leader for selling your time.)

There's also the concept of the "gift economy", where the more you give away the wealthier you are. Why would I not donate back to my peers/society at large when I have received so much from so many people?

Lastly, what other field allows you to directly affect the lives of millions of people by writing something that makes their lives that little bit easier?

share|improve this answer
Why? Bills. Food. – Paul Nathan Sep 13 '10 at 19:49
It is not an either/or situation. You can actually have a paid job AND release free software. – helgeg Sep 14 '10 at 5:43
@Paul I program for food. In my spare time, I also program and give away at least in part because other people gave me stuff: Squeak, SBCL, FreeBSD, exim, stunnel, epic, apache, emacs. And that's just the stuff off the top of my head. – Frank Shearar Sep 14 '10 at 6:17
@Mystere Man: If I charged for software I wrote in my spare time, I'd be butting up all sorts of interesting barriers (much more complicated tax return, possible no-compete issues). Since I write code in my spare time anyway, I have the choice of "only I see it" or "I give it away". To me, that balance tends towards "give it away". – Vatine Feb 6 '11 at 11:16
@el fuser, Mystere Man: It's an enormous amount of work running your own business, involving a lot of dogwork that I care nothing about, with a high risk of failing. Instead of, say, doing what I love all day, with a good enough salary, and financial security for my wife and children. So by all means, go run your startup. Good luck. – Frank Shearar Feb 6 '11 at 14:09

Because I don't want to feel obligated to provide technical support or offer refunds.

share|improve this answer
this is a really great answer, so much win for such a small amount of words – ioSamurai Sep 13 '10 at 18:37
We've had good luck in the past with pricing simple apps at $8. Maybe it's just a Mac thing, but we found users would easily part with $8 and then wouldn't feel particularly entitled to a high level of support (they were always surprised at the high level of support they got ;) ) Actually getting money encourages you to keep working on the app, make it bigger and better. If we feel it's significantly better, then we simply raise the price accordingly, usually to $20. I don't believe in software costing much more than that. – Ken Sep 13 '10 at 21:13
@BlairHippo: Why would you want to be giving out buggy, unsupported, undocumented software in the first place? – Ken Sep 13 '10 at 21:14
@Ken: maybe because it was made for scratching the dev's own itch (and thus didn't need to be very fancy), and then the dev realized many others wish to scratch a similar itch? – Piskvor Sep 14 '10 at 10:49
Giving away your software for free won't stop people from complaining and being jerks. But you'll feel zero guilt telling them to go F themselves when they didn't pay for it. – John MacIntyre Sep 15 '10 at 3:21

Start them off with a free version.

Then by version 4 start charging.

If the product is any good, people will continue to buy it.

Alternatively, go the Google route and offer a cut-down version for free, with a pro version costing a small amount extra.

share|improve this answer

I suggest that you watch this fantastic video to learn why money is often not the motivation for doing things: RSA Animate - Drive: The surprising truth about what motivates us

I recommend that you watch the whole thing, but it also directly answers your question around the 6:40 mark.

share|improve this answer
THis is probably quite spot on why people write software for free (and really why anyone does anything without charging for it) – nos Feb 4 '11 at 22:06
Awesome video! TYVM for sharing it! – jweyrich Feb 6 '11 at 10:39
He mentions Atlassian who makes really nice software. – user1249 Sep 30 '11 at 10:42

I've come across quite a few app where I ask my self "You are asking for $20.00 for this crap?" I know I can do it better and in order to "stick it to the man" I release it for free.

I understand that there is lots of time and money going into those apps but I also believe that if you are going to put out a product for sale, it should be top notch or just give it away.

share|improve this answer
Agreed. People should not be charging for crap. If what you can make in a few days is just as good as what someone is charging for, then obviously it's not worth $20. – Ken Sep 14 '10 at 17:09

I shared my application for free. In fact, it helped my potential customers to see how it is working and they contacted me with a proposal of buying and with some additional features to implement. Free distribution of software helped my customers to see how much beneficial it is for them.

share|improve this answer
  • Some people write programs for the fun of it—selling it turns it into work.
  • Some people rank the number of people who use their programs above how much cash they get for it—selling it pushes down the first where they don't care much about the second.
share|improve this answer

Well, I post some source code to my website (at the moment, terribly outdated). In part, it is sort of a portfolio idea.

I would be very happy to sell my software for scads of cash if I had a decent product idea that some open source junkie couldn't clone and give away. Since those kinds of products are pretty hard to do solo or with a few other people, I decided a few years ago that the embedded systems/hardware market was a more financially sustainable career, and today I am happily working in a cubicle at a embedded systems company helping create ultra-high-reliability systems that make the world a better place.

Also, business - real business that pays all your bills - is hard to do right by yourself, in general. If you don't want to take that risk or deal with the hassle, it might be easier to simply give it away and keep the day job and just make small programs as a hobby.

share|improve this answer

You might find a lot of insight in Chris Anderson's Wired article Free! Why $0.00 Is the Future of Business.

You will however find many examples where the developers accept donations, and maybe Flattr will succeed where micropayments have failed.

There is also other transactions being made here, although it does not involve cash:

  • Labor: Debugging and testing effort on platforms and in usage scenarios never envisioned by the original developers. By automatically tracking usage the developers get valuable information.
  • Reputation: For many programmers, programming is ever so much about the positive feedback from making the software in the first place and people cherishing the result.
  • Altruism: Making software products is relatively easy these days because of the availability of free and good developer tools and libraries. Releasing software back for free is one way of paying back to the community.
share|improve this answer

I write code because I enjoy writing code. Not because I want to be rich, or because I want to change the world, or anything like that. I enjoy writing code, and I like it when people get to benefit from this fact. Why should I charge them lots of money for that?

I also get to benefit from lots of people who feel the same way, and it's a way of giving back to them. I get to use Linux, and Firefox, and .... for free every day, so if I can do something that somehow benefits others then why not?

share|improve this answer

I get paid enough at my day job as a programmer. I mostly code on my own little projects for fun. I release almost all of what I write on my own time for free and under a free/open source license because:

  1. These are fun projects (e.g. an interpreter for a simple language, a tool to clean up JavaScript code, various small scripts, etc.). These are not "enterprise" applications. Not even small applications home users need to get some job done or for entertainment. Okay, there might be a few people who might actually pay a very small amount for some of the tools I write. But really, it would be a trifling sum, and I really don't need the money badly enough for me to consider the effort involved in marketing and selling them.

  2. As someone growing up in the 1980s and early 1990s, and that too in a developing country, I understand how it feels not to have enough money for or access to the tools I need. Payment is a big hassle for a lot of people not living in the west, and even if it is possible, a few dollars can translate to a lot of money for a student on the other side of the world. If most of the people who might actually use these tools wouldn't be able to pay for them anyway, what's the use of charging for them?

  3. As other answers have already pointed out, my own projects, as well as the effort I put into any larger projects that are not owned by me, pays off for me as advertisement for my skills. Apart from such things as making me more liked by other people, it also helps me getting noticed by potential employers and thus helps me career-wise. A freely available software is bound to be better known and more widely used to something of equal quality but not free of cost.

As other answers already point out, if the efforts of a single or a small group of people who are coding in their spare time are threatening the commercial prospects of software written by people doing it to make a living - I think it is up to the latter to work harder to make their product worth spending money on rather than the other way around. If anything, it just sets the bar higher for quality software which is good for all concerned.

It's like saying giving away your old clothes to charity hurts people in the textile industry.

share|improve this answer

There are other ways to make money than to charge directly for the software. Facebook is free software, but it brings in millions.

share|improve this answer

Because I have the feeling that my knowledge can help others in improving their daily work. I also think that public projects increase your visibility across the globe and companies will be interested in you and possibly want to hire you. The latter of course requires that your code base is good and the project becomes popular.

share|improve this answer

People are less willing to pay for virtual stuff like programs, plus, there are many other free programs, so your commercial program, even for 1 cent, won't sell. Also, programs can be copied easily.

"money is the human word for quatloos", that's why some programmers avoid it.

share|improve this answer

One of the main reasons why I'd consider releasing an app for free is because it's a surefire addition to my portfolio for future endeavors (potential job opportunities, promoting your name in the programming world). That's more than enough payment if you ask me.

share|improve this answer

I'm in love with coding! I really feel excellent when I think of somebody who's using my applications around the world. This was the first reason for my free applications. I should confess that I make a living with programming, besides I love producing free applications.

share|improve this answer

I tried my hand at selling a product that made working with Access SQL much easier, fun even...

I have a few dedicated users who love it, but it has not made me "loads of cash". I am now considering setting up a blog and offering it for free. As I no longer work with Access (ASP.NET MVC now), it doesn't hurts me and why not give back to the community that got me going?

Tech support has been hell, writing the installation was not my core skill, so on and so forth. Collecting money was as simple as using PayPal, so don't see that as an issue.

So my motivation is giving back to the community. I write articles for the same reason (for example,, but with a lot of these websites getting bought up, it is probably time to set up my own blog. Money? A bit of advertising, maybe. Or selling my collection of short stories on (The Kingfisher and other stories, by Andrew Wrigley)...

And yes, being loved. Money can't buy that, can it?

share|improve this answer

My application is free because the service, which it is a client for, is free. I don't believe any of my users will expect to pay me for a service that they can get elsewhere for free...

share|improve this answer

Because good software tools need some time to develop.

So you start your project and are aware that no one would pay for it, as it is.

But if you give it away for free people might start using it, provide feedback and free testing, development ideas, etc...

Finally, if all goes well you can create a non-free version and sell it.

share|improve this answer

The customer wants - and pays for - solution, not software. If you want to see your customer satisfied, you should do a lot of customization work for him/her, not just throwing the software install CDs into his/her PO Box.

Even big software companies, who sell licences at horrible prices, provide (I mean: sell) additional services beyond the licences. From a tight angle, open source looks like a co-operation of smaller software companies to minimize development costs and set licence fees to zero. It looks like a win-win situation for the software company and the customer.

share|improve this answer

Because I don't like to write support documents along with application /software. Maybe some company like it, buy it and land me a job.

share|improve this answer

Problem: You're using both meanings of the word "free" at once, which is confusing. Free Software (capital letters) is often, but not always, an ideological position. It can also be practical. How can you collaborate on closed-source code?

As for freeware ("free as in beer"), some people do it to advertise their skills or as a taster, to encourage people to buy a more full-featured program. I have a freeware video converter which prompts me to install browser toolbars every time I use it. I don't use it often enough for this to annoy me.

share|improve this answer

Why does anyone offer free advice here on Stack Exchange when some people make money answering technical questions? I think this points to a basic psychological need to be generous. Jorge Moll and Jordan Grafman, neuroscientists at NIH, have found that charity is hard-wired in the brain. See the Washington Post article ``If It Feels Good to Be Good, It Might Be Only Natural'' at

Both Kohlberg's theory of cognitive development and Gilligan's ethics of caring view people as interdependent and developing towards increased empathy and altruism. This behavior is necessary for humanity to survive and thrive.

Lewis Hyde says there are two types of economy: (1) The exchange economy (economy of scarcity), where status is accorded to those who have the most and (2) the gift economy (economy of abundance) where status is accorded to those who give the most. Examples of gift economies include marriage, family, friendship, traditional scientific research, social networks (like Wikipedia and Stack Exchange), and, of course, F/OSS.

IMHO, Eric S. Raymond and Linus Torvalds performed a miracle: transforming selfish programmers into generous programmers. This is very similar to how Elisha transformed 2,200 selfish students into generous people with the miracle of ``the feeding of the multitude.'' In II Melachim 4:42-48 Elisha must support 2,200 students. There's a famine. His students are hungry and selfish. Each of them has some food, but they refuse to share with each other. After Elisha distributed a mere 22 loaves of bread to them, they began to share with one another. Soon, not only are they all fed, but there's food left over. The true miracle is not that bread materialized out of thin air, but that those who were once selfish became generous, inspired by the example of one person's generosity. Something similar has happened over the last couple decades, as a result of the release of Linux and other free software.

share|improve this answer

There are several reasons for making software available for free. It could be, that the software is only written to produce something else - making the source free, offers the opportunity to incorporate bug fixes and features by third parties without having to pay them, while you can get money out of what you produce with that software. See "The Cathedral and the Bazaar".

Another reason is that you write the program for fun and/or training and getting comments on your code by peers or even more capable persons than yourself might be more important than earning money - in this case, selling the software for a profit wouldn't be profitable at all.

And there's the third option of high skill linked with high self-esteem, where you take the route of Tarn and Zach Adams and make a living off the donations you get. Dwarf Fortress (programmed by Tarn Adams) is available for free, yet receives thousands of dollars in donations per month.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.