In late September, 2015, I got an email out of the blue from Mathias Biilmann. He told me about his brand new 2-person startup called Netlify and asked if I’d fancy getting together to chat about it. You see, they were making it really easy to deploy static sites like Jekyll and thought I might be interested in learning more. It sounded cool, and it’s hard for me to turn down anything Jekyll-related, so I agreed to meet.
On October 1st we met up at a bar in the Dogpatch. I sat down with Matt and his cofounder Christian Bach for several hours over some craft beer and they showed me how they could already build and deploy Jekyll sites (and a few other static site generators) to a global CDN with the push of a button. It was like GitHub Pages, but souped up and turbocharged with global scale production deployments in mind from day one.
That existing technology (and the smooth developer experience it offered) was already very impressive, but what really got my attention was their vision around a new term they wanted to coin: the JAMstack (the JAM is for JavaScript, APIs, & Markup).
At the time, we all called Jekyll and friends “static site generators”, even though many of them were starting to do really interesting things with JavaScript and 3rd party APIs to handle the dynamic bits like comments, text search, eCommerce, and more. The problem was not that this description of the generators was inaccurate, but that it failed to capture the capabilities and imaginative possibilities of this new architecture, namely, pre-rendering content into CDN-deliverable static pages and then layering interactivity on top with JavaScript and 3rd party APIs.
In the same way that the term “AJAX” allowed us to take discussions of what was possible on the web to new conceptual heights, Chris and Matt argued that developers and businesses could communicate more effectively about the potential of “JavaScript and API enhanced static markup sites you can deploy with a git push
” if we had a catchy name to capture that development methodology and deployment flow.
I thought they were right, loved the named, and advised they start pushing it. While it was impossible to predict whether it would catch on or not (only the developer community gets to decide that), I had a strong inclination that the market was ready for it, and there was a high probability that it would be embraced.
In February of 2016 I participated in Netlify’s seed round, and we kept the conversations and craft beer flowing through the next four years and two rounds of funding.
In that time, Netlify has become the darling of the JAMstack universe by focusing on developer experience and relentlessly pushing the envelope of what you can do with JAMstack, and how easily you can do it. Early on they changed the game with Deploy Previews so you can see a preview version of your entire site for every pull request you make. They integrated Let’s Encrypt so everyone can get SSL for free with zero hassle. They built Netlify Forms so you can submit simple web forms to their servers and see all the results. They launched Netlify Identity to handle authentication and user administration. And then they launched Netlify Functions—allowing you to write AWS Lambda functions in your git repo and have them deployed to AWS with that same single git push
—and this time it not only revolutionized the ecosystem, it changed something inside of me.
For many years I’ve been looking for something that makes it possible to author a complex web application and git push
deploy it to a scalable “delivery/compute/storage” layer, but with minimal lock-in and awesome global performance. AWS and other cloud providers have tons of building blocks for this, but I’ve never come across an end-to-end solution that felt right to me.
When I first heard about Netlify Functions, something clicked. What if you could author your web app in two parts: a JavaScript frontend client written in something like React that could be delivered statically via Netlify’s CDN, and the business logic layer that could run on AWS Lambda deployed via Netlify Functions? Both can be run on the edge and auto-scale. Choice of storage layer still depends quite a bit on the read/write characteristics of your app, but a variety of auto-scaling solutions are already on the market, with many more to come. All of this could be deployed with a simple git push
to GitHub, with Netlify grabbing the repo, building it, and distributing it to CDN and AWS Lambda. HOLY SMOKES this is getting exciting!
Suffice to say, I started badgering Matt and Chris with my ideas to take the JAMstack to the next conceptual level. Beyond pre-rendered pages with layered interactivity, the JAMstack could just as easily encompass this broader scope of full-stack web app development and deployment.
I’ve been so into this idea (and all the rest of the potential of the JAMstack) that I started talking with the Netlify founders about joining the board to help in a more official capacity. I’m pleased to say that as of the closing of their just announced $53 million Series C funding (in which I also participated via Preston-Werner Ventures), I have joined the Netlify board and will be doing my best to keep pushing the JAMstack envelope in ways that will surprise and delight you.
If you get as excited about this stuff as I do, come help us build Netlify into a developer happiness juggernaut. There is so much territory to explore, and we’re going to need a creative and diverse group of individuals to make it happen. Check out what we’re hiring for!
Oh, and speaking of that end-to-end web app development and deployment flow I mentioned…I never found a startup or open source project doing it the way I thought it should be done, so I’m building it. It’s a full-stack edge-ready web application framework designed to deploy to Netlify, and I’ll be announcing it on March 10th. Follow me on Twitter @mojombo to make sure you don’t miss it!