Pros and cons of Jamstack

This section explains the pros and cons of implementing your website with Jamstack.

Advantages

Jamstack provides the following benefits:

  • security
  • scale
  • performance
  • ease of maintenance
  • portability
  • DX (developer experience)

Security

Jamstack hosts content as static files and eliminates the need for dynamic content generation by web applications. This makes the overall framework more resistant to malicious attacks. In Jamstack configurations, countermeasures against such attacks are mainly targeted towards the API.

The content delivered from the web server or CDN is pre-generated (i.e., pre-rendered) and read-only. You can keep your dynamic content safe by using a trusted external service vendor.

Scale

Many frameworks and hosting services that implement Jamstack cache data using a CDN. As the expiration period and mechanism of the cache can differ depending on the service, it is best to choose one that matches the characteristics of your website.

A CDN provides reliable, fast delivery with optimal load balancing.

Performance

The loading speed of a page directly affects user experience and conversion. Instead of generating a new page for each request, Jamstack delivers pre-generated content only. Moreover, the use of a CDN further reduces delivery time.

Many CDNs deploy delivery servers located near the user for faster delivery. This provides high performance without the need for expensive and complex infrastructure.

Ease of maintenance

As hosting complexity is reduced, the task of maintaining the website also becomes easier. The server administrator does not need to constantly monitor pre-generated content delivered from a static hosting system or CDN.

Having done all the necessary work prior to deployment, your website will be very stable. Jamstack spares you the hassle of patching, updating, and maintaining your server.

Portability

Websites built on Jamstack generate static HTML as the final step. This means that you don't have to choose a hosting service. With many static hosting services to choose from, Jamstack frees you from vendor lock-in.

DX (developer experience)

A wide variety of existing frameworks and tools can be used to build a Jamstack. Many of them are open source and don't rely on commercial software. Therefore, it isn't hard to find developers for your Jamstack website. Any Jamstack-building skills can also be applied to other projects.

Cost

When running a website using a CMS or similar system, you typically have three or more servers: a web server, an application server, and a database server. The number of servers increases with backup or multiple units, and so does the operational cost.

Jamstack greatly reduces your cost with the use of static hosting services, CDNs, and dynamic content delivery.

SEO

Google currently ranks websites based on page speed, and starting from June 2021, Core Web Vitals will also be included as a ranking metric. With its high-speed content delivery, Jamstack is optimal for SEO. And although the dynamic parts of your site may not be the most SEO-friendly, this is not a huge problem, as Google can interpret the JavaScript code.

Disadvantages

Technology stack requirements

Implementing Jamstack requires a technology stack made up of JavaScript, static site generators, APIs, CDNs, and other pieces. Developers who are not familiar with these technologies have a lot to learn.

Nevertheless, apart from the optimization generator, the other technologies are all pre-requisites for conventional web building and applications. In any case, they are not difficult to master.

Build time

Jamstack generates (i.e., pre-renders) static HTML when deployed. If you have a lot of content, this will take some time. While the build time for a few pages is negligible, 10,000+ pages could take 10 minutes or more.

For example, the static site generator Gatsby has a feature called "Incremental Builds" that only regenerates pages that have changed. Adopting a static site generator can reduce your build time.

Man-hours for website modification

With a dynamic CMS, you can generate the text and content in the admin panel. A non-technical operator can easily re-organize or edit the text. However, with Jamstack, you may need to modify and re-deploy the template to make such changes.

You can reduce the developer man-hours by making the operator-modifiable parts into dynamic content. To do so, you need to determine which parts are static and which are dynamic, and devise ways to reduce the operational load for your staff.