Jamstack is an architecture designed to make the web faster, more secure, and easier to scale. It stands for JavaScript, APIs, and Markup.
Let's see how we can describe it in a not technical way. Imagine you're making a scrapbook. Instead of gluing things in as you find them, you prepare all your photos and decorations in advance, so when it's time to show it off, everything is ready to go. In Jamstack, you prepare your website in advance (like the photos and decorations) and then send it out to the internet. This way, your site loads super fast, is less likely to break, and can handle lots of visitors without a hitch.
JavaScript: This is the dynamic programming layer of the web. In Jamstack, JavaScript is used primarily on the client side to handle any dynamic functionalities or to talk to APIs. It's not reliant on a backend server to run.
APIs: APIs are how your website or application talks to external services. Rather than having a monolithic server that handles all your back-end functions, Jamstack uses third-party services, microservices, or serverless functions accessed over HTTPS to handle backend operations. This could be anything from authentication to databases to content management.
Markup: In Jamstack, the markup (usually HTML) is prebuilt. This means it's generated ahead of time during a build process, rather than being generated on the fly by a server when a request comes in. This static file can be served from a Content Delivery Network (CDN) to make it incredibly fast and to reduce the load on any single server.
Detailed Aspects for Developers:
Static Site Generators (SSGs): Tools like Gatsby, Jekyll, or Next.js are often used to create the static files. They allow you to write your site as code (often with handy templates) and then compile that into the HTML, CSS, and JavaScript that browsers can read.
Decoupling: By separating the frontend from the backend, developers can work on each part independently. This also means the frontend can be hosted on a CDN, leading to faster delivery and better performance.
Security: With server-side processes abstracted into microservice APIs, surface areas for attacks are minimized. There’s less risk of a direct attack on a server that can take down a site since the backend is usually a collection of services rather than a single monolithic server.
Scaling: Since most of the site is static and served over a CDN, it can handle traffic spikes without requiring complex load balancers or scaling operations. You're essentially outsourcing the reliability and scaling to the CDN and microservices.
Developer Experience: Developers can use their favorite tools and frameworks to build sites. They can also leverage Git for version control and collaboration. The local development environment more closely resembles the production environment since both are serving static files.
CI/CD: Continuous integration and continuous deployment are integral to the Jamstack philosophy. Because your site is just a collection of static files, you can automate the process of building and deploying those files whenever you make changes to your code.
In summary, Jamstack is about building faster, more secure websites with an improved developer experience by relying on modern tools and technologies. It's not just a stack but a shift in the way we think about building for the web.
Thank you for reading this far! Let’s connect. You can @ me on X (@debilofant) with comments, or feel free to follow. Please like/share this article so that it reaches others as well.