And why use it now, considering that static site generators have been a thing for... almost forever? Is JAMStack just a “newish” label stuck to an age-old web development concept/set of tools? Or is it (much) more than that? What is JAMstack, more precisely?
And why would you even consider it for your next project?
What are the clear benefits for using this newly born “star” on the static site generator scene?
And here, you must have already stumbled upon JAMstack benefits like:
- no complex caching
- no back-end logic (the static website's not tied to a server)
- no database (with all its vulnerabilities, maintenance needs, and poor load times etc.)
You get to set up your static website, serve it on a CDN, integrate it with an external API in JS and voila: there's your perfectly functional website!
At least that's the promise that you keep finding when you search for information on the JAMstack CMS, right?
Now, let us shed some light on this “JAMstack: hype or not?” kind of topic:
1. What Is JAMstack?
One that “stacks up” :
- reusable APIs; either custom-built or provided by third-party services, the incorporated APIs will handle all database operations and server-side processes
- prebuilt Markup; a specifically templated one, that gets generated by the SSG or the build tool at deploy time
Note: if the client and server are closely tied, then we can't be talking about a JAMstack architecture. And CMS-based websites with server-side elements are just one example.
2. What's the Key Difference? JAMstack vs Other Architectures
It's the middle part that makes all the difference...
With APIs for every back-end function, it (the back-end) can get easily scaled up.
In a conventional workflow, the building and hosting are tightly interconnected, whereas in a JAMstack architecture they are decoupled.
And that can get easily summed up to this:
A user accesses your website, makes a page request and the due file is already compiled. It gets served through the browser straight from a CDN.
So, there's no longer an entire cycle of request/response involving the database, back-end code, browser, server and layers of caching.
3. Why Would You Switch to a JAMstack Approach? 4 Obvious Benefits
Now that you've got an answer to your “What is JAMstack?” question, the next one that pops up in your head must be:
“OK, and why should I care about JAMstack?”
Why would I want to move to a JAMstack CMS if I'm accustomed to and perfectly fine with the current one that I'm using?
Here are some of the main reasons:
- improved overall performance
- lower costs, easy scaling
- better developer experience
- higher security
Now, let's weigh all these JAMstack benefits one by one, and detail them a bit:
You'd find it on top of every web/mobile app developer's wishlist. How does a JAMstack architecture ensure high loading speed?
JAMStack-based websites get generated at deploy time and loaded over a CDN. And that's the best “guarantee” for top loading speed.
Easy Scaling, Lower Costs
“What is JAMstack?” It's an ideally scalable stack architecture: the static nature of the JAMstack website/app itself makes it ideally scalable. The scaling options are more cost-effective, flexible and easily maintainable.
Deploying it only calls for serving files in more places. And the CDN, part of the JAMstack architecture, comes with great scaling features.
Better Developer Experience
Thanks to its decoupled/loose coupling approach to web/app development, JAMstack enables developers to focus on (truly) important aspects of their work.
To invest their time and skills in tasks like debugging critical errors, creating new functionalities...
They no longer need to maintain a separate stack for content and the website's functionalities...
What makes the JAMstack secure?
With all server-side processes turned into microservice APIs, there's almost no “surface” left for hackers to attack.
And just think about it:
- A JAMstack approach takes server configurations, dynamic software running on the server and hosting features out of the picture
- there are no CMS plugins, there's no database
So, basically, there's very little code to get injected after all
5. 4 JAMstack Limitations to Consider
For there are a few drawbacks, as well, for you to keep in mind when migrating to JAMstack:
- a steep learning curve; with no user-friendly GUI, JAMstack is not geared at providing the best experience for non-developers (content editors and marketers)
- it's doesn't fit any type of project (but the static ones only); you can't squeeze fit a JAMstack architecture into a web/app project that requires lots of real-time updates, plenty of interactivity and frequent updating
- new features can be implemented via third-party solutions only; if you need to add an online store, comments, galleries, polls, you depend on a client-side third-party solution
- any incremental change must be handled by the developer; since JAMstack's more developer friendly than non-technical user-friendly, all changes to be made to the design are his/her task to handle
Have I managed to dissipate that “mystery aura” around this web development architecture and answer your “What is JAMstack?” question?