In technology definitions are important. We talk in a language that’s mostly made up by our own industry.
Bugs, cache, regressions, polyfills, monads, polymorphic functions, isomorphic JavaScript and a lot more language. Even when you do work in our industry, it’s hard to keep up with all the language.
There there’s "web app". A lot of people (including myself) will refer to many web sites as apps. But why? I don’t know of a good definition ("good" in that there’s no hand-waving involved).
So here’s my definition and distinction between web site and web app.
[](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
[READER DISCOUNTSave $50 on terminal.training](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
[I’ve published 38 videos for new developers, designers, UX, UI, product owners and anyone who needs to conquer the command line today.](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
Web site[](#web-site)
A URL that you visit. Classic examples include a blog or a wiki. Where the content is waiting for you at the end of the URL.
JS Bin is a web site by this definition. You visit the URL and create content. Someone will share a bin, and you visiting this content. You go to the site.
Web app[](#web-app)
A URL that you take with you. This is locally installed and data is pushed to you. Classic examples of this are email clients, news readers, task orientated applications. The app goes with you.
Importantly: you expect it to be available with or without an internet connection.
Isn’t this just a web site with offline support?
I’m still scoffing at "just". Sure, if you want to dumb it down as such. But equally isn’t an app on your screen, like Chrome or TomTom or PhotoShop, just some compiled code? Yes, it is, but it’s actually a lot more than that.
The common language word we refer to compiled programs are: apps.
It’s not that it’s harder to build web apps, it’s that the experience with these types of web sites are fundamentally different to a web site like Wikipedia for instance.
The future of web browsers is coming, and they’re giving us more and more support for offline technology, through storage (for data caching) to control over the network (through [service workers](https://github.com/slightlyoff/ServiceWorker)).
If you’re using progressive enhancement, then your web site can achieve both. However, I don’t believe it’s entirely possible to create a web app without the functionality that JavaScript provides. So there’s is some expectation that a web app relies on JavaScript, but that’s not what makes a web app.
Now, next time you’re asked to build a web app, at least you can have a feature set that you’re working towards.
Published 6-Oct 2014 under #web. [Edit this post](https://github.com/remy/remysharp.com/blob/main/public/blog/what-is-a-web-app.md)
Comments
Lock Thread
Login
Add Comment[M ↓ Markdown]()
[Upvotes]()[Newest]()[Oldest]()
Capernicus
0 points
8 years ago
i feel like a total jackpole, you people all seem to get this stuff, its like i am rubbing two sticks together and you are all walking around with Zippo’s

Nickspages
0 points
8 years ago
We apps are responsive websites that look, feel, and function the same as native apps. Same features for both types of apps are location services, operating the camera, etc. Web apps can now do the same task as native apps.

Tobias Buschor
0 points
9 years ago
I really don’t like your definition of a webapp.\ I don’t want to give up the certificate "webapp" because of having the advantage of having Urls

rem
0 points
9 years ago
I don’t really follow what you mean. But right now, today, webapp has no meaning: [http://remysharp.com/2014/1…;](http://remysharp.com/2014/10/06/what-is-a-web-app#comment-1621921259). The way I’m trying to define it does not mean a webapp doesn’t use URLs.
None the less, no one is twist your arm :)

Tobias Buschor
0 points
9 years ago
Does a webapp - by your definition - can live at a url like "[myapp.com](http://myapp.com)"?\ This is what i mean :)

rem
0 points
9 years ago
(I did try to reply to this via the disqus site, but I think it got lost).
To answer your question: yes, it would live on a url like [example.com](http://example.com), etc.
I’m still talking web here, not native or installed through app stores. I mean that the the concepts used during application development have a different mindset.
I’m trying to stick a definition to something that no one has really had a decent answer to: what is a web app.
:)

Tobias Buschor
0 points
9 years ago
Ok, this is great! I was afraid you would propagate packed apps :)

Šime Vidas
0 points
9 years ago
Restricting "web app" to offline support via ServiceWorker? I’m in :)

toepoke
0 points
9 years ago
\#imho a web app has some (undetermined amount of) dynamic behaviour. You need to sign into account, whether by traditional means or by "magic" URL.
I’d consider jsbin a web app.
Just my 2p worth.

rem
0 points
9 years ago
A form has dynamic behaviour.

Dave Child
0 points
9 years ago
But a basic form often doesn’t affect the experience. A contact form, a search form, an e-commerce checkout - these are all pretty one-way. I think a web app is a site where you are using it as a tool to work with some sort of data - Gmail, Jira, [Last.fm](http://Last.fm), that sort of thing.

toepoke
0 points
9 years ago
Hence "(undetermined amount of)", I’d suggest the dynamic behaviour of a form is under this threshold. Of course, don’t ask me what the threshold is :)

Chad von Nau
0 points
9 years ago
I think defining a web app as requiring offline support is a bit arbitrary. By this definition, Gmail was not a web app until it had an offline mode. My take is that everything resides on a continuum and the distinction between calling something a site vs an app is mostly a choice for framing a conversation, not something that can be empirically determined.

Jeremy Keith
0 points
9 years ago
I’d love it if everyone used "web app" to mean what you’ve just described …but I’m pretty sure that 99.99% of the time when developers/designers/marketers/whoever refer to what they build as a "web app", they are not thinking of offline usage or portability, which is a real shame. For example, they would almost certainly refer to JSbin as a web app.
So the result is that many people are using the same term ("web app") to refer to very different things (just like we did with "web 2.0"). That’s not a healthy situation. Personally, I’d rather not use the term at all, but at the very least, whenever somebody else uses the term (in a meeting, an email thread, whatever), I’ll be sure to stop them and ask them for clarification on what they mean.
Oh, and by the way, regarding the last bit about new technologies and progressive enhancement: when it comes to service worker, you pretty much have to use progressive enhancement (because of that first service-worker-less visit).
It’s almost like Jake deliberately specced it that way. ;-)

rem
0 points
9 years ago
Well, I’ll/let’s work on increasing that 0.01% then!
And I agree, I suspect the term is being used rather fast and loose, exactly the way "HTML5" or "Ajax" or "Web 2.0" has been used.
[Commento](https://commento.io)