Web Apps Are the Future

By Tim Evko
We teamed up with SiteGround
To bring you the latest from the web and tried-and-true hosting, recommended for designers and developers. SitePoint Readers Get Up To 65% OFF Now

Native mobile apps are a little weird, if you stop and think about them.

The average mobile app weighs around 20MB, often requires an internet connection in order to be used as intended, and issues several data-heavy updates during its lifetime. Some of these mobile apps have a web version that contains all or most of the same features, at nearly 1/20th of the size.

When you buy a mobile phone, a lot of these apps come preinstalled, and can be difficult to remove from your device. There is an app for every use you can think of, but every download means less available storage on your device. Many native apps have specific and trivial use cases (calculators, alarm clocks, sound recorders), while still having large file sizes and internet connection requirements.

If you’re a developer, it only gets weirder. You can’t just make an app and release it into the wild. You first have to get it approved it on some marketplace to be seen, which can be a difficult and expensive process ($99 USD on apple app store). If you want to make your app available to a wider audience (apple, android, and Firefox OS), you have to release separate versions, which include additional marketplace approval processes and plenty of extra development time.

Vector Hands touching a Smart phone with Social Marketing icon

The Problem

Although native mobile applications are useful and entertaining, they’re also a giant inconvenience.

For developers, they’re difficult to develop if your skill set revolves around HTML, CSS, and JavaScript. They’re difficult to get on a marketplace, because of tightly controlled requirements and licensing fees. They’re difficult to support because of multiple software versions and device incompatibilities. As an Android user, I’ve come across several great apps that I’d love to install and use, but am unable to because they only exist for iPhone users. This is an upsetting (albeit “first world”) problem, but I can’t blame the developers of the app, because supporting just one platform is difficult enough!

For users, they’re difficult to install because of bandwidth constraints, file sizes, and frequent updates (open your application manager on your phone and see how many of your apps need or have recently downloaded an update). How many times have you had to uninstall an app on your device to make room for a more important one?

Let’s not forget that several mobile applications have web versions that have the same content and capabilities, negating the need for an app in the first place.

So native mobile applications are difficult for both users and developers alike. But developers keep building them, users continue to download them, and everyone keeps complaining. So is there a solution to the problem of native mobile applications, or are we stuck with the problems we have?

The Solution

The solution is the browser. Remember when I said that most applications require some form of an internet connection to work properly? Well truthfully, all applications require an internet connection to work properly, because without the internet, you can’t download any applications. We use the internet to download applications and updates for them, and often to send and receive application-related data.

If all our applications depend so heavily on the internet, why don’t we just keep them there? This is exactly what a web app does. A web app relies on the browser and its capabilities to render the application, whereas a native mobile app relies on the device and its capabilities to render the application.

Web apps cause plenty of native mobile application headaches to disappear. If you’re a developer, you only need HTML, CSS, and Javascript to start building your application! In some cases, your application can be completely static, meaning you don’t need to rely on any server side processing.

Although marketplaces for web apps do exist, the user doesn’t need to go to one to download your application. Web apps live in the browser, which means your users can navigate to a URL to use your application, and installation is as simple as bookmarking a website. Developers can also avoid the need to make several different versions depending on their users’ operating systems.

Web apps are great for users, especially because they make distribution and installation so easy. They also eliminate size constraints, which means no more having to uninstall an application in order to make room for more! Updating a web application for a user is a seamless process, requiring nothing more than a browser refresh.

flat app phone hold in hand


Although web apps offer a potential solution to native mobile headaches, there are plenty of technology gaps that exist between browser and native rendering engines. Paul Kinlan writes an excellent article about this issue, in which he journals the results of his quest to live on nothing but web apps for a whole day.

Although explained in the above article, the issue of web apps and offline performance deserves its own mention. Offline-first architecture means structuring your content in such a way that when a user doesn’t have an internet connection, they don’t get a blank white screen from your web app. Instead, they can interact with the web app, and data will sync up to a server when a connection is available. Many web apps today are very bad at this, and as a result, the market for web apps is not as large as it could be. A list Apart has a great article explaining the concept in depth, and it’s well worth the read. Solutions for solving the offline problem are growing, one of the most exciting being PouchDB (here’s a guide to getting started).

