Maybe it's too late at night but PWA just sounds like marketing speak to me. Based on what I've read, all this seems to be is a way to describe web apps that are aiming to be as good or better than native mobile apps.
I would urge you to think about what you want to build and build it. Using the web APIs from Nim is easy, just wrap offline storage APIs, notification APIs, etc. and expose them as beautiful, simple and lightweight libraries we can all make use of. Don't go straight to creating a big framework until those are in place.
Agree with dom96.
PWA has very vague definition, even in JS-land it's not clear of what exactly are PWA or PWA-framework.
Just using JS API from Nim should be enough.
P.S. I would stay away from PWS, both Apple and Google are against it and making it very complicated to provide native-like experience in web (even if they publicly say they support it) as they want you to use AppStore and pay money and all the purchases go through them.
It's useful to have webapps that are fully usable when javascript is disabled and add cosmetic and usability improvements when it's enabled. I have this need for work right now.
Some of the existing solutions implement server-side rendering with added benefits on speed and bandwidth but they are not implemented in Nim.
Thanks for the replies.
My idea was to have a tool to create an installable app automatically.
For example for the Picheta snake game: https://picheta.me/snake/
PWA actually do have a very rigid specification (from Google and ChromeOS) and a standard-in-practice from Apple that is pretty much the same.
And, of the requirements, the least understood is the having a service worker. In theory, they are meant to replace stand-alone apps and are meant to be run off-line as well.
In theory.
In practice, the support for it is very ... passive aggressive?. They want you to make PWAs because they sound like a great idea. But giving good support for them would kill app store sales so they don't really want you making any PWAs.
So they do and don't want you to make them.
But that is just my opinion :).
So, in keeping with the passive-aggressive thing: it would be great if we wrote a PWA framework and then made extra sure it was never finished enough to be used. :)
(that was meant to be humor.)
Today, Google Play store and the Microsoft Store accept Progressive Web Apps.
https://developers.google.com/web/android/trusted-web-activity
"If you are looking for quickly building an Android app that just starts and opens your PWA, checkout out the Quick Start Guide."
https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps-edgehtml/microsoft-store
I found this project: Flask PWA Development
The website itself is an installable app.
I think it is possible to do the same thing with the Jester.
I followed one of the tutorials online to make a very simple pwa at www.sdmcallister.ca
├── public
│ ├── css
│ │ └── style.css
│ ├── images
│ │ ├── hello-icon-128.png
│ │ ├── hello-icon-144.png
│ │ ├── hello-icon-152.png
│ │ ├── hello-icon-192.png
│ │ ├── hello-icon-256.png
│ │ └── hello-icon-512.png
│ ├── index.html
│ ├── js
│ │ └── main.js
│ ├── manifest.json
│ └── sw.js
├── testapp
└── testapp.nim
It could be greatly improved with better js code in sw.js... Since PWAs can be made in JS, they can be made in Nim. Even better, you could use an existing framework and simply write an API wrapper for it in Nim. Then you can use the PWA API directly from Nim and use Nim for the rest of your logic. No need to generate your own framework if you would prefer to wrap another.
If you do wrap another, consider putting it on github and registering it on Awesome Nim.