The Jamstack SEG is a Single-Engineer Group within our Incubation Engineering Department.
This group's mission is to enable Frontend developers to build, deploy and manage externally facing, static websites using Jamstack architecture in a simple, configurable and scalable way.
Frontend engineers should be able to use GitLab as the primary place to manage Jamstack Frontends.
See the "Weekly Update" Epic for a list of all prior updates.
Technology supporting Jamstack is a fast-growing, highly innovating field with many startups competing for market shares.
GitLab's solution is built on GitLab Pages and its solid CI/CD pipelines. This allows any client to grow seamlessly from a simple static site to complex, multi-faceted deployments without having to change the provider at any point. Competing in the Jamstack market potentially allows new Developers to have a shallow entry to GitLab's CI/CD world. That is, if we get the User Experience right.
GitLab is not an infrastructure provider. This is an advantage for established clients that may already pay for their own infrastructure. GitLab can easily support a wide range of infrastructure using CI/CD pipelines, so our goal is to make this as simple as possible. It's important that this scalability is conveyed from the very first onboarding steps to build trust with our users, even if most projects will stay small.
In January 2023 we conducted a User survey to provide data on the general direction around the Javascript runtime feature.
Maturity: 70%
Status: work in progress
Issues:
Maturity: 10%
Status: work in progress
Issues:
Maturity: 0%
Status: planned
Maturity: 0%
Status: planned
Maturity: 0%
Status: planned
Maturity: 0%
Status: planned
Issues:
These are the guiding principles that the Jamstack SEG optimizes its implementations for.
.gitlab-ci.yaml
powering the solution, it should be straightforward to support a wide range of deployment strategies.The key to modern Jamstack Frontends are Websites built as Single Page Applications (SPA). Classic Javascript Frameworks like React or Vue.js build the entire HTML DOM on the client side, so to improve performance, they are supplemented by Rendering Engines (eg. Next.js, Nuxt.js) that use node.js to pre-render HTML before they are sent to the client's browser. Frameworks like Eleventy, Gatsby.js or Hugo are both Framework and Rendering Engine.
All frameworks have in common that there are three main approaches as to when the rendering happens:
https://gitlab.com/gitlab-org/gitlab/-/issues/329597