About JAMStack

May 26, 2019

I recently switched to using JAMStack principles for this website, and so far I’m liking it, although it does make things a bit more complicated.

What is JAMStack?

It’s a modern web development architecture based on:

  • J | client-side JavaScript
  • A | reusable APIs
  • M | Prebuilt Markup

— From jamstack.org

There are a few benefits to this approach, but for me the biggest is better performance (aka faster websites). Actually one of the implicit requirements of JAMStack seems to be using a CDN to deliver the site content and assets, and I really feel like they should go ahead and throw “CDN” into the acronmym, maybe make it JAMStaCk or something?

Of course there are a few drawbacks as well. For one thing, JAMStack is touted as a more developer-friendly approach, but at the same time it seems less content-author-friendly and may be difficult to integrate at organizations where the content authors are not technical.

Also the toolkit is not as robust as more mature approaches —CMS’ such as Wordpress have decades of development behind them. I’ve used the relatively new Victor Hugo toolkit for this, which has presented a few bugs that I’ve had to work through, as well as the learning curve of grokking Node, NPM, Hugo, Victor Hugo, Webpak, and modules like postcss. Many of these are now standard fare for web developers in 2019, but these still present a formidable landscape to get familiar with. This comic from a few years ago still seems appropriate: How it feels to learn JavaScript in 2016. Also I just found this gem again and thought I’d include a bonus link: How a web design goes straight to hell.