Another large issue that the web platform has yet to fully solve, is the issue of caching and storing application resources on the client side. Appcache was created to solve this problem, (we’ve covered it before), but it had its issues, and so the community is looking to service workers for a final solution. But service workers are not yet ready either.

System notifications and background tasks are two other issues that web applications have yet to solve, although Google Chrome’s hosted web app solution seems to offer a fix for these problems.

Getting Started

Even though there are areas in which web apps have yet to catch up, we shouldn’t be discouraged from building web applications today. Although technology limitations get in the way of making all web applications obsolete, we can currently start to replace native applications with the technology that we have right now. Here are some resources to help you get started.

  • Hoodie is a framework for building web applications that features offline-first capabilities, making it great applications that need to work on mobile devices. Here’s how to get started with Hoodie.
  • Intel XDK is an “HTML5 Cross-platform Development Tool” for building Web and Hybrid applications. Here’s a more detailed look at XDK.
  • Google Chrome and Firefox OS will allow you to create “Hosted Web Apps”, which can give your application extra features and capabilities, and even make your app installable on a users device.
  • Offline.js is a library that will notify your users if they have lost their internet connection.
  • Famo.us is a javascript framework for building UIs that perform like native on any screen.
  • Treo is a jQuery like solution to using indexedDB.


We’re not yet at the point where the web can fully replace all native applications, but we can build high-performing responsive web applications right now. With new web APIs and libraries getting released every day, the web app is starting to look more appealing over traditional native apps. Let’s start building things on the web that perform like native apps, taking into consideration issues such as screen real estate, offline capabilities, and file size.

If you’re looking for a new side project, pick an application currently installed on your phone, and try to build a web app prototype. As a bonus, be sure to watch this great talk by Christian Heilmann where he touches on the subject of the web versus native applications,and what developers can do to make the web a better place to visit.

What native-app-like capabilities would you like to see implemented in the web platform?

