New browser technologies such as HTML5 have made web apps much more capable, but the experience of using a web app is still poor compared to that of using a desktop app. Web apps can be hard to find, and they aren't easy to distinguish from regular web pages. To help solve these issues, Google Chrome supports installable web apps, which you can now find in the Chrome Web Store.

Problem: Web apps are special to users, but not to browsers

Even though web apps such as Gmail and Facebook are much more important to users than other web pages, most web browsers treat apps and pages in the same way. For example, bookmarks for web apps look the same as bookmarks for other web pages.

Another issue is that security defaults that make sense for normal web pages are often a bad match for web apps. Normal web pages must ask for permission from the user before they can do relatively innocuous things like show notifications, use the clipboard, or access permanent storage. This makes sense; it would be annoying for random web pages you stumble across to show desktop notifications. On the other hand, if a web app repeatedly asks for permission, that's a terrible user experience.

A calendar window with a stunning number of dialogs and notices
Repeated requests for permission are annoying

Solution: Installable web apps

A better approach is for users to install their favorite web apps. An installed web app can have a more prominent place in the browser and be granted increased permissions. Chrome supports this special handling of installable web apps right now.

Installing a web app in Chrome is easy and quick, with no restart required. At its simplest, installing a web app is like creating a super-bookmark to it.

An install dialog that says this app can access your physical location and permanent storage
When installing a web app, the user can grant all necessary permissions at once

Once installed, a web app gets a big icon in the app launcher area of Chrome's New Tab page.

Now what?

Now that you know what installable web apps do, read the documentation for the type of app you plan to write:

Hosted app
Read Hosted Apps to learn how to turn an ordinary web app into a hosted app.
Packaged app
Read Packaged Apps to learn about packaged apps.