By Laura Elizabeth

Should You Develop a Desktop or Web App?

By Laura Elizabeth

They said they’d be dead.

Gone from our docks and into our browsers.

The demise of the desktop apps has long been predicted in favor of browser-based models. But with services such as Slack, Sunrise and Quip all going desktop, can we stop writing the eulogies for native apps after all?

The demise of the native app

You don’t see a downfall in good technology for a reason. As many articles have pointed out, the tech industry has been ditching the native app in favor of the web app.

And if you’re wondering why, it turns out they have some pretty solid reasons. Here’s five.

1. Nothing to download. Nothing to install

It’s often far easier to convince people to use your app if they can get started right away. Downloading and installing feels like more of a commitment than having a play around right in your web browser. You’re effectively removing one big step in the on boarding process.

2. No more updates

Ok, since automatic updates were introduced this one isn’t the huge benefit it once was. Yet updating your app on the web does ensure that nobody is using an outdated version. This in turn eliminates most compatibility issues.

3. Lends itself better to a recurring pricing model

Downloadable apps are associated with one-off payments. You buy it, you own it.

Web apps seem to lend themselves better to the more profitable recurring payment structure.

It’s not to say that you can’t do this with desktop apps – think Dropbox and the controversial Creative Cloud. But people do seem more open to paying a subscription for a web app.

4. Access to analytics

From a business point of view, being able to see first hand how your users interact with your product can be a huge advantage. It can help you cut any usability issues and reassess features that nobody is engaging with.

5. Less expensive to develop

You want a native app that works on OS X, PC and Linux? Be prepared to shell out some big bucks.

Good programmers don’t come cheap and with all those versions to develop, it’s no wonder a lot of people are favoring browser based apps.

Looking at the above, it seems like a no-brainer to opt for a web app over a native. So why are companies still releasing the downloadable counterparts?


Native isn’t going anywhere (yet)

In contrast to the above, there are still a few small but important features that browsers can’t currently compete with.

1. We’re not constantly connected

People move about. They don’t always sit at home with their fibre optic broadband humming happily beside them.

They get on trains, stay in hotels and sometimes set up camp in coffee shops (with intermittent wifi at best).

That’s not to mention people residing in countries where reliable Internet isn’t a given.

A few companies are approaching web app development offline first which is great.

Alex Feyerke wrote a thorough and informative post about Offline First design on A List Apart.

But there are still a lot of kinks to be worked out such as handling conflicting data from many sources and losing important data.

From an Internet perspective, native apps feel more secure.

Even if they rely on a connection to sync, it’s easier to work from your desktop than worry about hitting the back button or clicking anything that could face you with this:

Maybe Chrome was a bad example, that space bar game is really addictive.

2. The beauty of the dock icon

If you have a native app, you get your own big shiny dock icon. As long as people remember to put your app in their dock you’re in a much better position for consistent use.

If your users are anything like me, their browser tabs get a little overwhelming. Here’s mine just for writing this article:

Tabs can get lost in the crowd. Or worse, they can be closed never to be reopened. With a native app your logo has less competition and is less likely to be accidentally closed.

3. Hosting is cheaper

This only applies if you just have a native app and not a hybrid. Hosting a large web app that potentially thousands of people need constant access to ain’t gonna come cheap.

If you just have a downloadable app, your hosting will only cost the small price of having a few web pages with a download link.

4. It’s getting easier to do both

The main reason I think we are seeing an increase in native apps is the ease in which you can create one now.

Popular messaging app Slack uses MacGap to pull in the functionality of the web app and then add a native wrapper around it.

If your app is simple, this can be a great way to get it on people’s desktops at a pretty low cost. See how FrontApp have transformed their product into a hybrid app using mostly HTML/CSS.

So are desktop apps making a comeback?

As often is the case, yes and no.

I don’t think the native app was ever dead, it just became less practical and more expensive to develop them.

For a lot of companies the benefits of a web based app far outweighs the benefits of a native.

Not only from a business perspective but from a user POV too (Think InVision, Google Analytics and Medium—these certainly don’t have a big enough need for a native version).

We need to be designing based on how people are going to use our software.

Users don’t care whether your app is native or web based as long as it does the job properly.

Jason Grigsby has an excellent article about the superfluous nature of the debate. He says:

“Just because users are interacting with the information from the web in a different interface or format, that does not mean that the web is dead or dying. To me this arc read more like an evolution than an extinction.”

The main reason we’re seeing this rise in native apps is because more companies are realizing the value of adopting both in their strategy.

And as the popularity of something grows, so do the learning resources and ultimately — the technology.

It’s more the rise of the hybrids than the fall of the desktop.

