Jamstack has revolutionized the way we think about building for the web by providing a simpler developer experience, better performance, lower cost and greater scalability.
This simple guide will help you understand why it exists and how to get started.
Table of contents
What is Jamstack
History
"Jamstack" was originally cased as "JAMstack" where "JAM" stood for JavaScript, API & Markup.
"A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup"— Mathias Biilmann (CEO & Co-founder of Netlify).
JavaScript
Dynamic functionalities are handled by JavaScript. There is no restriction on which framework or library you must use.
APIs
Server side operations are abstracted into reusable APIs and accessed over HTTPS with JavaScript. These can be third party services or your custom function.
Markup
Websites are served as static HTML files. These can be generated from source files, such as Markdown, using a Static Site Generator.
Meaning
Today, Jamstack is used to more broadly refer to an architectural approach for building websites. Though there are varying opinions on what exactly Jamstack means today, these attributes are present in most sites that claim to be Jamstack sites:
Decoupled
The front end uses tooling separate from the back end. The front end is typically built using a static site generator. And the back end is often integrated with the front through the use of APIs used during the build process. Server-side processes can also be run using serverless functions.
Static-first
While various practices exist for introducing dynamic elements to Jamstack sites, most are pre-rendered, which means the front end was built and compiled into HTML, CSS, and JavaScript files.
Progressively enhanced
JavaScript can be introduced to pre-rendered sites on an as-needed basis, thus increasing performance in the browser.
Benefits
Here are the main benefits provided by the Jamstack.
Faster performance
Serve pre-built markup and assets over a CDN.
More secure
No need to worry about server or database vulnerabilities.
Less expensive
Hosting of static files is cheap or even free.
Better developer experience
Front end developers can focus on the front end, without being tied to a monolithic architecture. This usually means quicker and more focused development.
Scalability
If your product suddenly goes viral and has many active users, the CDN seamlessly compensates.
Best practices
The following tips will help you leverage the best out of the stack.
Content delivery network
Since all the markup and assets are pre-built, they can be served via CDN. This provides better performance and easier scalability.
Learn moreAtomic deploys
Each deploy is a full snapshot of the site. This helps guarantee a consistent version of the site globally.
Learn moreCache invalidation
Once your build is uploaded, the CDN invalidates its cache. This means that your new build is live in an instant.
Learn moreEverything in version control
Your codebase lives in version control system, such as Git. The main benefits are changing the history of every file, collaborators and traceability.
Learn moreAutomated 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.
Learn moreWorkflow
Here's an ideal Jamstack workflow:
Timeline
A brief history of Jamstack shows its growth in popularity.
2015
2016
2017
2018
2019
2020
2021
2022
2023
Getting started
Development
However you decide to generate your HTML assets is up to you. The three most common approaches are:
Hand coding
Simple and effective method of writing HTML, it's ideal for super simple pages.
Static Site Generators
Most Jamstack sites are powered by a static site generator. There's no enforcement on which SSG you decide to use.
Site Builders
Tools that bring Jamstack to less technical users, while enabling developers to customize sites through modern tooling.
Deployment
Your built site needs to be hosted somewhere. There are great services that provide this for free and with ease.
Dynamic parts
Jamstack websites don't have to be static. There are great services available to help bring some dynamic data to your product.
Custom functions
You can also abstract your own functions into reusable APIs.
Custom data
As you add features to your site, you may want to store user profiles, shopping cart data, game levels, or other dynamic data. There are many DBaaS (database as a service) tools out there today.
Comments
Many Jamstack products have dynamic comment sections. These are typically used on blogs.
Forms
A great way to interact with your audience. Tools like Netlify support this by default, though there are other form-based services.
E-Commerce
Setting up an online store on the Jamstack has never been easier.
Search
Rely on third party services to integrate a search functionality.
CMS
Jamstack sites can also be controlled via a Content Management System, these are typically known as Headless CMS. Once a change in the CMS is made, a new build of your site will be triggered and then deployed as static assets.
Resources
Here's a list of hand-picked Jamstack resources ranging from learning materials to third party services.
Services
- Awesome Static Website Services
- A List of Content Management Systems for Jamstack Sites
- A List of Static Site Generators for Jamstack Sites
- A List of Themes and Starters for Jamstack Sites
- A curated collection of tools and services
Articles
- New to Jamstack? Everything You Need to Know to Get Started
- What is the concept behind Jamstack
- Jamstack ecosystem
- Jamstack modern web development
- Smashing Magazine just got 10x faster
- Ghost on the Jamstack
- Jamstack with Gatsby, Netlify and Decap CMS
Videos
- Jamstack Conf 2022
- The Rise of the Jamstack talk by Mathias Biilmann
- The New Front-end Stack talk by Mathias Biilmann
- The New Dynamic curated videos
- How freeCodeCamp Serves Millions of Learners Using the Jamstack
Books
- Eleventy by Example (Packt Publishing, 2023)
- Modern Web Development on the Jamstack (O'Reilly, 2022)
- Hugo in Action (Manning, 2022)
- Gatsby: The Definitive Guide (O'Reilly, 2021)
- Working with Static Sites (O'Reilly, 2017)
Podcast
Newsletter
Report
Community
About
This project was originally built by @peduarte and presented at the Jamstack meetup in London. It is supported by Netlify Create.
The goal of this project is to gather the concept of Jamstack in a straight-forward way to encourage other developers to adopt the workflow.
Built with the help of Astro, Tailwind CSS, Netlify, and Github.
Jamstack.