Easily restore your project to a previous version with our new Instant One-click Backup Recovery

Jamstack Development 101

This post dives into the basics of Jamstack and the tools you need to get started with Jamstack architectures.
Emily Nielsen

Emily Nielsen

Apr 24, 2021
Jamstack development 101

#What is the tl;dr on Jamstack?

  • Jamstack is an architecture approach which relies on static files to serve a highly performant website

  • First coined by Netlify, the Jamstack grew out of a trend to create modular microservice architectures to build performant websites

  • Jamstack architectures connect services together via API to create a customized stack without the long lead times of in-house development

  • In combining the power of Javascript, reusable APIs, and Markup teams are able to create a wide range of sites from enterprise-level marketing sites, to hobby project portfolios

#How is Jamstack different from other architecture styles?

Traditional architectures are highly dependent on their presentation layer as well as require several steps from client request until the final request is served. The client makes the request to the webserver via URL which then requests data from the application server. The application server finally requests the information from the database. The request is then fetched from the database through the server layers to be formatted before finally being rendered and served to the client. This can take time, create additional complexity, and create potential vulnerabilities in the tech stack.

With the Jamstack, the frontend, presentation layer, and backend, data layer, are completely separate. This decoupled stack enables teams to prerender web pages according to their URL using CDNs. When a client requests a webpage, the call hits the CDN which returns a prerendered page. This approach leads to faster page speeds and a more simplistic infrastructure.

#Why are people excited about the Jamstack?

Higher Performance

Jamstack reduces the number of moving parts needed to load a page or serve an asset. With pages and assets stored on globally distributed CDNs, teams can expect quick page load times and content that is stored near their user base. Higher performance can also be seen at scale for these same reasons.

More Secure

The Jamstack enables teams to build products where external requests only interact with the frontend systems and not the actual database. The prerendered pages and assets ensure that only there are as few public-facing systems as possible to diminish the likelihood of an attack.

No Vendor Lock-in

Because of the modular nature of Jamstack architectures, teams have the ability to choose a custom stack of services. If needs or tastes change, it is easy to make changes to the tech stack, especially in regard to serving content and auxiliary services.

Better Developer Experience

Developers have the ability to specialize and work with tools that are able to support their efforts. Instead of having to build everything from scratch, the rich community and tooling available for Jamstack enable developers to build projects that excite them.

Higher Reliability

Because the tech stack is statically generated and served via a CDN, teams have a highly reliable end product. The highly scalable architecture and simplified, modular services contribute to the highly reliable nature of the Jamstack.

#Where do teams evaluating migrating to the Jamstack start?

There are some key first steps to evaluating a new tech stack and migrating from a monolith system to a Jamstack architecture. Here we give you a good place to start but this list is by no means exhaustive for all of the things that must be considered

Understand the content

  • What content types will be served in the end project?

  • What content needs to be migrated from the existing project?

  • How often will the content be updated?

  • Will the content be served to multiple frontends?

  • How much content will there be for the initial setup? Future scaled version?

How big is the current and future team?

  • What is the current development capacity? Future development capacity plans?

  • What is the frontend/backend split

  • Are there specializations that should be considered within this team?

  • What about deficiencies that should be considered within the current team?

  • How many content creators will interact with content?

Where are your existing and potential users?

  • How many existing users will interact with the new project?

  • Where are they located?

  • What are the location-specific considerations in regards to users (ie. GDPR)?

  • In which regions are teams targeting new users?

What needs to be migrated to the new system?

  • How much content must be migrated from existing systems to the new system?

  • What form will this content be migrated to?

  • What is the process for exporting from the existing system?

  • Are there insights that are helpful from existing systems that could be useful in the new system?

Evaluate tools that match these initial criteria

  • Importing and exporting content from systems is critical to understand when choosing new tools

  • Location-based regulations and offerings are critical, in particular when choosing the CDN

  • Make sure tools have the flexibility and scalability to serve teams not only for the initial implementation but will grow organically

  • Consider budget and timeline for the implementation of the individual tools and the entire stack

  • Start with the essential tools and move to more support tools

#What are the essential tools for starting a Jamstack project?

Headless CMS

The headless CMS will serve as the content core for your project. It’s important to consider things like test environments, ease of collaboration, and the ability to connect external services to the headless CMS.

Frontend Framework

The frontend frameworks make building out the frontend faster and more structured. Popular choices for frontend frameworks in the Jamstack include React and Vue.

Cloud Services

Cloud services are critical services that are specific to the team’s use case. These could be Authorization and Authentication services or Digital Asset Managers or any other piece of technology that is critical to the success of the first iteration of the use case.

Content Delivery Network (CDN)

A Content Delivery Network (CDN) is a globally distributed set of servers that store and serve content. By storing the content geographically close to the users, CDNs ensure content is high performing by reducing page load times. Popular CDNs include Cloudflare and Fastly.

Static Site Generator (SSG)

Static Site Generators (SSGs) generate fully static HTML websites from content, templates, and components. They can be a key element of quickly building a static website. Popular SSGs include Next.js, Gatsby, 11ty.

Static Hosting Solutions

Static hosting solutions make it easy to deploy new content and host the content in the cloud. Popular solutions for static hosting solutions include Vercel and Netlify.

Blog Author

Emily Nielsen

Emily Nielsen

Emily manages content and SEO at Hygraph. In her free time, she's a restaurant lover and oat milk skeptic.