loading...
Cover image for a short history of the jamstack

a short history of the jamstack

ajcwebdev profile image anthonyCampolo Updated on ・4 min read

Jekyll is a simple, blog aware, static site generator.

Tom Preston-Werner
Blogging Like a Hacker (November 17, 2008)

In 2008, Tom Preston-Werner published a blog post titled “Blogging Like a Hacker,” which told his story of blogging, programming, and his eventual invention of Jekyll. Jekyll was a reaction against complicated blog engines like WordPress.

His constraints included the ability to style his own blog and host it on the domain of his choosing. This eliminated wordpress.com and blogger.com. He mentioned that some people use GitHub as a blog but he considered that an impedance mismatch.

Image

He decided to approach blogging from a software developers perspective. His writing would be stored in a Git repository and published via a deploy script or post-commit hook. A static site would be preferable to a dynamic site to keep complexity at a minimum. The blog would need to be easily customizable.

Jekyll works by:

  1. Taking a template directory representing the raw form of a website
  2. Running it through Textile and Liquid converters
  3. Spiting out a complete, static website
  4. Serving with Apache or similar web server

Image

I was tired of having my blog posts end up in a database off on some remote server. That is backwards. I’ve lost valuable posts that way. I want to author my posts locally in Textile or Markdown. My blog should be easily stylable and customizable any way I please. It should take care of creating a feed for me. And most of all, my site should be stored on GitHub so that I never lose data again.

Tom Preston-Werner
tpw

Numerous projects influenced by Jekyll appeared in the following years.

  • Thomas Reynolds created Middleman, a static site generator utilizing Haml and Sass in 2009
  • Alexis Metaireau created Pelican, a Python project that converts static text files into html sites in 2010
  • Tommy Chen created Hexo, a blog framework powered by Node.js in 2012
  • Jeff Escalante created Roots, a static site compiler written in CoffeeScript, in 2012
  • Steve Francia created Hugo, a static site generator written in Go in 2013

Image

Staticgen

There are those who describe Netlify as “GitHub Pages on Steroids”. If that’s the case then Hugo on Netlify must be digging into Lance Armstrong’s stash.

Mathias Biilmann
Hosting Hugo on Netlify (July 30, 2015)

In 2014, Mathias Biilmann Christensen created staticgen.com, a leaderboard of top open-source static site generators. It uses a variety of metrics including GitHub stars, forks, and twitter followers to rank different static site generators.

Around that time Mathias was running MakerLoop, a content management startup based in San Francisco. He believed that Git-centered workflows with static site generators like Jekyll represented a massive change in the web development space. This lead to Mathias co-founding Netlify with his childhood friend Christian Bach. Tom Preston-Werner was an early investor in Netlify.

Gatsby

Gatsby was created by Kyle Mathews in 2015. It started as a static site generator built with React, but as the project grew it no longer functioned as simply a static site generator, and Kyle found the term to be ill fitting to the project.

Gatsby incorporated GraphQL and increasingly used sophisticated 3rd party APIs to perform various dynamic tasks that could not be achieved with older static site generators. Other projects appeared that were influenced by Gatsby including Gridsome and Scully.

This new paradigm started to be referred to as the JAMstack, as in JavaScript, APIs, and Markup. Mathias credits Andreas Sæbjørnsen with first coining the term. Recently there has been a push to refer to it simply as Jamstack in an attempt to distance itself from the original acronym (see JAMstack vs. Jamstack by Chris Coyier). The Jam has been slowly spreading ever since.

Image

Posted on by:

Discussion

pic
Editor guide
 

I would like to see a full stack TAMStack, TypeScript, API, and Markup + FaunaDB

 

We're getting pretty close to this, we've already got a very simple app that utilizes FaunaDB's GraphQL API and the core devs along with a bunch of contributors have put in a TON of work on TypeScript integration.

You can ask any questions related to TS on the forums, we're always looking to improve in this regard.