Why I’m Done Making Desktop Applications

[Editor’s note: now available in Belorussian translation.]

Breaking up has always been difficult for me.  I tend to fall in love with being in love, and continue a relationship well past the point of futility.  And so it is with my oldest love, writing desktop software.

I’m sorry, desktop apps.  We just don’t have a future together anymore.  Its not you, its me.

A bit of background: for the last three years I’ve sold Bingo Card Creator, a desktop app which pretty much does what it says on the tin.  It has gone from being a passing fancy to a rather lucrative hobby to, well, a bit more than that over the years.  As I gradually became more invested in the business of writing desktop software, I got more and more snippy about the periodic desktop versus webapp flamewars, and defended the ascendancy of desktop software.

What Changed My Mind

Over roughly the same period my day job has changed and transitioned me from writing thick clients in Swing to big freaking enterprise web apps.  I’ve learned SQL, Rails, etc and used them to fairly decent effect in selling Bingo Card Creator, which is a Swing app (if all you have is a hammer…).  This summer, I decided to try stepping my web programming skills up a notch, and released a web version of Bingo Card Creator.  It has exceeded all my expectations: in ease of writing, in features, in sales, in support burden, in marketability, etc.  In game theory terms, it strictly dominates the desktop version, when seen from the eyes of the developer at any rate.

If I were starting out today, I would, without a shadow of a doubt, write a web app instead of a desktop app, for these reasons:

The Shareware Funnel Is Lethal

I have never used the word “shareware” to describe Bingo Card Creator, because I think that it is an anacronism that my customers do not understand, but among fellow technically inclined people it describes the business model succinctly.  Someone visits your website, downloads your trial, and hopefully purchases your program.  That process is called a funnel, and if you break it down into concrete steps, the shareware funnel is long and arduous for the consumer:

  1. Start your web session on Google, like everyone does these days.
  2. Google your pain point.
  3. Click on the search result to the shareware site.
  4. Read a little, realize they have software that solves your problem.
  5. Mentally evaluate whether the software works on your system.
  6. Click on the download button.
  7. Wait while it downloads.
  8. Close your browser.
  9. Try to find the file on your hard disk.
  10. Execute the installer.
  11. Click through six screens that no one in the history of man has ever read.
  12. Execute the program.
  13. Get dumped at the main screen.
  14. Play around, fall in love.
  15. Potentially weeks pass.
  16. Find your way back to the shareware site.  Check out price.
  17. Type in your credit card details.  Hit Checkout.

I could go into more detail if I wanted, but that is seventeen different opportunities for the shareware developer to fail.  If you don’t catch the download in the 30 seconds people give your website, no sale.  If your customer can’t find the file after they download it, no sale.  If it requires a JRE upgrade and after restarting their computer they’ve forgotten what they were working on, no sale.  If they play around with it, close it, and can’t remember how to open it again, no sale.  If they get to the sales page and can’t operate your shopping cart, no sale.

Is it any wonder why shareware has typical conversion ratios of 1% or less?

Web Applications Convert Better

A web application doesn’t have to be downloaded or installed, never requires a restart, and never requires a contextual change just to open up a purchasing page.  As a result, the conversion ratio is higher.  Much higher.  Here are the actual stats from Bingo Card Creator.  I’m looking at conversions from my best performing AdWords campaign only, because that minimizes sources of variation like, e.g., the different types of traffic I’ve gotten in the last 2 months (while the webapp was available) versus in the last three years.

Visitor to Free Trial:

  • Downloaded: 18 ~ 22%
  • Web App: 22% ~ 26%

Trial to Purchase:

  • Downloaded: 1.35%
  • Web App: 2.32%

This is essentially the same application.  If anything, the online version has less features, and it has 2 months of development whereas the downloadable application has had 3 years of improvements made to it.  Yet the online version outsells my desktop application almost two to one.

Your AdWords Strategy Is Very Sensitive To Conversion Rates

A portion the numerical disparity is because I have started to react to, e.g., the difference in conversion rates of advertising and promote accordingly.  A sale of either nets me the same amount of money, about $28.  However, if you break out the math on how much AdWords costs per sale (cost per click divided by conversion rate to trial divided by conversion rate to purchase):

  • Downloadable version: $20 AdWords CPA
  • Web App: $9 AdWords CPA

(You’re welcome, Google.)

This doesn’t just save me money, it helps me trounce my competitors.  For example, if my competitors are selling downloadable software, and they are equally as skilled as I am about writing AdWords ads and optimizing their websites, then it should also cost them about $20 a sale to advertise on AdWords.  (This explains why I never see ads for the competitors who try to gain volume by undercutting my price — if you’re going to price at $23.95, you’d better be a crackerjack SEO because you simply cannot afford to outbid me in AdWords.)

Decreasing my cost of customer acquisition by over half lets me bid more for my AdWords to gain additional volume.  For example, for the longest time my AdWords strategy was more or less monetizing traffic other people couldn’t be bothered with, while larger brands producing e.g. printed bingo supplies went after the head terms like [bingo cards].  With vastly improved conversion rates, I might be able to advertise profitably on those terms, increasing my volume and making me very, very happy.  As it is, I have walked up bids a bit and am getting 25% more inventory than I usually do.

Web Applications Are Easier To Support

Many desktop developers hate customer support with a burning passion in their soul.  I actually enjoy it, but I enjoy making it unnecessary even more, as there is no customer support experience so good as avoiding the problem in the first place.

Support requests from last 50 customers:

  • Desktop Application: 15
  • Web Application: 3

I’ve had three years to streamline the website, purchasing process, and application for my desktop app, and that has helped me greatly reduce the number of inquiries I get.  Even after all that work, the main culprits are pretty much the same as ever: installation issues, lost registration keys, and bugs present in old versions of the software that are still floating around download sites.

Web apps, by comparison:

  • Have no installation issues, because there is no installation.
  • Do not require registration keys.  (Technically, because I allow users to use both the desktop and web application, I issue them one — but it is immediately applied to their account via creative abuse of e-junkie and cookies.  Most customers get to use their software immediately without actually reading the bit in the email sent to them — or failing to read it, as happens quite often.)
  • Never have an accessible version of the software older than the most recent one.  By comparison, if you were to Google [bingo card creator version 1.04] (which hasn’t been distributed in, hmm, two years or so), you’d find it on hundreds of download sites.

