The M in JAMstack is the root of much confusion. Though it officially stands for Markup i.e. HTML, many assume the M to mean Markdown. Given that it is common practice to use a Static Site Generator(SSG) with the JAMstack, and that SSGs render HTML from Markdown, it’s unsurprising that the acronym is thus misconstrued. Compared to Markdown, Markup is far more expansive and encompasses templating languages (e.g. Markdown) and data serialization languages (e.g. YML and JSON) alike. Specifically, markup in the JAMstack terminology refers to “pre-rendered” markup or content served in its final form, HTML. The distinction here is the delivery mechanism of content. Within the JAMstack model, content is not delivered dynamically via a web server tasked with building pages at runtime. Rather, markup is prebuilt upfront and served to the browser via a CDN. The power of serving content this way rests in build tools and processes like Gulp, Grunt and now Webpack and Babel. These tools not only combine content with templates, they enable sites to take advantage of modern advances in JavaScript and CSS way before browsers even ship them. The strength of compiling at build time also means that calls to external APIs and services can be made ahead of time. Oftentimes, APIs add bloat to a site especially when executed at runtime. Running APIs at the build stage means teasing apart the underlying infrastructure from the live site so neither site performance nor uptime suffers when an external API b0rks unexpectedly. This also means that individual APIs can be considered in isolation and further highlights the decoupled architecture that the JAMstack pushes for.
The ambiguity of the acronym aside, the M in JAMstack emphasizes how content is delivered, instead of what format that content was in prior to pre-rendering. Content on the JAMstack can effectively come from anywhere, but as long as it’s pre-rendered it counts as “M”.
If you’d like to dig into the M in JAMstack, there’s a fantastically written post by Brian Rinaldi that might be of interest. Check it out over on his blog: https://remotesynthesis.com/blog/m-is-for-markup
And to start digging into building the Js, As and Ms in JAMstack, https://templates.netlify.com/ is a great starting point.
Top comments (0)