Enonic Market Enonic Market
Workbox PWA Starter icon

Workbox PWA Starter

Framework agnostic Progressive Web App starter kit using Workbox, Webpack and Router library

Screenshots

  • Main page - Offline
  • A sample page - Offline
  • Main page - Online

Progressive Web Apps (PWA) brings together the best of native mobile apps and web.

Framework agnostic

Kickstart your Progressive Web App project with this starter kit. The PWA starter provides the essential building blocks for any PWA project, and lets you use your favourite front-end framework, or roll your own.

Webpack + Workbox

The PWA starter uses modern tools like Webpack for the build process, Workbox for automatic generation of the Service Worker file and dynamic response caching. A manifest file definition is also included.

Url handling and best practice

To handle server side urls, the starter uses the Enonic javascript router library. The starter delivers an out-of-the-box best practice approach for Enonic XP. Everything you need to build and deliver an end-to-end PWA.

Releases

  1. 1.5.0

    • Re-factoring of code
    • Uses Thymeleaf for pages
    • No external dependencies
    • Initial work on push messages started
    • Compatibility:
      • 6.12.0
  2. 1.4.0

    • Removed menu from the header
    • Upgraded Webpack and Workbox to newer versions
    • Changed default strategy to cache-first
    • Compatibility:
      • 6.12.0
  3. 1.3.0

    • Register Service Worker and embed inlne styles on every page
    • Update SW on app version change
    • Use NetworkFirst caching strategy
    • Compatibility:
      • 6.12.0
  4. 1.2.0

    • Upgrade xp gradle plugin to 1.0.17
    • Compatibility:
      • 6.12.0
  5. 1.1.0

    • Pass 100% audit on Lighthouse
    • Compatibility:
      • 6.12.0
  6. 1.0.0

    • Initial release
    • Compatibility:
      • 6.12.0

Comments

Clone Workbox PWA Starter

To initialize a new project based on Workbox PWA Starter, execute the command below. Remember to replace <com.company.myapp> with a unique name for your app, and </my/projects> with the location you want to store the project. <$XP_INSTALL> is the location of your XP installation.

OSX/Linux

Windows

The init-project tool initializes a new application project structure by retrieving a Git repository, removing all references to the Git repository, and adapting its build file properties (gradle.properties).

Complete init-project documentation