Progressive Web App (PWA) demo using Vaadin components
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Fix service worker build path issue Feb 24, 2017
.stylelintrc Replace paper-icon-button and cleanup styles (#78) Feb 23, 2018
polymer.json Replace mentions of Vaadin elements with components Mar 8, 2018

Progressive Web App with full offline capabilities

This is an example project for how you can build a Progressive Web Application with Polymer and Vaadin components.

The application uses a Service Worker to cache the Application Shell. A Web App Manifest file ensures that the browser identifies our app as a Progressive Web Application and offers the user to install the application through an install banner.

Live Demo

Try the live demo of the Progressive Web Application.

Running locally

  1. Fork this repository and clone it locally.

  2. Make sure you have npm installed.

  3. Run npm install bower polymer-cli -g to install tools needed to run the project.

  4. When in the expense-manager directory, run npm install and then bower install to install dependencies.

  5. Run polymer serve to start the development server.

  6. Go to


Run all lint tasks in parallel

npm run lint

Run ESLint for JS

npm run lint:javascript

Run Stylelint for CSS

npm run lint:css

Run polymer-linter

npm run lint:polymer

Docker container for production

You can use the included Dockerfile to deploy the built app using prpl-server.

Build project locally

The default polymer.json contains the "autoBasePath": true setting to support differential serving with the prpl-server. This option makes the build incompatible with static file servers, though. So, in order to serve bundled app locally using polymer-cli, do the following steps:

  1. Remove "autoBasePath": true setting from the polymer.json

  2. Run polymer build

  3. Run polymer serve build/es6-bundled (you can choose es5-bundled instead)

Read more about the build options in the Polymer: Build for production documentation.