Over to you. What do you think of the native vs web debate? Is one better than the other or should we all be adopting a hybrid strategy? Let us know in the comments!

    • hot_rush

      yes, btw slack for win uses electron. but electron poor and has lot of bugs. nwjs too.

  • That’s true and I agree. I think that this is an article that companies should keep it mind as they plan a web service. :)

  • Leon Brown 

    The argument for desktop apps make sense, but I’m not sure from the wording how aware you are of what can be done with web apps. All the pros mentioned for native apps can be achieved for web apps from the browser – this includes making web apps have their own dock icon, offline data storage and also installation for offline access – i.e. look up HTML5’s offline manifest feature.

    The only reason why we don’t see web apps taking full advantage of these features is because many developers don’t have the right mindset – e.g. the thinking behind the pros in this article. Web apps can have these features, but only if developers are willing to take the time to implement them – if they are aware in the first place.

    The two areas that this article should argue for native apps is on local file acces/storage and the difference between browsers. Even these issues are not completely without hassle for native apps – there are still system requirements and possibly the need to install frameworks such as a later version of .NET, which is the same as telling users to install Google Chrome. The file storage API is now supported on Chrome too – maybe not perfect, but is moving in the right direction.

    • MattDiMu

      I agree with the most points, what about features where web apps still fail:
      – syncing data in the background
      – notifications (while the webapp isn’t opened in a browser)
      – interaction with other native apps (e.g. mail -> calendar -> contacts)
      – a “real” installation and uninstallation (add to home screen is not the same)
      – other limitations like maximum file size for offline storage

      • Leon Brown 

        Good news – there is already a Javascript API for notifications:

        Integration is also possible with other native apps – there is a way to download file instructions for calendar, etc. that detail new events to add, etc.

        Maximum file size for data storage is an issue, but 5MB should be plenty for most uses. Offline storage may allow more.

        • MattDiMu

          Nice! I knew, there was some sort of notification api, but i thought it would work only, when the website is “opened” at least in the background. Unfortunately browser compatibility seems to be still an issue (it MUST work on iPhones).

  • Jose Manuel Mujica Puentes

    Great article Laura, Thank you. I do think Desktop Apps are making a comeback, but native vs web, we are not there yet. I think as a company you should try to cover every way to get more users, but definitely Web App stand as a most-have, native depends on your budget i think.

  • hot_rush

    Slack has $350M of investments, but still has no one native desktop application…

    • Diego Lara

      It has now

      • hot_rush

        native or electron based?

  • Niraj Ranjan Rout

    Excellent article, Laura. It’s impossible to choose one between the two because it’s very much in the balance. Web apps are certainly good when you want to reach a large audience with limited efforts whereas desktop apps are the way to go if you are looking to create the best customer experience. Thanks, Niraj (Founder at grexit.com)

  • Great !
    New with App.js you could create a desktop app using web techs.

  • Clement


    I like your article. I would like to talk about the development cost. You said that web development is cheaper than desktop.
    * Microsoft owns 97% of the corporate OS market.. Windows everywhere. Your argument on running over different OS should be reviewed.
    * There are tools (or IDE) that allows to have a single code base to Mac OS, Win 32, Win 64, Android and iPhone…
    * You forgot to speak about “Browser hell” ( must like DLL hell ). Some companies are tied to a certain browser version because their main application runs well only on that specific version. You cannot install a newer version because it will break their application. So you must *INSTALL* another browser ( and you just lost your zero installation right here ). And good luck explaining to your users why Browser A should be use for Application A, and browser B for the other.
    * Browsers are still the *most attacked app*. Remove the auto update feature and review each update before applying them without pulling your hair. Any of those upgrades might break some “bug” or fix one, anyway, your team will have to stop everything they are doing and do a hotfix.
    * And at last… There are enough differences between Javascript implementations to keep your development and test teams very busy. They have to deal with: IE 7, IE 8, IE 9, IE 10, IE 11, Firefox, Chrome, Opera (on a desktop) and explain to your uses why you will bill them to revisit every single UI element of the Windows 10 new browser (Edge).

    My 0.02

    • André D Palhares

      Had To login and post this just to agree with that!

      • xpsync

        LOL, same here, the only reason i logged in too. Native apps are controlled, web-apps are weak, no control, far too many unknowns, and oh so vulnerable.

        Lets run our apps on the most attacked, vulnerable software available today! xd Great idea!

        Our av went web based, lol, i mean how f’in stupid can anyone walking this earth be, the browser is compromised, now we have no way of getting rid of the virus, went with another av provider with a client.

        Another program we use (i’m purposely not mentioning names here) probably our most critical tool, the next version they used was web based only no more desktop client, Goood, F’in bye, huge loss for them. The thing was brutally slow, half of the most important features sometimes worked sometimes didn’t as they would time out on large data retrieves. We don’t have time for this nonsense we are running a business.

        FYI: Both companies returned to desktop, but… sorry we are sticking with people who maintain common f’in sense.

    • Γιάννης ο Μπαν(ι)αρισμένος

      And of course performance, which is a critical issue. Web-apps will always be less performant than the equivalent native app.

      Nowadays, a native app is superior ON EVERY ASPECT.

  • Panos Roditakis

    I find many differences building native apps, back then and now.
    Today, languages are better, tools are better, you can connect to data easier, make async with ease, have more controls, better UI and extensions and many more.
    Working from the web will always feel strange and away from the user and it’s machine, the market of mobile apps have proven local apps are very powerful on today’s world.
    Having done all sorts of projects, I still believe that fresh native apps with remote data engagement and intuitive ways to cut down production cost, is what customers really want. And they probably want to move away from the old VB6 interfaces and use something newer.
    Maybe because, driving real new cars is better that using a simulator, even the best simulator ever.

  • Paulo Eduardo Gazola

    Who make the rules is the clients. They demand needs, and for each need you choose the best tool. Desktop / web? Language A, B, C, D? And so on. I’ve programmed Prolog, Pascal, Delphi, VB, PHP and Java. TODAY (year 2017) I AM programming an old old old huge and comples Human Resources system in VB6. A very weak technology (the next VB .Net is so much better, object-oriented, for example), but, HEY!, the past programmers did a wonderfull job, organizing the code in routines (there are 200 tables in the database and around 100.000 lines of code). They create a layer to make a poor ORM. And you have automatic updates. The app checks online updates and install the new version automatically. You have an UI much more richer than any web app today (Gmail and GDocs, for instance) and the cost of code change is zero. You put that button there, you do the SQLs, change business rules, deploy and go home. You don’t have to fight the browser or download Firefox v80 because you have the Firefox v78. To corporate apps, Desktop is king. On the Internet, of couse, “pure” web is king. There is a tool for each task.

Get the latest in Entrepreneur, once a week, for free.