SPA and PWA Boilerplate for Wappler

Today I managed to find time to start a tutorial based on the repository

The first video titled “Introduction” has now been published

I will try to create each of the next parts at a rate of one per day.


Great work Ben!

This is a fantastic starting point everybody is asking for!

SPA and PWA technologies are now easy to implement thanks to your boilerplate!

Together with the videos this will definitely be a great starter for many projects!


Very clever Ben, such a nice way to explain the way the technologies fit together too, thank you. Probably one of the easier explanations of PWA in use I have seen.

1 Like

Thank you both for your encouriging words, much appreciated.

Edit: Removed the video bcause it contains errors. Apologies. :blush:

Second edit:

The video is back again :joy:

3rd Video:

4th Video: The Index File

5th Video


So this works on the local machine/mobile device even though routes are implemented through a .htaccess file on the php server?

Are all the routes saved in some way so there is no need to make a call to the server?

It looks like the answer is ‘yes’.

Edit: Go to and try it for yourself

2nd Edit: I forgot about this one where I still need the database to be used offline. And what about this forum which is also a PWA.


Can we have tutorial on implementing PWA + push service? :pray:

Short answer: Yes :+1:

Long Answer: I have wanted the boilerplate to be suitable for developers that are starting off using Wappler, to give them somewhere to start. The reason for including features such as SPA and PWA is because these can be silently included in the boilerplate without needing in depth knowledge of these techniques.

With Push notifications, this is different. We need to create a secure Admin section where we can send the notifications, we need a database and API (VAPID) keys.

The roadmap:

  1. Finish the totorial for the PWA Boilerplate
  2. Add database functionality
  3. Add Push notifictaions

In the meantime, you may want to have a look at