There is a whitelist of plugins you can use with GitHub Pages. jekyll-pwa isn’t on it, so the CI/CD engine will ignore this plugin when it builds your site.
You can still use the plugin, but it will require some extra steps. Basically, instead of committing the source files to GitHub and letting their engine build your Pages site for you, you will need to build your site yourself and commit the output. The easiest thing to do is remove
.gitignore, then just run Jekyll on your workstation and push the output.
A more interesting option is to use a 3rd-party CI/CD service. I’ve experimented with two so far (I’m also pretty new to this): Netlify (.com) and Forestry (.io). Both let you create advanced forms for managing content with complex metadata – “front matter” in Jekyll’s lingo – including things like drop-down lists and embedded objects. Each also has some advanced features the other lacks.
Netlify is primarily a hosting site built on AWS. It does some cool stuff to make integrating AWS Lambda functions easier. It also provides a variety of user management mechanisms. If you use Netlify, you will end up with your sources on GitHub, but your site on Netlify.
Forestry is primarily a CMS. Its tools for authoring custom content input forms (which it calls “Front Matter Templates” or FMTs) are far more powerful than any other “headless CMS” I’ve tried. Most usefully, it lets you apply inheritance to FMTs.
Forestry is not a hosting site. It lets you decouple source, build, and hosting – but you don’t have to. Since it can write the output back to the source repo, your site will still be hosted on GitHub (unless you choose to put it elsewhere). It also provides a plugin to help you build menus and complex navigation.
There are several other 3rd-party build engines out there – most notably CloudCannon. I just haven’t tried them yet.