{"id":22,"date":"2008-01-23T00:53:01","date_gmt":"2008-01-23T00:53:01","guid":{"rendered":"http:\/\/porkrind.org\/missives2\/?p=22"},"modified":"2010-04-20T05:02:32","modified_gmt":"2010-04-20T12:02:32","slug":"the-road-to-shareware-how-a-free-software-advocate-ended-up-releasing-a-shareware-program","status":"publish","type":"post","link":"https:\/\/porkrind.org\/missives\/the-road-to-shareware-how-a-free-software-advocate-ended-up-releasing-a-shareware-program\/","title":{"rendered":"Selling out: How a Free Software advocate ended up releasing a shareware program"},"content":{"rendered":"<p>I write computer programs for a living and quite often I end up writing code for myself at home. Occasionally I get the software into a releasable state and stick it up on my web site. When I had a steady salary I would always just GPL everything I released. Mostly since I didn\u00e2\u20ac\u2122t want to support it\u00e2\u20ac\u201cI felt that if I tried to hoard the source code I\u00e2\u20ac\u2122d be on the spot if someone needed it fixed for them, and I\u00e2\u20ac\u2122d feel bad if I couldn\u00e2\u20ac\u2122t do it. Giving away the source cleared my conscience since I figured, if you don\u00e2\u20ac\u2122t like it, change it yourself.<\/p>\n<p>When I quit my job and started consulting I lost the security that comes from a steady paycheck. I\u00e2\u20ac\u2122m making more money now, but it always feels temporary and fleeting. So when I needed to write a piece of software to scratch my own itch I started thinking about selling it instead of releasing it as free software. I know, that seems antithetical to the Free Software movement and, well, it is. My dad laughed out loud when I told him I was releasing a shareware app since I\u00e2\u20ac\u2122ve been know to rail about proprietary software before. It\u00e2\u20ac\u2122s amazing how a little financial insecurity can change your outlook. Don\u00e2\u20ac\u2122t worry, I still donate to the FSF and believe in Free Software.<\/p>\n<p>Mostly, I was very curious about how much money I would make form a piece of shareware. My program was a pretty simple idea\u00e2\u20ac\u201cI wanted to have multiple libraries in iTunes for different versions of my music. I have my music all ripped to a central server that transcodes on the fly so it can serve out different file formats at different encoding rates to my various clients. When I\u00e2\u20ac\u2122m away from home I stream .mp3\u00e2\u20ac\u2122s to my iTunes and .oggs to my xmms. At home I stream .wavs to my iTunes and .flacs to my xmms. If I\u00e2\u20ac\u2122m somewhere with not a lot of bandwidth I can stream at a lower bitrate too.<\/p>\n<p>So I wanted to set up my iTunes with a library full of .mp3 streams and separate library with the same songs as .wav streams. I looked around at the existing freeware and shareware solutions and found them all lacking. They all were separate applications that you had to run which I thought was too cumbersome. At this point Apple hadn\u00e2\u20ac\u2122t added the option key and iTunes boot trick (which I still think is more cumbersome than my final solution).<\/p>\n<p>What I really wanted was something that fit inside of iTunes so I could switch without launching a separate program. Something that would just be smooth. Since I started programming on the Mac back in the System 7 days I was familiar with the low level carbon calls and I figured I could abuse iTunes plug-in interface to do what I wanted. So I hacked on it for a weekend and got it working. <a href=\"\/multitunes\">MultiTunes<\/a> was born.<\/p>\n<p>When I was done I thought <a href=\"\/multitunes\">MultiTunes<\/a> was smooth enough to warrant releasing it. So I downloaded a copy of the GPL and was prepping a release when I thought, \u00e2\u20ac\u0153wait, these other guys sell theirs. Why can\u00e2\u20ac\u2122t I sell mine? How much would I make anyway? Could I make a living selling dorky little shareware apps?\u00e2\u20ac\u009d I looked around for people doing shareware but didn\u00e2\u20ac\u2122t really find anyone that would divulge their numbers and so I couldn\u00e2\u20ac\u2122t really get a handle on how much it would really pay. So in the spirit of experimentation, I decided to release it as shareware and see what happened.<\/p>\n<p>Releasing a program is hard. It always takes 10 times longer than I expect to get everything right. I think I spent more days on the details of the release than I spent getting the program working in the first place. I had to make some artwork for the disk image, a script to create the disk image so I can just to \u00e2\u20ac\u0153make release\u00e2\u20ac\u009d and not have any manual steps\u00e2\u20ac\u201cthe more manual steps you have to make, the more errors will occur in the process causing more delays and more overall time spent resulting in less payoff per hour of work. More importantly, the harder it is to release, the more I dread it and refuse to work on the program. So it\u00e2\u20ac\u2122s important for me to have the release process be <em>really<\/em> smooth. I  want to edit a version number in <em>exactly one<\/em> place, edit the changelog, tag the repo and \u00e2\u20ac\u0153make release\u00e2\u20ac\u009d.<\/p>\n<p>Releasing my first shareware program was doubly hard. How do I get someone to pay me? I looked up merchant accounts and credit card services and realized they were way too much work. Maybe if I was doing this full time it would make sense, but no, I don\u00e2\u20ac\u2122t want that. I looked at some shareware services but ultimately decided to just use Paypal and some custom server software to give out registration codes on receipt of payment. This actually didn\u00e2\u20ac\u2122t take too long to write\u00e2\u20ac\u201cmaybe a day or two\u00e2\u20ac\u201cand I made sure I wrote it generically enough that I could easily add more programs to sell when I inevitably came up with more brilliant ideas. It\u00e2\u20ac\u2122s been 2 years since then and I\u00e2\u20ac\u2122ve come up with approximately zero. But the point is, the infrastructure for selling wasn\u00e2\u20ac\u2122t too hard, provided I was willing to give up a percentage of my profits to Paypal (which I was).<\/p>\n<p>The next step was deciding on a price. Too high and no one is going to buy it. Too low and I\u00e2\u20ac\u2122m essentially throwing away money that people would be willing to give me. I looked around at <a href=\"\/multitunes\">MultiTunes<\/a>&#8216; competitors, as well as other shareware iTunes plug-ins. I thought my solution was smoother than my competitors\u00e2\u20ac\u2122 so I thought the price could stand to be higher. I didn\u00e2\u20ac\u2122t think I could charge as much as Octiv\u00e2\u20ac\u2122s VolumeLogic, which before it was defunct cost $19.99. I asked myself what I was willing to pay for <a href=\"\/multitunes\">MultiTunes<\/a> had I not written it and I decided I was willing to pay $10. But I know I\u00e2\u20ac\u2122m a cheapskate when it comes to shareware and so I added 50% to that. I also decided to use the cheesy and cliche $0.99 perception trick and so the price I chose was $15.99.<\/p>\n<p>I thought it might be too high, but then again, it\u00e2\u20ac\u2122s easier to lower the price if it\u00e2\u20ac\u2122s too high but it\u00e2\u20ac\u2122s annoying to try to raise the price if you feel it\u00e2\u20ac\u2122s too low. In the end I think the price I chose was right, but it\u00e2\u20ac\u2122s more of a feeling than a fact backed by hard evidence. The only real way to tell would be to offer it to different people at a different prices and see what happened, but that seemed unfair and hard to set up.<\/p>\n<p>So, I have a nifty program, a infrastructure for selling it, and a price. How much money am I going to make? Well, I\u00e2\u20ac\u2122ll write a separate post about that soon, but in the meantime I\u00e2\u20ac\u2122ll answer it this way: Not enough to live off of. Certainly not as much as the Delicious Library guys, but then again my program isn\u00e2\u20ac\u2122t nearly as cool, sophisticated or good looking. Then again, I wrote it by myself in a weekend or two! And even factoring the time I\u00e2\u20ac\u2122ve spent improving it and the email support I provide (and a random telephone support call that I got while visiting my parents for Christmas from a guy who looked up my phone number (!!!)) I think the profit per hour ratio is not too bad. Sadly I didn\u00e2\u20ac\u2122t really keep track of the time I worked on it so it\u00e2\u20ac\u2122s hard to calculate that number exactly.<\/p>\n<p>Anyway, that\u00e2\u20ac\u2122s all for now. I\u00e2\u20ac\u2122ll post something soon with specific numbers\u00e2\u20ac\u201cprofits, piracy rates, etc. The kind of stuff I wished I\u00e2\u20ac\u2122d had an idea about when I first started.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I write computer programs for a living though quite often I end up writing code for myself at home&#8230; When I quit my job and started consulting I lost the security that comes from a steady paycheck&#8230; So when I needed to write a piece of software to scratch my own itch I started thinking about selling it instead of releasing it as free software.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/posts\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":7,"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":155,"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/posts\/22\/revisions\/155"}],"wp:attachment":[{"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/porkrind.org\/missives\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}