We teamed up with SiteGround
To bring you the latest from the web and tried-and-true hosting, recommended for designers and developers. SitePoint Readers Get Up To 65% OFF Now
  • Pooria Farhad

    You forgot to mention a briliant framework, Yes! Ionic. ionicframework.com

  • Tim

    Thanks for the link! Although I’m not sure Web Apps and hybrid mobile apps are the same thing

    • Pooria Farhad

      They are on the same way. as You may know, The aim of cordova/phonegap frameworks is to obsolete themselves.
      There are many gaps between native app and web apps yet, We are waiting for browsers to fill them but before that, we need something to fill the gaps, Cordova/Phonegap do it great.
      and also, Ionic uses cordova but, it is a html5/css3/js framework by itself and They may can be useful in future without cordova.
      anyway, We are waiting for better browsers :)

  • Franco Furger

    It seems to me you are underestimating the issues specifically affecting the development of web/hybrid applications:

    1. You have only a very limited access to your platform APIs and hardware capabilities. Want to let people take pictures in your app? Good luck with that. Yes you can use Phonegap, but then you are back to the Apple/Google marketplaces.
    2. As soon as your app requires some computational power you are quickly out of luck. Javescript has gotten a lot more powerful, but apparently the fact that it has automatic garbage collection inherently limits its scope for further improvements. Processors for their part are not going to get faster, but not fast enough.
    3. Updating a web app is not as simple as hitting the refresh button. Managing a local storage can turn into a nightmare. Ok, Hoodie is very promising, but it is still beta software that I wouldn’t want to use in a commercial environment.
    4. Even though browsers on different platforms these days perform in very similar ways you can bet your house that you are going to stumble on differences and issues. Just yesterday I discovered that Safari won’t let me display svgs that contain a png. All other major browsers don’t have any problem with that. No big deal you say? Well, it cost me a day of work to find a way around. Just saying.

    And there may well be other issues I am not aware of. Don’t get me wrong, I am not going back to developing native applications, but one has to be aware that the web/hybrid option is not always as attractive as it sounds.


    • Carl Vaillancourt

      1 – 100% right, browsers will have to find a way to do this.
      3 – Isn’t it the same nightmare for native apps with offline mode? You still have to rearrange your DB on updates.
      4 – True but working around small browsers differences is still quicker than building an apps two times..


      • johnsmartypants

        Who told you that? It’s actually easier to work on even 2 different codebases that have terrific SDKs and rely on a ton of things for native controls that you really have to populate with data than to deal with shit web inconsistencies among different browsers and have to use gazillion frameworks to achieve something and then things get really shit when you try to optimize it for mobile.

        You will build a native app for both iOS and Android natively faster than you will build a website that works great on all screens.. I guarantee you that.

    • Lyckron

      1. Actually there’s a couple of need stuff brewing out there regarding accessing hardware.. Ex the camera


  • Tatsh

    ‘For developers, they’re difficult to develop if your skill set revolves around HTML, CSS, and JavaScript.’
    So we should only pander to a single skill set? Development is a lot more than HTML, CSS and JavaScript. Any good developer can pick up the various tools required to build native applications. Any good developer can learn new languages, concepts, etc. It seems like you are kind of forgetting that things change very quickly. We are all fighting to stay up-to-date on what we work on.

    ‘For users, they’re difficult to install because of bandwidth constraints, file sizes, and frequent updates (open your application manager on your phone and see how many of your apps need or have recently downloaded an update).’
    Apps are not hard to install or update. The App Store on iOS is dead simple to use. iOS as of iOS 7 automatically updates apps. Nobody is thinking of bandwidth constraints or file sizes until an error occurs.

    ‘Let’s not forget that several mobile applications have web versions that have the same content and capabilities, negating the need for an app in the first place.’
    And your point is? So they should not make a native GUI chrome at all because the browser is all there needs to be? How is a user supposed to find the app? And honestly, why are you concerned about how they distribute their application?

    ‘The solution is the browser.’ Do you not recall that iOS began as a web-app only OS for 3rd parties? Yes, we lacked a lot of helpers (as in libraries and frameworks) back then but overall the performance was abysmal. Apple’s response was to allow fully native applications by the time iOS 2.0 came out. When Android came out, it allowed native applications even with JNI for even better speed. And it is true as @francofurger:disqus put it, once you need performance you are extremely out of luck. Even with all the new enhancements to JavaScript like typed arrays, and WebGL, you cannot beat almost full control with a slight sandbox.

    The current situation is that users do keep downloading and using native apps. They like it this way, and it would be completely stupid to ignore that. The App Store is easier to use than it is to try and browse around for web applications. This is shown time and time again. Zeal means absolutely nothing to users (e.g your ‘the solution is’ statement).

    • Guest

      Great comment.. not only that but the only people who are still touting “web apps” as the future are those who really never bothered to learn anything else but shit html, css and js and are desperately still clinging onto this dinosaur of the stack.

      Not to mention the internet of things that’s becoming every day life and where a browser has no real place and where device specific API support on native level will be more important than ever. And that’s where web is completely dead.

    • James Alexander Dickerson

      He’s not talking about right now. Apparently, you didn’t read the title. “Web Apps Are the Future”… As Javascript, HTML, CSS, etc. keeps improving, browsers become more standardized in the way they handle CSS and HTML, etc., and solid internet is provided across countries (i.e. Google Fiber), who’s to say that web apps will not be displayed in your regular app store. Just because the whole web app idea has failed before, doesn’t mean it will fail once the environment has become more conducive. All of the reasons you gave for discrediting his statements were pertaining to how it exists today… which completely means nothing, since it’s about the future… and things largely seem to be headed in that direction. Javascript may not have the low-level capacity to control hardware… but it’s constantly being improved… and it is likely that something will either take it’s place, or merge with a lower-level programming language such as C or C++ in order to achieve such things. And those of you talking like javascript, html, and css are garbage, I laugh at you… because they will probably become much more important in the future as they improve and become more powerful.

      • Edwin Reynoso

        Especially with WASM coming up, if we need the performance boost, there will be WASM

  • You are of course right, and wrong at the same time. Webapps are better than native just like Linux is better than Windows, Open Office is better than word, and Postgres is better than MySQL.

    Users are like streams, they will follow the path of least resistance. They will pick up what they are presented with, and on mobile that means the app store.

    Perhaps this will change.

    • frostymarvelous

      I thoroughly enjoyed this comment.

  • Mark Campbell

    From the development perspective, I can see how web apps make sense. As a front-end developer I once read these articles and thought YES WEB APPS WILL RUN SHIT.
    But from a consumer app development perspective you release were you stand to have the most gains. I could build a web app in a week put up a sign up page and run all types of marketing to drive traffic. OR
    I can release my app in the app store get featured and get instant traction. from users organically discovering my app.
    Web app’s are really popular on a enterprise level because the market is built-in and or established. Even then these companies are using tools like Phonegap, Titanium, and Xamarin to port to native.
    And from an investment perceptive, the native app gets funding long before a web app will.
    The greatest value of web app have been coming from the ease of building a infrastructure on the back-end. With the advances in JavaScript and the API’s its become easier to build a back-end to connect any visual piece to, doesn’t matter if its html or native it connects. Now that’s going to be huge and make app development much easier.
    But until the web app marketplace is as solid as any app store then native will be winning for many years to come. I love this stuff for MVP’s though.

  • nvrau

    Have you looked into https://unhosted.org/?

  • I wrote native apps for a couple of years. They are much more expensive to develop than web apps. Keep in mind these weren’t games or utilities but mainly apps for small businesses.

    • johnsmartypants

      Yes.. they might be slightly better (but I would even disagree with that considering the amount of time you have to put in to get your web app code to work optimally across different browsers – both desktop and mobile) also run faster and better in every regard, they are integrated within the devices that people use and actually can be monetized properly which is for a developer the most important aspect.

      • James Alexander Dickerson

        if you haven’t figured out how to get your web app to look uniform across multiple browsers by now, then you haven’t been keeping up. Even old IE there are ways to make it look and work the same in current Firefox… and it’s not difficult at all.

  • David Moore

    There was a time when the only useful applications for a computer were those you installed. The idea of web hosted solutions for productivity tools like spreadsheets and documents were confined to desktop applications. This idea is ridiculous now. No doubt that native applications for mobile devices is the current trend. But there are many barriers to entry in the mobile app market for developers that don’t exist for web apps.

    Take a look at the App Store Review Guidelines: https://developer.apple.com/app-store/review/guidelines/
    Doesn’t make me want to roll up my sleeves and jump in. I’d prefer a little more control.

    What if you don’t want to share revenue with an app store? I’d prefer to evaluate vendors (web hosts, IDE products…) rather than have the vendor completely control the production process.

    Updates? To say that updates are seamless for phones is simply not true. They create serious lag with bandwidth and processing.

    Exposure? The idea that you will be discovered in an app store easier than getting your website into the eyes of the masses seems a bit misguided. There are 1 million apps in the iPhone app store. Sure there are many more websites, but how many provide much more than content for reading? Either way, it’s going to be hard.

    There are needs for both in the end. Some solutions are more fitting than others. Still if history repeats itself users will tire of installing instead of visiting.

  • Bnny

    I developed entire mobile web applications for the biggest companies.
    Mobile Web App & Mobile Native App separated they are both great, but together they are become extremely accessible!

    Mob Native App:
    – no url
    – no username/pass
    – only from 1 device

    Mob Web App:
    – url
    – username/pass
    – from any device

    They can’t go without each other these days already. If you think it’s the future, you are wrong, it’s already happening some times.

  • Malky

    I would agree that web apps are the easiest and cheapest way to distribute data, but currently living in a country with limited internet coverage, (Bulgaria although I am Scottish), that basically wipes them out! No coverage, no web app! Which is why, when I developed my first app which relies on directional information, I had to write a native app, so you could load the data before leaving, offline Google maps etc! My best friend lives in Scotland and travels frequently down to Manchester/London and hits bad internet spots. They will co-exist!

  • Schnitzel

    The answer is actually quite simple. Webapps will eventually be able to do everything a native app can, and there will be a web-app store. So when that day comes which one will everybody be using? … Yep you guessed it!

  • eric

    Thinking webapp are better than native apps is like telling plans are better than cars… Plans are better when you want to go the other side of the ocean but a car is better to go move locally…
    The same way of thinking apply too web apps vs native apps… Users will use web apps to access there data from a outside computers but will always prefer to use their native app to access their data on their own computers because, in general, users experiences is way better in native apps.
    Good developers should always choose which type of app to develop by thinking what is better for their users not what is simpler for us to develop. There is a place for each type of apps. Developers are supposed to be professionals that develop the better solutions for the users needs…
    Writing the kind article like above just indicate the author is not a so professional software developer…

  • Fred

    The problem is when you download an app you don’t have to use internet so you can use it anywhere or on the go. With this idea if a place doesn’t have internet then you cant use apps.

    • James Alexander Dickerson

      well first off… how do you download an app if you don’t have internet? Second, many of the projects that were discussed were “Offline-first” meaning that they work offline and then sync, once an internet connection has been made.

  • psarahtonen

    Another thought on user behavior though is that if you need something right away, say a currency exchange calculator, a web app is a lot easy for the user to find and use than going through the App Store.

    All of our information and technology has been on a path toward more centrality when suddenly native apps fragment all of that centrality.

    Seems like we jumped off of the evolutionary track.

  • C B Newham

    Goodness me. God help us if the future on mobile is Javascript and CSS.

    “For developers, they’re difficult to develop if your skill set revolves around HTML, CSS, and JavaScript. They’re difficult to get on a marketplace, because of tightly controlled requirements and licensing fees.”

    Well, perhaps people should learn to code in proper languages like Java, Swift or Objective C. Difficult to get on the marketplace? Far easier to market than some obscure web app. Is there a marketplace for web apps? I don’t think so. Tightly controlled requirements? So they should be! Licensing fees? I’m not even sure what you mean by this.

    While initially it might seem as though you are going to build one HTML/Javascript/CSS web app that will run on all platforms, it’s a false economy. For a start you don’t have access to many of the native APIs on each device. Second, you are not only having to deal with numerous device types (as native devs have to), but all the different browsers on *each* of the different platforms (and those browsers will have their own subtle idiosyncrasies that you’ll have to work around). So you are multiplying the problem by several orders of a magnitude.

    HTML/CSS/Javascript – they have their place, but just say NO when it comes to complex mobile apps.

  • Cristiano Andaló Tenuta

    Design is design. Code is Code. From my developer/coder perspective, the native way bring us now the opportunity to totally separate this worlds without this man in the middle (web designer). Trust me I prefer to get a raw PSD, cut and place all the images in the respective layout for each platform instead to have to deal with CSS hacks to make a simple layout works on all browsers. For me this is the more obvious and logic way to go. Another point is, why I have to wait to some third party developer do some code so I can use a hardware new feature. Not to mention the security issue of relying on these third-party developments and browser use, especially in the Android platform that allows apks be manually installed. So from my perspective I wish long live to native development and app stores.

  • Patrycja Kiełkowicz

    Hi Tim! That a really interesting article. I’ve never thought web apps could replace mobile apps on one’s phone. That is quite useful cuz I have always had problems with the room on my phone and just couldn’t install an app. But about the Android or iOS, some developers are doing a really great job when it comes to changing the Objective C into Swift. Like for example Zeccer app. One of the most useful apps I’ve ever had. Check it out: http://zaven.co/projects/zeccer.html

  • Pavel

    Web applications are just shit