The Age Of The Pirates Is Coming An End, Jack

I’m famously lackadaisical about software piracy, preferring to concentrate on satisfying paying customers rather than harming their experience with anti-piracy methods.  However, the existence of pirates is a stitch in my craw, particularly when any schoolmarm typing the name of my software into Google is prompted to try stealing it instead:

You want to take a quick stab at how many pirates have circumvented the copy protection on the online version?  Bwa.  Hah.  Hah.

I once remarked to Paul Graham that the future of software was with pervasive integration with the server simply because that means that downloading the client doesn’t let you pirate the software any more than downloading Firefox lets you pirate Basecamp.  (Ironically, I made that point in a defense of desktop software as a business model.  Mea maxima culpa!  Theoretical utility of desktop software is one thing, but I can’t ignore what my numbers are telling me.)

Phone Home vs. Google Analytics

One of the curious traits among software developers is that, speaking as a group, we feel something like “I own what happens on my machine and nothing should happen without my say-so”.  This generally leads to a severe reluctance to “phone home” from the application to the developer’s server — even reports on very innocuous data like “Did I steal this software or not?” is often tarred with the label spyware.

On the Internet, privacy expectations have evolved a bit in the last few years.  The overwhelming majority of the public has been told that they’re being tracked via cookies and could not care less.  If you write a privacy policy, they won’t even bother reading it.  Which means that you can disclose in your privacy policy that you track non-personally identifying information, which is very valuable as a software developer.

  • What features of your software are being used?
  • What features of your software are being ignored?
  • What features are used by people who go on to pay?
  • What combination of settings is most common?
  • What separates the power users from the one-try-and-quit users?

Tracking all of these is very possible with modern analytics software like, e.g., Mixpanel.  You can even wrestle the information out of Google Analytics if you’re prepared to do some extra work.  You can do it in a way which respects your users’ privacy while still maximizing your ability to give them what they want.

Some people may be under the impression that users will tell you what they want.  Nope — most of them will assume you are like every other business they have ever dealt with, where their opinion doesn’t matter, and the software is offered take-it-or-leave-it.  And they just left it!

Things I learned about Bingo Card Creator customers which I never knew before I had an online app:

  • The most common word used in bingo cards is — ready for it — “baby”.  I completely underestimated the demand for Baby Shower bingo cards, and avoided making an official set for years.  As soon as I had the top ten word list (which was all baby shower words) I fixed that.
  • The more features I add to the software, the worse it sells.  (This is, needless to say, highly unintuitive to most software developers.)
  • Most customers purchase within two hours of signup, so it is absolutely imperative that their first use of the software exceed all their expectations.

Web Apps Can Be Customized Per User

Downloadable software pretty much has to treat every user identically by default.  There are very limited ways to segment users, and no way to report the results of experiments.  For web apps, however, if you have a halfway decent A/B testing library (like, say, the free one I wrote for Rails developers), you can experiment with having multiple versions of the application available concurrently, and see which one performs best.

The data collected by A/B testing has helped me:

  • simplify my options screens to avoid confusing users
  • improve the first-run experience
  • write instructions such that they’re easier to follow

In addition to changing program behavior randomly, you can segment your users.  I have only scratched the surface of how powerful this is, and it is already producing solid results for me:

Don’t treat your newbies like you treat your power-users. You have a database.  It records all their actions since the dawn of time.  Use it.  I have a couple very simple heuristics for “is probably still getting used to the software” and, if you are, the software treats you with kid gloves.  For example, it hides complex, seldom used options by default.  It gives you instructions to a degree that a power-user might find insulting.  (I don’t have the artistic skills to draw a little animated paperclip but I would if I could!  It looks like you’re trying to make a bingo card.  Need help?)

Give your customers a “credit” score.  I have a particular heuristic which segments users into four buckets.  It isn’t exactly FICO, but it does successfully predict conversion rates: they range from 10% in bucket A to 0.01% in bucket D.  Bucket C is interesting, though — they convert some of the time, but don’t seem to be getting quite the value out of Bingo Card Creator that Bucket A does.

I wonder if Bucket C would feel differently if they got a $5 coupon in the email.

Meanwhile, it looks like Bucket D isn’t very interested in paying me money under any circumstances, but if I had a scratch-my-back-to-get-it-free option, I could place it prominently on their dashboards.

Long Cycles Mean Low Innovation.  Short Cycles Mean Fast Innovation.

This sort of thing is very difficult to do with desktop apps, because you can’t reliably collect data on what approaches work, and you have the build/test/deploy/distribute cycle to worry about.  It takes months for a new version of the desktop application to hit more than half of my users, and I give out upgrades for free.

By comparison, I can literally have an A/B test coded, tested, and deployed globally in under a minute, for ones which are fairly low impact.  Relocating a button, for example, requires two lines of code, a SVN commit, and a quick server restart.  I start getting data immediately.  By comparison, doing that on my desktop app would require 15 minutes of building, then waiting weeks while the new trials percolated from my website to the various download sites, and probably unforseen issues on Mac OS X 10.4 because apparently in a past life I must have stepped on Pharaoh Jobs’ cat.

Recently, a desktop developer’s mailing list that I’m on commented that a release weekly development cycle is unsustainable, bordering on suicide.  As a desktop developer, I agree, it would break me.  As a web application developer — I have released 67 updates to Bingo Card Creator in the past 7 weeks, and this isn’t even my day job.  A button here, some textual edits there, seven A/B tests, etc etc, and pretty soon you’re looking at the magic of compounding 1% improvements.

Speaking of Magic

I love desktop applications.  I prefer them to web apps almost any chance I get. You can keep your Google Docs, Excel is superior in almost every way.

As a developer, I love getting permanent presence right in front of the user (on their desktop, naturally).

My customers love desktop applications.  They love the “physicality”.  They love the perceived security (the number of people who purchased backup CDs and then proceeded to only use the webapp is downright distressing to me).  They love that the application has first-class OS support, feels native, copies and pastes right, works with double clicking files, etc etc.

