Composable projects: Define functional and structural needs.
Context
Organizations who run Aegir5 may have a variety of tech stacks and software they use for their applications. Traditionally we think about hosting environments for a CMS like Drupal or WP, or a static site like Hugo. With decoupled/composable site architecture there may also be a need to provision multiple environments with applications that can interact with each other and additional functions that are now expected in a static site hosting platform.
Eg. A Drupal site that exposes data through an API to build a front end Gatsby site.
Recently, developers building Drupal/Gatsby sites have found themselves in the lurch as Gatsby Cloud was bought out and shuttered by Netlify. Additional functionality such as CDN & previews bring much higher enterprise costs to the projects now.
Problem
Static sites built in frameworks like Gatsby, Next.js, Vue.js etc don't have a clear, affordable DIY solution for hosting complex sites that need additional functionality.
Proposal
Let's create an outline of needs and a list of functionality that could serve as the beginning of a roadmap for this kind of functionality in Aegir5. This would help us assess feasibility, and break down what solutions are needed as part of Aegir5 and what can be worked on elsewhere.
Static Site Hosting Requirements
Identify requirements and features needed to support static site hosting within the system. (eg. file storage, deployment, config) Look at popular frameworks like Next.js, Gatsby and Vue.js and how it should interact with SSGs (static site generators) like Hugo, Jekyll, Gatsby.
Functionality
- Create a list of functional components needed from sites and PaaS we know (eg. preview, CDN)
- Review Drupal modules that handle decoupled functionality and capture important functionality that relies on host
- Note which functions we think need to happen at the hosting level, and which functions their might be work arounds for