With all those CDNs, SSGs, headless CMSs, and the rest, JAMstack might seem overwhelming to anyone who is entirely new to it. Nevertheless, it continues to increase in popularity: according to Web Almanac, while in 2019, only 0.4% of web pages were powered by JAMstack, the number doubled in 2020. That’s a good reason to take a closer look at JAMstack, isn’t it?
So, what is JAMstack?
Table of Contents
JAMstack is an approach to web development that allows building static websites with dynamic capabilities. Coined in 2016 by Matt Biilmann, CEO of Netlify, this term is a combination of:
Nothing new, right? But how do these three combined make sense? To answer this question, let’s take a look at the history of web development or listen to Matt Biilmann himself in this video.
There are two types of websites:
A static website is a bunch of HTML files pushed out from a web server. This is where the web began. Since a web server doesn’t process these files, static websites are extremely fast. However, the downside to such sites lies in their name: you can’t dynamically change or somehow interact with a static website. It’s always the same.
On the contrary, a dynamic website generates HTML pages in the backend upon each request. Every time a user tries to access a page, the server queries a database, combines the result with data from the page’s markup and plugins, and delivers the requested page to the browser. Consequently, dynamic websites are slower than their static counterparts. Yet, they are interactive, which is the main reason why dynamic sites have been reigning the web for the past 20 years.
Well, JAMstack is a (successful) attempt to combine the advantages of both: you get the speed of the static sites and the interactivity of the dynamic ones.
Notably, a JAMstack site doesn’t have a server and a database (in a traditional sense) to generate pages on the fly. Instead, whenever a user tries to open a page, it’s just pushed out from a CDN. Here’s how the JAMstack workflow differs from the dynamic one:
Markup in JAMstack is all the visible content on a website, a “collection” of pre-rendered HTML files. As we mentioned earlier, the HTML files that comprise a JAMstack website aren’t generated on demand. All the content has to be created beforehand with a content management system (CMS) or a backend and converted into HTML to be displayed in a browser. Static site generators are responsible for this.
Though these three are the cornerstone of the JAMstack architecture, they are just scratching the surface. Combining them with an SSG, a headless CMS, and a CDN makes creating and working with JAMstack sites much faster and easier:
Here’s an extensive collection of the technologies, frameworks, and tools you should consider to build a JAMstack website.
Besides, JAMstack websites can be partially or fully serverless. Serverless functions (reusable snippets of code) run on demand, just like microservices. However, more often than not, this implies building the app’s backend from scratch.
Switching to new tech is always a challenge. Is the end result worth it in the case of JAMstack? To help you answer this question, let’s unearth the main benefits of JAMstack websites.
JAMstack sites are based on static content technologies. That’s why their benefits mirror (mostly) those of static websites.
Though JAMstack reshapes web development in many aspects, it’s no panacea. We must admit, JAMstack websites are more static than dynamic. And yes, they have limitations common to most static websites:
If you analyze the pros and cons of JAMstack, you’ll see that you can’t enjoy its full potential by just sticking to the JS+APIs+Markup formula. To prevent you from getting lost in various tools and solutions, the people who came up with the concept have also come up with a bunch of JAMstack best practices:
Here’s what your JAMstack development workflow will look like with all these best practices in mind:
Of course, this workflow is not obligatory, and your development team can skip some steps if they see appropriate. This depends mainly on your project and the tools your developers will choose.
Though JAMstack is revolutionary in many ways, it’s not for everyone.
Going JAMstack is a good idea when you place top priority on performance, security, and scalability.
Still, we wouldn’t recommend using JAMstack when:
Every case is unique. That said, it’s critical to analyze your business goals and financial capabilities against the pros and cons of JAMstack.
Building websites for large-scale projects is challenging for two reasons. First, your development team needs to find a way to combine seamless performance, security (especially if you’re dealing with sensitive data), and availability to all users. Second, large-scale projects usually imply working with various stakeholders and the necessity to incorporate all their unique needs and opinions into the final product.
However, Mambu, a large cloud-based banking platform (you can see how large they are in the image below), managed to go global without compromising performance and security. How? JAMstack helped them achieve these goals.
Just like any large-scale project, this one wasn’t easy and required a unique approach. Thus, to get the best out of JAMstack, the company leveraged solutions like Sanity, Netlify, and TypeScript. Gatsby was a positive contributor, too. With 300 employees and nine offices, Mambu already had an established set of tools for each team (like HubSpot for customer success managers, Lever for HR specialists, and so on). Thanks to Gatsby’s rich plugin ecosystem, each employee was able to continue to use the services they prefer.
As the Mambu case demonstrates, with JAMstack, going safe and performant doesn’t necessarily mean compromising on functionalities. The approach allows you to implement the most complex ideas.
Of course, Mambu isn’t the only brand to embrace the JAMstack approach. More and more companies are jumping into the JAMstack space. For example:
Though we are just scratching the surface with these examples, they demonstrate where JAMstack performs best.
Though the JAMstack architecture is an integral part of modern web app development, it isn’t a one-size-fits-all solution. In some cases, going for it is all-advised. At the same time, dynamic websites can’t (so far) compete with their JAMstack counterparts in terms of speed, performance, and security. Besides, the evolving ecosystem of this tech stack is starting to make up for its limitations.
JAMstack isn’t another buzzword to be forgotten within a couple of years. It is the future. So is dynamic development. That’s why if you are just testing the waters with JAMstack and looking for a software development outsourcing vendor to help you, let our team analyze your case and bring the most complex idea to life. Drop us a line here, and we’ll get back to you soon!