I created this project to figure out how I can use Wagtail as a headless CMS for a static website build with Gatsby. The backend makes use of Wagtail-Grapple to create the GraphQL endpoint. The GraphQL endpoint is consumed on the frontend with the help of the gatsby-source-wagtail plugin.
I have also implemented a few features that are typically not part of the default functionality that Wagtail-Grapple enables. For example, I have enabled the "live" links in the Wagtail-Admin to redirect to the frontend via a custom mixin for the page model. I have also extended the default GraphQL schema with Graphene-Django to enable the page tagging to work in a headless setup. The repo also contains a Vagrantfile to simulate running the containerized backend on the production server with a restricted shell non-root user.