A JAMstack app can be built using by hand, or with Gridsome, Jekyll, Hugo, Nuxt, Next, Gatsby, or another static site generator. The idea is to serve pre-rendered (static) files over a CDN, thus eliminating any need for a web server. This is a departure from traditional ways of building web apps which typically involved a server-side CMS or a server rendering the content at runtime.
Table of Contents
- Better Performance Since all the assets can be pre-generated, they can be served over CDN. This provides better performance and easier scalability.
- Atomic Deploys Each deploy is a full snapshot of the site. This helps guarantee a consistent version of the site globally.
- Cache Invalidation Once your build is uploaded, the CDN invalidates its cache. This means that your new build is live in an instant.
- Version Control Your codebase lives in Version Control System, such as Git. The main benefits are: change history of every file, collaborators and traceability.
- Automated Builds Your server is notified when a new build is required, typically via webhooks. Server builds the project, updates the CDNs and the site is live.
State of JAMstack in 2020
JAMstack started out as an alternative approach to build content heavy web applications. It has grown out of this niche though. The rise of serverless computing and headless CMS has diversified the usecases of JAMstack apps with integrated shopping store and payment, interactive forms and live chats, user management, and so on.
The general-purpose heavyweights of frontend — Angular, Vue.js, React — offer this approach. New frameworks specifically developed for JAMstack (Vuepress, Gridsome, Gatsby, 11ty, etc, to name a few) are implementing these usecases and pushing the boundary what could be possible with JAMstack. There's a rise of headless CMSes for backend functionalities; some of them even allow static site generation out-of-the-box.
The deployment of JAMstack sites has never been easier and cheaper. GitHub Pages with GitHub Actions, GitLab with GitLab CI, Netlify, Zeit, etc provide excellent build and deployment workflows at inexpensive pricing.
At this point, the JAMstack sites aren’t static anymore.