But at the end of the day, I’m an engineer.  I follow the numbers where they lead me.  The numbers say that sales in this August were 60% over those of last August, despite a major blowup with Google that should have cost me dearly.  All of my attempts to distill wisdom from the statistics have lead to one conclusion: the cumulative advantages of the web application, in my advertising, in my on-site experience, within the application, within my development process, and within my purchase funnel are just stupendously superior to the desktop app.

I’m sorry, desktop apps.  We had good times together, but we’re through.

[Edit to add: I’m going to continue supporting all customers of Bingo Card Creator, regardless of how they choose to get it. The next major release will almost certainly be its last. The webapp, and my future webapps, seem to be much better investments.]

No Responses to “Why I’m Done Making Desktop Applications”

  1. Alexei VInidiktov September 5, 2009 at 10:01 am #

    Wow, Patrick!

    Thanks for this major kick in the rear! I came to the same conclusions a while ago, but haven’t acted upon them until this moment. I hope now I can and will do that.

  2. nickknyc September 5, 2009 at 10:10 am #

    i am looking forward to thoughtfully responding to this once i get out of a internet/cell services challenged area

  3. Patrick September 5, 2009 at 10:41 am #

    I look forward to reading it, Nick. If you put it on your blog, drop me a line so that I can mention it. I’m patrick@ any of my domains or patio11 on Twitter.

  4. Jose September 5, 2009 at 10:45 am #

    I agree it’s way easier to make a web app.

    Me too prefer desktops apps as a user.

    So that means there is a place for easy to make easy, easy to deploy everywhere(multiplatform) desktop apps that could use the network. Maybe the adobe AIR APIs will make it. Just creating an installer (and compiling) on two Linux distros, MacOsX,and two windows is hell.mmmm interesting, I never thought about it, we need a standard way of doing that.

  5. Simon Strandgaard September 5, 2009 at 10:57 am #

    Thank you for sharing your story. Very tempting to follow in your footsteps because it’s really difficult to sell my desktop app. The apple app store concept has made the funnel much shorter, so it could be interesting to try code for iPhone.

    What about pr and webapps. If you have a desktop app you can announce new versions of your software. With a webapp this oppertunity for pr doesn’t seem to be there. How do you tell the world about it?

  6. Jarvis Crofts September 5, 2009 at 11:25 am #

    Great post Patrick, really insightful.

    I particularly like a web app’s ability to circumvent piracy without taking a single thing from the paying customers. This is something that is going to be very valuable to developers and consumers.

  7. Brian September 5, 2009 at 11:40 am #

    Um, I don’t really know how to say this, but wow, just wow and “thank you” too.

    Great blog entry, one of the best entries I’ve seen in a while (and I read a lot of good ones).

  8. Taxicab Tom September 5, 2009 at 12:38 pm #

    Patrick, thanks, very insightful! I mean, I am doing webapps for a living for years, but I am preferring ‘physical’ desktop apps myself at the same time. Obviously it’s time to reconsider and act on what I knew already.
    Thanks for the hard data btw!

  9. QuadQuadQuadQuadQuad September 5, 2009 at 1:24 pm #

    No one gives a shit, seriously, except others who blog and look at other blogs just to comment so the others can get comments back on their blogs to feel like people actually *care* about their blogs.

    In reality though, passer-bys just don’t give a shit why you’re done with A and switched to B.

  10. Michael Griffiths September 5, 2009 at 1:27 pm #

    1) I completely agree with you.
    2) I wouldn’t count desktop apps out just yet.

    Why not? Because the core problem you identify is _conversion rate_. It’s harder to convert someone visiting your website to a paying customer for downloaded software than for an online web-app.

    There are other advantages, e.g. easy analytics.

    But with new software delivery platforms such as Adobe Air, .Net Web Apps & ClickOnce (latter now integrated into Windows 7 natively) & Silverlight Out of Browser – > and no doubt things I don’t know about, the difficulty to installing a desktop app cuts SIX steps out of your list of 17. Click install link, app downloads and installs instantly.

    And with these web-enabled frameworks (esp. Adobe Air and ClickOnce) you can have them report to the server on launch (check for updates) if the user is connected to the internet; making it somewhat more difficult to pirate.

    But hey, we’re 3-5 years away from decent adoption for any of that stuff. Right now, web apps are the way to go.

  11. Patrick McKenzie September 5, 2009 at 8:37 pm #

    The Google translation of the above pingback is beyond awesome.


    Jag slåss med näbbar och klor för att allt ska flytta till webbläsaren. Och här får jag bra eldunderstöd, och andra kloka tankar, från en tidigare desktop-kramare.


    I fight tooth and nail for everything to move to the browser. And here I get good fire support, and other clever ideas, from a previous desktop-hugger.

    I think “previous desktop-hugger” is going on a T-shirt.

  12. John September 5, 2009 at 9:06 pm #

    You make very good points. However I disagree with your conclusion that it is unwise to continue to make a desktop version of your program.

    To someone with an infinite supply of great ideas, this is the correct conclusion. Why waste time on less profitable activity? However, if a developer wants to focus on a something (“I am going to offer the end-all be-all of Bingo Card creation”), would it not be better to make a full “family” of versions of the program? The work to issue the app on another platform is less than the first. A complete line-up is a good selling point: a customer sees that you are fully invested in this lineup, and it provides more value if their registration gives the purchase of the desktop app and the online version. The profit return doesn’t see the same margins, but it’s a profit nonetheless.

    I think the proper conclusion is to take your situation’s information into consideration (as you obviously have, and have drawn excellent insight from), and prioritize accordingly.

  13. Dennis Gorelik September 5, 2009 at 10:34 pm #

    Patrick, great article!
    More than 6 years ago demand for web development pulled me from desktop development into web, and I’ve never looked back since then.
    Web apps are much easier to scale, update, and track, and that seems to be much more important than better UI responsiveness in desktop apps.

  14. Hernan September 5, 2009 at 10:35 pm #

    Great post! Me, I prefer web apps 99% of the time. Especially for “vertical” enterprise apps — web apps give less way for the developers to foul up the user experience.

  15. Matthew September 6, 2009 at 12:45 am #

    I would be very interested to learn what criteria you are using to divide your users/potential customers into the 4 different conversion rate buckets you mention.

  16. Mark McLaren September 6, 2009 at 3:16 am #

    One more benefit of Web Apps: People can try it without installing it. I suspect that for a lot of people, “Installing the software” is a relatively big commitment and means they have to un-install the software afterward, and many people have no idea how to do that.

    However, I’m not prepared to give up on desktop apps (and especially not mine!). I wonder whether you can generalize from Bingo Card Creator to web apps in general. That is, an email client or blogging editor would get better conversion rate as a web app, but a photo editing program or database query tool would not…?

    Also, the desktop version of Bingo Card Creator is missing a few tricks:
    1. When the user clicks the ‘Download’ button, they are given the option (in IE) to ‘Save’ or ‘Run’ – some won’t know what to do so will just give up. They need big, clear instructions for what do do. For example: http://www.solaraccounts.co.uk/download.php
    2. When they do run the setup.exe file, they get a big nasty box with a red cross saying ‘The publisher should not be verified’.
    3. The UI of the desktop app is ugly. Sorry, but it has to be said – the default Java Swing UI looks like a 10-year-old’s homework project.

  17. Jordi Cabot September 6, 2009 at 5:10 am #

    I think it is important to distinguish between web applications and vendor-hosted web applications (SaaS). The first scenario (the web application is installed in the client web server) already presents many of the benefits you describe but the second scenario is the one offering the full-benefits.

    I thought that customers would be reluctant to have their data in an external server but it seems that even in more critical domains they are getting used to it. In our survey of online project management tools (http://modeling-languages.com/blog/content/tools-teams-survey-web-based-software-project-portals) we realized that first many (software) project management tools moved to the web and that now they are moving to a SaaS model and not many customers complain about that, even if this means that their source code is hosted in an external company

  18. Ryan Smyth September 6, 2009 at 6:03 am #

    Well, I didn’t really like your list in “The Shareware Funnel Is Lethal” as I cannot count the number of times I’ve screamed obscenities at some web site that was just impossible to use or register at or that caused BSODs (yes — those sites exist… and they’re banking sites…), so I think it was a tad on the unfair side there. There are far too many web sites that are just insanely difficult to use. More than just a few times, I’ve screamed some profanity and clicked that little X in the upper right (or upper left) because I just couldn’t deal with the pain.

    e.g. A great way to get me to not make a simple purchase is to make me register.

    In any event, I enjoyed seeing those numbers and your commentary.



    > Web apps are much easier to scale, update, and track, and that seems to be much more important than better UI responsiveness in desktop apps.

    Well, kind of true. It depends on the application. Some software simply will not work on the web. I’ve seen it tried with some pretty complex stuff, and it was a brilliant failure. Not because the developers were stupid or anything, but because the nature of the application just didn’t work on the web.

    CRUD works on the web, and it works brilliantly.

    But, the web introduces its own problems as well. Network reliability? To be honest, there’s no way in Hades I will ever trust certain ISPs. If I were teaching in backwater China, you can bet that I’d want the desktop version of BCC and not the web version.

    It’s an “it depends” thing. The nature of the software will determine where it can or should run.

    I’ve got software that I could easily port to the web, and other software that would be impossible to port to the web (or just plain irresponsible to port there for various reasons).

    I’ve got a new line in the works where the revenue model will be web based, but will also have desktop software to go with it.

    I got out of doing much web development a number of years ago because I just wanted to do things that couldn’t be done on the web. That’s changed a lot now though, and from what I see, Silverlight is the answer for demanding applications.

    It’s certainly possible to do a lot more now on the web than you could 10 years ago, but there are things that still cannot be done. There are things that should not be done on the web. There are things that should not be done on the desktop.

    What I really got out of your article, and really appreciated, was the conversion rates. That was fantastic. I will be keeping that in my little treasure chest of knowledge for future reference!

    I suppose that I just don’t care where the app is… I care about the $$$’s. :)


  19. Drew @ Cook Like Your Grandmother.com September 6, 2009 at 6:11 am #

    It’s funny you use the relationship analogy, because I’ve used one for a while to explain SEO to people.

    Lots of people water down what they’re saying for fear of offending someone. They know that everyone has different tastes and they don’t want to scare anyone off. But if you think back to when you were single, trying to get a date (this is looking back farther for some of us than for others), think about the guy who always got the girl. More likely, he didn’t always get *the* girl, he always got *a* girl.

    What I’m saying is, if there’s an approach that works even 30% of the time, just do it three or four times a night and you’ve got someone. You just have to be willing to move on to the next if it doesn’t work. If instead you pick *the one*, then you have to have the right approach for *her*. And that’s assuming you’ve even got the right “product” to pitch to her.

    If you don’t care so much which girl you get, so long as you get one, then you go with the high-probability approach. But doesn’t that feel a little bit … icky? (By the way, if you said “yes” to that question, you were the guy wondering why all the girls went for that smooth talker.)

    Now return to sales. You want their money. And all money is the same. So you’re after the high-percentage solution. By dropping the desktop app, you may be turning away 10% of your potential customers. But if that picks up 30% *new* customers, you come out ahead.

    Does this mean abandoning a niche that someone else may exploit? Sure. Let them. You’ve got bigger — or rather, *more* — fish to fry.

    Thanks for the great post. The example of identifying the most common use alone made this post worth reading.

  20. Zach September 6, 2009 at 6:29 am #

    First off, this is a great post, and I agree with all the points you make. However, I have a nit to pick…

    You say that you can write an A/B test and have it deployed in “a couple minutes” after a “quick server restart.” That line destroyed any hope you have of selling your webapp to me, as it demonstrates that you don’t understand the repercussions of restarting your webserver.

    What happens to any request in process at the time of restart? What happens to your (presumably ajax or ajax-like) webapp during the period after the server has stopped but before it has started again? You may think it’s not a big deal, or that you can restart fast enough that no one will notice, but the more customers you have the less true those ideas become.

    Most customers don’t have the technical knowledge to know that’s a bad thing. However, when they experience a glitch or a problem due to your server restarts they’ll start to view the app as unreliable. When users view a web app as unreliable, they’ll share that feeling with potential users of your application.

    You’re a small and nimble shop, and one of your advantages is that you can work fast and have changes out there so quickly your client’s heads will spin. Don’t give that up, but do find a way to deploy changes without interrupting client requests. (Hint: 2 servers and a load balancer make that very easy, and with free options like relayd on openbsd or lvs on linux you don’t even have to spend very much. If your traffic levels are low enough you could even do it on a single server with 3 VMs.)

  21. Patrick September 6, 2009 at 6:52 am #

    That line destroyed any hope you have of selling your webapp to me

    Well, technically speaking, that hope was dashed when you decided not to go into elementary teaching.

    I could work out the math with you, but I’d need ten times as many customers as I have now to run any significant risk of interrupting customer requests with restarts. (Note: I live in Japan, whereas almost all customers live in America. When they’re on the site, I’m sleeping.)

    I’ll cross that bridge when I come to it.

  22. Zach September 6, 2009 at 7:07 am #


    While I personally didn’t go into teaching, my mom was a teacher, and I know quite a few. Maybe I know the exceptions, but it’s not uncommon for them to be up late into the night working.

    However, that’s neither here nor there. My only purpose was to raise awareness of the issue, which it seems you have. I’ve walked into too many environments where that’s not the case, and they thought server restarts were entirely harmless. One place was restarting as often as every 10 minutes during the workday!

  23. Tim Inman September 6, 2009 at 7:25 am #

    Fantastic Article. Thanks for the stats and the detail.

  24. Mitchell September 6, 2009 at 8:04 am #

    Patrick, great article as always. I have been following you for years, simply because you are such a great writer. There are a lot of great sites on mISV and software development but you seem to a have a great touch as far as your ability to share your experiences (and growing expertise).

    Now, being a “website software seller” myself, I agree 100%. The Web model is the way to go. But I would throw in a new wrinkle for you. I would now pigeon-hole yourself into thinking Web = SaaS. In fact, there are other models. I sell the actual web site scripts, and my business is growing fairly well. That smells a lot like the shareware model, but it isnt. Yes that raises the ugly head of piracy again, download issues and platform support. But it also brings to light the fact that not every customer needs or wants to access another SaaS site online to use a service. It also brings in focus a new customer base….and thats the small website business owner, who themselves (just like you and I) own a website business, and need software to help them manage their website, deliver value to their customers, and compete online. I realized that more and more people are feeling empowerd and starting to learn HTML and server-side scripting. Yes, there are a millions free scripts online. But there are just as many people who need to bypass that process and want to upload something to their site that delivers value. So, also consider the “non-SaaS” web software model. My sales are doubling and tripling and more every year now selling “websites” and scripts. So, think about that angle as well.

    Keep up the great work. Will be following your comments online. – Mitchell

  25. Mitchell September 6, 2009 at 8:15 am #

    …forgot one item…

    You need to think about what it requires to move to the web model (SaaS). It has its drawbacks (versus selling website software).

    1. If your site or server or provider goes down, you have 10,000 angry pissed off customers at once. Not good. Your business, life and even time (ie 4 am phone calls) is now chained to your server. If anything good or bad changes there, the dependency of your whole business lives or dies with your hosted solution. That means there is no such thing as a “vacation” for you in that model. If you are at the beach and your phone says your the Feds raided your ISP and its shut down the servers, you are screwed!
    3. With a subscription model, your ability to scale is there, but your cost for hosting and bandwidth follows that. You cant espace that expense.
    4. Any bugs translate into 10,000 bugs for all your customers now instantly.
    5. Your ability to leave this business model or solution is difficult as you created a direct dependenly with your subscription users.
    6. You have created yet another Web 2.0 site that requires users to visit yet another URL for a service associated with them or their business. That again, leaves your business in some cases directly linked to other businesses or users. Wouldnt it be better, like in the desktop model if you were divorced from your customers, yet still delivered a soluton that they could use and run on their services, devices, sites, etc?

    My point is not that Im against SaaS and the Web Model. 100% better than Desktop. Im just against the hosted platform model. It will eventually link you at the hip to your ISP and web product. Maybe a better model is a hybrid of solution whereby customers get your service from the site but have the option to run or install it on their servers. Justa thought.

  26. District 1 September 6, 2009 at 9:59 am #

    You have proved with stats that there is no or little money that shareware authors can hope to make using desktop apps. Though I am a fan of web based apps, I am reluctant to store some of my oft used data on the web because I need high speed, instantenous searching of a large volume of data (which is possible only when using desktop app stores data locally). But I have to admit that the software I am using is a cracked version. I starrted using this software many years ago, and never paid for it. Had it been a web based application, I wouldnt be using it. Though I think if they had a donate button on their site, I would send in whatever I can now, but they dont have any way of accepting donations on their site. (And they stopped supporting or making that software) As much as people use software and webware, they also need to come forward to support the software authors financially so they can stay in business and feel motivated. And nothing motivates like money. Will (really useful) desktop apps survive? I would like to hope so.

  27. mark September 6, 2009 at 10:11 am #

    That was one of the best blog posts I have ever read about this.

    Congratulation man – I guess if we ever look back past history, you have immortalized yourself here.

    But you killed desktop apps as well! ;-)

  28. Sam September 6, 2009 at 10:20 am #

    Google docs vs Excel

    I know you meant this as a side comment, but soon you will learn of the awesome power of google docs, and you will never use excel again.

    There are a ton of XML get-request (if not ReST) based services on the internet, and they are really easy to write. You can use Google Docs to pull those in and it will cache them.

    Multiple people can be working on the document at the same time (and yes, I’ve used this and it is practical, but you will want some kind of voice communication connecting you).

    You’re documents are available anywhere, even on your phone, and you never have to worry about the concept of a “File” anymore, you just add another email to the document if you want someone to be able to see it.

    Even if you want to work offline on a document, Google Gears will let you do that just fine.

    It’s hundreds cheaper than excel. :P

    I know that sounds like marketing for google, but my point is almost nothing you can’t do in a browser these days, and you have MUCH more flexibility as a developer, which means you can build it better, faster, stronger, cheaper, etc.

  29. District 1 September 6, 2009 at 10:27 am #

    I think instead of allowing desktop shareware demo downloads, authors can let them try the software online via a virtual machine hosted online (like how crossbrowsertesting.com does), that way, without allowing a real trial download, then the user can convince himself how the software works, and decide to buy or not. Like a demo PC fitted with logmein so you can login and play with the software online to see if you like it.

  30. jj September 6, 2009 at 10:40 am #

    I have to say, man, this one of the best posts on web programming I *ever* read.
    I have learned *so* much from you today!
    Thanks a million!

  31. rodney September 6, 2009 at 1:43 pm #

    “First class OS support”? I took a look and there’s ZERO support for my OS. Maybe you shouldn’t toot your horn quite so much, dude.

  32. DanH September 6, 2009 at 2:44 pm #

    My biggest problem with web apps was perfectly illustrated when I loaded this blog page. It got hung up for a few minutes. I hit Refresh twice and it finally loaded. If your application server experiences such a problem and if you have a large user base (I once had a user base in the tens of thousands) everyone using your software at that moment is held hostage to your server’s problem. While I can see where the numbers make this choice the right one for you, you may find a point where your user base grows to the point where it becomes a real headache. Does your pricing model cover the extra hosting costs that will come if your user base grows to a large number?

  33. Brandon Thomson September 6, 2009 at 3:12 pm #

    Thanks for this post. It heartens me as a developer spending hundreds of hours of my life learning Javascript, jQuery, et al…

    Having worked on both, I agree about how much easier it is to get leads to start using a webapp than a desktop app. Another advantage of the webapp I didn’t see you mention is data security: you don’t have to worry about user’s hard drives going belly-up and losing all their precious data. This is a real concern with desktop apps.

    Developing for the web is still a bit of a mess even when you use the best tools, but I’m hoping that over the next 10 years developing a web UI becomes as easy as developing a GUI app with Windows Forms or Swing. I think it will, we just need some time to get there.

  34. Nick Hebb September 6, 2009 at 3:36 pm #

    Good piece. I wish my conversations were as conversational as your writing style.

    Two questions:
    1. Do a lot of teachers have locked down systems, making a web app a better fit for this market?
    2. If you had to do it all over again, would you still use RoR?

  35. Patrick September 6, 2009 at 3:36 pm #

    Does your pricing model cover the extra hosting costs that will come if your user base grows to a large number?

    Considering I can put about $300,000 or so worth of accounts onto a server which costs $100 a month without breaking a sweat… yeah. ;)

  36. Jason September 6, 2009 at 4:19 pm #

    The “1%” study you link to is for “# of visitors vs. sales” http://successfulsoftware.net/2009/04/23/

    ~20% (1 out of 5) of your visitors download the trial version, and 1.35% of these eventually purchased. So that means about 0.27% of your visitors purchase?

  37. Rick September 6, 2009 at 6:09 pm #

    I’ve read this post twice now. It’s a great post with a lot of insightful details – details that few people, in your position, would share.

    Thanks for writing it.

  38. Megaphase.info September 6, 2009 at 6:29 pm #

    If only people were more willing to actually pay for software, we could write better software.

  39. Adam September 6, 2009 at 8:04 pm #

    The auto-suggest links to piracy might have something to do with the amount you’re charging for your software…

  40. Patrick September 6, 2009 at 8:57 pm #

    1. Do a lot of teachers have locked down systems, making a web app a better fit for this market?

    More than a few have to ask their tech guy to install stuff, yes.

    2. If you had to do it all over again, would you still use RoR?

    Yep. I have drunk deeply of the KoolAid, and it is wonderful and sugary.


    “The price is too high!” is a post-facto rationalization for theft by people who had no intention of paying money in the first place. People say the same thing about $0.99 cent iPhone applications.

  41. Craig September 6, 2009 at 10:07 pm #

    There is one thing I just don’t quite get. If with Google Adwords your CPA is $9 and you are selling your product for $28, surely the amount of revenue you want to make is just a reflection on how much you want to spend on Adwords. If you want to double revenue, just double Adwords spend, and while the CPA is a fair bit less than product cost, it is almost a print your own money proposition. What am I missing?

  42. xofis September 6, 2009 at 10:58 pm #

    > The auto-suggest links to piracy might have something to do with the amount you’re charging for your software…

    Oh yes, $28 is sooo unaffordable.

    > If you want to double revenue, just double Adwords spend

    It doesn’t scale linearly.

  43. Patrick September 7, 2009 at 12:47 am #

    What am I missing?

    I’m primarily constrained by the number of people looking at pages related to teaching bingo, not by my advertising budget. On Google itself, it is difficult to advertise for the fat head words of the search distribution like [bingo cards] because the CPA ends up being in excess of $30.

    For example [bingo cards] gets a huge amount of traffic but it is a poor fit for me, because many people searching for it are looking to gamble. Even in organic search I get terrible conversion rates on it. Poor conversion rates plus better-monetized businesses on the same search term means it is generally uneconomical to advertise on.

    The words (or, on the Content Network, concepts) I really clean up on are the ones that I am a good fit for and that few other businesses are. In general, they’re more niche, focused on topics that only interest elementary schoolteachers and the like.

  44. Ben Chernicoff September 7, 2009 at 12:57 pm #

    Firstly, great article. I really appreciate your insight. Just out of curiosity, have you ever tried deploying your Swing app as a Web Start? It’s trivial to create the necessary jnlp file. I don’t know if you already sign your jars, but for a Web Start to access the local file system you would need to start. Your customers will get the feel of it being an installed app with a desktop shortcut and at each launch it will check for a new version and download the update automatically, though this may not be practical if it is a large app.

    I am not suggesting that this is a better solution than a web app, but you do have me wondering how many thick client support, purchase funnel issues, etc. it would resolve.
    Oldish Sun Web Start demo

  45. jeremy September 7, 2009 at 6:25 pm #

    Frankly, both thick client, and web apps have their place. The problem you are seeing is a refection of your choice of programming language. For some reason java tends to really suck for writing concise desktop applications (the one place I believe it should belong).

    When compared with vb/delphi/c#.net you find that having components that do what you need by default, and don’t dictate how you use them, opens up the ease of development significantly.

  46. Ev Kontsevoy September 7, 2009 at 9:38 pm #

    Maybe your desktop application got beaten by the online version because it simply makes sense to make it a web site?

    I also suspect your low conversion rates have something to do with it being a terrible looking Java app. Mac users especially are known for not tolerating mediocre UIs, the thing looks like something from Windows 3.1 days.

    Don’t overgeneralize. It just happened that in your case the website works much better than your subpar desktop application: I looked at desktop/web versions and they both look and work like websites, of course browser-based version gets more love.

    Change the title to “Weird Looking Java Apps cannot compete with web pages”.

  47. Craig September 7, 2009 at 10:26 pm #

    The comments on the UI of the Java Desktop version are interesting. I agree with the comments the at UI does look quite ordinary and non-standard. As a developer and someone who is looking at and thinking about UI’s every day I am sensitive to such things. But do average (non-tech) users really care?

  48. Patrick September 7, 2009 at 10:42 pm #

    I also suspect your low conversion rates have something to do with it being a terrible looking Java app. Mac users especially are known for not tolerating mediocre UIs, the thing looks like something from Windows 3.1 days.

    This is essentially a religious issue with Mac developers. I generally don’t get into religious arguments with people, since they never end well, but I have to point out that my conversion rate among Mac users is DOUBLE what it is for Windows users, for applications which (aside from OS-specific differences for e.g. the menu bar) look identical.

    In God we trust. All others, bring data.

  49. Joe September 7, 2009 at 11:21 pm #

    I used to develop a desktop EDA software. I promise I will never go there anymore. The maintenance and support is a nightmare.

  50. Joe September 7, 2009 at 11:23 pm #

    >> despite a major blowup with Google that should have cost me dearly

    Care to elaborate on this?

  51. Hans September 8, 2009 at 12:08 am #

    *Putting on my Capt. Obvious bicorne*

    Some applications simply do not translate to the web and need to live on the desktop. As new browser and Flash features (etc) are made available, the line is blurring to a greater degree, but you will always lose elements of performance. What takes a fraction of a second for an average desktop CPU now has to be shared between the browser and the server and encapsulated within HTTP connections, cookies and javascript interpreters and the list goes on. The future is the web, obviously, and development is usually much easier, but, in its current shape, it won’t be replacing desktop software for a while.

  52. Patrick September 8, 2009 at 2:29 am #

    Care to elaborate on this?

    Joe: http://www.kalzumeus.com/2009/08/01/my-adwords-are-turned-off-scary-stuff/

  53. Dan L September 8, 2009 at 6:05 am #

    Great write up Patrick. It’s really interesting to see your actual figures and how they’re affected too. It gives the theory some real weight.

  54. joe ardent September 10, 2009 at 12:14 am #

    Apache now has graceful restart, which will not kill any actively serving processes or threads.


  55. German Arduino September 10, 2009 at 6:35 am #

    True in the most of cases, but what do you think with respect to use web applications to manage confidential data, as passwords (as my PasswordsPro product does) ?

    Some current customers say that they never will use a web password manager for security concerns…..but I said that then never would use home banking for example.

  56. Craig September 10, 2009 at 3:11 pm #

    German, I think the servers storing passwords in the data center of a reputable company would be more secure than the desktop of the average user with it’s viruses and trojans running rampant. It is mainly a perception thing that putting something on the internet is insecure.

  57. Cyril Gupta September 10, 2009 at 5:36 pm #

    Hey Patrick!

    I’ve made over 22 shareware apps and some of them have sold really well. I came to the same conclusion 5 months earlier. Since then I’ve been porting my apps online one by one at my website.

    Not only has the online website drawn more visitors selling the astrology reports in retail, but I’ve also inexplicably sold more copies of my desktop apps online even though i don’t even advertise them on my website.

    I did a bye-bye to desktop apps this year and I am not going back, no sir.

  58. Cory Mathews September 11, 2009 at 6:56 am #

    Excellent points. All through college I wanted to write desktop software. Once I graduated and actually worked on a larger one I quit and switched to the web. Everything is just so much “easier” and in turn better for the users as well because we can spend our time on more features then on some rare bug for a specific desktop system that effects all 20 people that have it.

  59. Steve September 12, 2009 at 7:14 am #

    Nice post. Make sure you have redundancy, (maybe just simple as in two web servers, two db servers HA and DRBD for DB servers and simple load balancing or fail over for web servers).

    I would also grab a copy of Burp Suite http://www.portswigger.net/suite/ (Get the pro version, Pay for it its worth it) and regularly test your application after you perform updates to your app.

  60. Goran September 14, 2009 at 2:09 am #

    Great post! I run freeware site, and still people are using this kind of SW. But we must face that everything will go online and that business model of software developers will be pay-per-use (which in the end will be more lucrative for them and users)

  61. Boris Barroso September 14, 2009 at 5:19 am #

    Great article, I know that the comments about the dependancy on hosting are valid, but if customers love our service they will come back even if you have some problems, Twitter is a good example (I know… it is free), it had problems for a while but they have solved the problems and there are many clones out there, but people still love the app.

  62. Tom September 16, 2009 at 3:15 pm #

    Im not a Programmer/Developer at all.. But I still thought it was a great read..(stumbled ya) Good Luck with the Bingo Cards.

  63. Nicholas Ramirez September 16, 2009 at 4:52 pm #

    Great article.

    Good point about Shareware.

  64. Anna Sebestyen September 16, 2009 at 11:02 pm #

    Hey Patrick, truly excellent description and summary. I especially liked the way you showed your own paradox, and still went for what the numbers proved “I love desktop applications. I prefer them to web apps almost any chance I get”

    got here via Avinash Kaushik’s tweet:
    [One of the best blog posts ever:] “Why I’m Done Making Desktop Applications” http://tr.im/yHYe


  65. Germán Arduino September 17, 2009 at 3:04 am #

    […] German, I think the servers storing passwords in the data center of a reputable company would be more secure than the desktop of the average user with it’s viruses and trojans running rampant. It is mainly a perception thing that putting something on the internet is insecure. […]

    Hi Craig, thanks by your comment, I think is a good point.We, at PasswordsPro, are thinking in develop something web, but need to think in other features as how to deal with the users when they are not connected.

  66. Charles September 29, 2009 at 8:27 pm #

    Patrick, this posting was really nice… I have been involved with web applications since early 2001 around the beginning of .NET and have really enjoyed the ride. I chose ASP.NET because of it’s flexibility and extensibility. The Software As A Service (SAAS) model has been growing quite rapidly in the industries I have been in. I have worked with Health Care, Banking, Engineering, Government and ECommerce and the common request is to have Enterprise Applications that run over the web. I am seeing companies refocusing their budget towards more web technologies. This is very encouraging for the future of developers using the SAAS model. Companies want a more cost effective solution that gives them anywhere access to their data. For the companies not choosing SAAS, they are looking for robust web based applications. There is still and always will be a place for desktop applications though, but the current wave is pushing web solutions.


  67. Mason Sklut October 13, 2009 at 4:39 pm #

    Just look at the quality of Web Applications that have been released: Facebook, Twitter, Flickr, Google Wave, etc. They’re getting better, more customizable, and faster. With a lot more mobile usage these days, online apps are definitely going to be used more often. Why not create a web application? That’s the question developers should be asking themselves…

  68. Nicolas October 23, 2009 at 12:55 pm #

    About your particular problem with purchasing: the problem isn’t that your app is a desktop app. The problem is that the purchasing system is a web app. If you had a “buy” button *in* the app, and you could buy without having to open a browser, it’d be easier.

  69. Kenji May 14, 2010 at 10:31 am #

    Patrick, meet Spoon and get back together with desktop applications.

    (Eliminate funnel steps 6-17.)

  70. Ramón October 6, 2010 at 2:22 pm #

    Yeah, web-based apps absolutely rocks out nowadays, i got agree. And more when all the people can connect to the web for less than $10/month (specially if u’re using shared connection such as in a student’s residence where paying about 5 bucks u have quality internet easily for a month).

    That’s rare not to find out a computer with at least one navigator installed, even in smartphones or another kind of portable/tiny devices. So, i think when you buy a webapp not only going to have it always accessible and instantly, you can also access it from virtually any device with an operating system that supports web browsing.

    And yes, like you i think programming in this way will kick all the asses whose wanting crack your production.

    But I think also that there are certain limitations when trying to develop some more complex and responsive programs, and for those situations there are those who choose to create client programs installed like another desktop application more, such as occurs with applications like spotify or several twitter clients natively developped in C for windows or objective C for macOS.

  71. Nick October 7, 2010 at 9:06 pm #

    Aw, this article made me a little sad. Haha. I love desktop apps. But you make good points. I guess I needed to get some web-centric tools on my resume anyways…

  72. Vivek June 22, 2011 at 9:12 pm #

    WoW that is a real eye opener !!! thanks for the excellant post.

  73. good funny uk t shirts December 23, 2011 at 4:47 am #

    Magnificent issues altogether, you simply received a emblem new reader. What might you suggest in regards to your put up that you made some days in the past? Any sure?


  1. Scott Banwart (sbanwart) 's status on Saturday, 05-Sep-09 18:01:26 UTC - Identi.ca - September 5, 2009

    […] http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/ a few seconds ago from Gwibber […]

  2. Why I’m Done Making Desktop Applications: MicroISV on a Shoestring « Netcrema – creme de la social news via digg + delicious + stumpleupon + reddit - September 5, 2009

    […] Why I’m Done Making Desktop Applications: MicroISV on a Shoestringkalzumeus.com […]

  3. jardenberg kommenterar – 2009-09-06 — jardenberg unedited - September 5, 2009

    […] Why I’m Done Making Desktop Applications: MicroISV on a Shoestring […]

  4. Ajaxian » Why I’m Done Making Desktop Applications - September 11, 2009

    […] Patrick Mckenzie has written an interesting editorial comparing his life as a desktop developer and a Web one. […]

  5. items for 9.10.2009 « Tzetze Fly - September 11, 2009

    […] Why I’m Done Making Desktop Applications – MicroISV on a Shoestring Very well written article on desktop apps vs. web apps from a developers perspective.  The advantages of web apps – usage analytics, a/b testing, lower support requirements, frequent updates, dynamic languages – are so strong now that this is becoming a permanent shift for many. […]

  6. The Ashes » Blog Archive » Why I’m Done Making Desktop Applications - September 11, 2009

    […] Patrick Mckenzie has written an interesting editorial comparing his life as a desktop developer and a Web one. […]

  7. Why I’m Done Making Desktop Applications « LocalLab : Foire aux Infos - September 11, 2009

    […] Patrick Mckenzie has written an interesting editorial comparing his life as a desktop developer and a Web one. […]

  8. Game theory links 9-15-09 - Mind Your Decisions - September 14, 2009

    […] Why web apps are better than desktop apps Patrick offers a detailed post on why web apps make more sense for developers: “In game theory terms, it strictly dominates the desktop version, when seen from the eyes of the developer at any rate.” Some of the reasons are web apps convert to sales at a higher rate, are more suitable for Adwords campaigns, and they are easier to support and customize. […]

  9. Ennuyer.net » Blog Archive » Rails Reading - Sept 21, 2009 - September 21, 2009

    […] Why I’m Done Making Desktop Applications: MicroISV on a Shoestring […]

  10. andy.edmonds.be › links for 2009-09-27 - September 27, 2009

    […] Why I’m Done Making Desktop Applications: MicroISV on a Shoestring (tags: business software web programming desktop arguments) […]

  11. Why the Web has Won « Infovark - October 7, 2009

    […] and Web 2.0 has compelling advantages over software built and delivered the traditional way. Read why I’m done making desktop applications to hear what an independent software vendor (ISV) has to say about the […]

  12. Best of the Web: September | My Blog - October 16, 2009

    […] Visit Article […]

  13. The Most Radical A/B Test I’ve Ever Done : MicroISV on a Shoestring - June 4, 2010

    […] quite a bit about the difference between web applications and downloadable applications.  To whit: don’t write desktop apps.  The support burden is worse, the conversion rates are lower, the time through the experimental […]

  14. Lessons Learned At Business of Software 2010: MicroISV on a Shoestring - October 15, 2010

    […] you can pretty much fire-and-forget a low-pain DRM system, and since if you’re smart you’re doing web apps anyway this is disappearing from the radar […]

  15. Destop Application vs SaaS - November 3, 2010

    […] is an article from a participant detailing the reasons for moving from desktop application to SaaS, and here is an article from the SaaS Development blog. An interesting view of the differences is […]

  16. Today’s Startup and Entrepreneurial Updates - April 17, 2011

    […] Why I’m done making desktop apps – MicroISV […]

  17. SOFA Statistics and Open Source Business – Misc « Statistics Open For All - January 13, 2012

    […] Why I’m Done Making Desktop Applications […]