GatsbyJS preview for Plone
Asko Soukka
datakurre@gmail.com
GatsbyJS preview for Plone
The project plan is to enhance existing project "gatsby-source-plone" with features that allow "gatsby develop" development server to provide up-to-date instant live previews of pages that contain data from a Plone CMS source. The aim is to enhance "gatsby-source-plone" to provide a GatsbyJS development experience matching the experience provided by "gatsby-source-filesystem" based plugins, which can create, update and delete nodes on from filesystem events.
GatsbyJS is a React-based, GraphQL powered, static site generator. It creates fastest web sites possible. It is great. With "gatsby-source-plone" plugin it can build those fast sites from content managed on Plone CMS. That is awesome. Running a GatsbyJS rebuild for a site with thousands of pages can take minutes, if not on hour, after a single change. And only after that long rebuild can the author see if their updates look cool. That's not cool. The project plan is to enhance existing project "gatsby-source-plone" with features that allow "gatsby develop" development server to provide up-to-date instant live previews of pages that contain data from a Plone CMS source. That makes it possible to use "gatsby develop" to provide preview of the changes and only run the static site rebuild when the author feels ready. That would make "gatsby-source-plone" the best available CMS plugin for GatsbyJS. GatsbyJS has the required API, but it is not well documented nor seem to be used widely outside "gatsby-source-filesystem", which already provides similar development experience for eg. "gatsby-starter-blog". Learning and understanding "gatsby-source-filesystem" would be a significant part of this project. The solution probably includes implementing a small API server inside "gatsby-source-plone" that receives "cache invaliation" requests from the sourced Plone site.
The desired project outcomes are necessary pull requests for "gatsby-source-plone" to implement and document the planned feature.
JavaScript (ES7), ReactJS, GatsbyJS, NodeJS
Stakeholder / Mentor: Asko Soukka <datakurre@gmail.com> Mentor: Name2 Mentor: Name3