Our web app is finally ready to go live but which deployment tool should we use? With the rise of JAMstack, we have a multitude of options from Vercel, Netlify, to Firebase. Certainly, performance is key for us so we want to know which one is the fastest. In this talk, we will do a real-world benchmark comparing the most known JAMstack deployment options and discuss pros and cons.
JAM Stack Deployment Platforms and Performance Comparison
AI Generated Video Summary
This is an introduction to the Jamstack Deploy project, which measures and tests popular cloud providers for the Jamstack architecture. The project focuses on performance and uses Checkly as a monitoring tool. The speaker plans to add more stats and tools for comparison and invites users to contribute to the project.
1. Introduction to Jamstack Deploy
This is an introduction to a project I was working on in the last couple of weeks, where I tried to measure and test the most popular cloud providers for the Jamstack. Jamstack is an architecture designed to make the web faster, more secure, and easier to use. It offers better performance, security, and scalability. Site generators like Next, Hugo, and Nuxt are commonly used to create Jamstack apps. The deployment process requires providers that offer SSL support.
Hi there, welcome to my talk. This is Jamstack Deploy, and it's an introduction to a project I was working on in the last couple of weeks, where I tried to measure and tried to test the latest or the most popular cloud providers for the Jamstack. So my name is Nacho Anasha, I am from Argentina, you have there my Twitter handle. I am working as Lead Open Source Engineer in Czech Republic. I am part of the Outsourced teams.
This is a disclaimer for the talk, it's an early stage project, so things could change in the future, but I hope you can get an idea and you can start using it as a helpful resource, anytime you would like to test a Jamstack provider.
But basically the main features about the Jamstack, it's that you can get better performance, mostly because we build everything in deploy time, not in prime time. So the user does not need to wait the content. The content is already there. We then use web servers, we ship everything through CDNs. So everything, it's static. It's more secure because it's a kind of microservice approach and you can also rely on third party API. So if you don't have the resources to take care of security, you can delegate in something like Auth0. So it's also cheaper and it's easier to scale because the way to scale is to ship in more parts of the world, like replicate your files or serve static files in more places. This is the main things about the Jamstack.
Then you have site generators or static site generators like Next, Hugo, Nuxt. Those are the main tools that you use every day to create Jamstack apps. And this is the kind of architecture where we compare the classic structure of a web app with the Jamstack web app. You can see on the right that the Jamstack, it's quite easy. It's just a client, a CDN where we ship the files and microservices that are kind of lockboxes. We as developers don't really care about what they do or how they do, we just need to implement them. So it's an easy structure for the Jamstack developers.
So it's time to deploy. We would like to deploy our application to any kind of provider. So what do I look for in these providers? So the first thing is that I would like to have SSL support out of the box.
2. Measuring Performance and Project Process
I like to have Git support like PRs or preview integrations. Infrastructure as code is a good feature. A nice setup process, something simple and fast. Performance is the focus of this project. The process involved creating a dummy app and deploying it to different providers. Checkly was used as a monitoring tool to measure performance. The checks were run in different AWS regions to gain insights from around the world. The time to first byte was used as the unit of measure. The Jamstack deploy project is in the early beta stage.
I like to have Git support like PRs or preview integrations. CLI, I love the terminal, I would like to do everything through my terminal. But I also like to have a nice UI where I don't have my computer or something, you know, where I can write code so I can go to the UI and do fast things.
Infrastructure as code is a good feature because it allows you to create or create infrastructure using XAML, JSON or even code and not everything going to the UI. A nice setup process, something simple and fast. Domains. I always need a custom domain for my site's price as low as possible. Performance and learning queue. Performance is like the focus of this project and the future learning queue will be too because I will try to have tutorials or things trying to show how to use those providers.
So how was the process of this project? What I did to measure the performance of these providers. The first thing is that I create a dummy app. It's a NUX app in the static site. So I create the same exactly app and I deploy the same app to different providers. I start with Verzol, Medlify, Firebase, Render, GitHub, Pages, and search.
So once I deploy the same exactly app to them, I went to Checkly. Checkly is a monitoring tool. It's basically the backbone of this project. It's what I am using to measure the different providers. And with Checkly I can create checks. Basically a check is a kind of request where I try to measure performance and get statistics stats from this check where I can see the response time, the time to first byte, etc. And what I did with these checks using Checkly is try to run all of them in around the world, in all the AWS regions possible so I can get different insights from different parts of the world. It's not the same if I am from Argentina, if I am from United States, and if I am from South Africa.
The Jamstack deploy project early stage is really beta now, but it's probably the beginning for something bigger. You can pick your provider, you will see there that you have more providers that are coming soon. So if you click a provider like Rocell or Netlify, you will see something like this.
3. Introduction to Performance Map and Future Plans
This part introduces a map that shows the performance of a Next.js app deployed in static mode to different providers. The map displays regions where performance checks were conducted, with green indicating below 200 milliseconds, yellow between 200 and 500 milliseconds, and red for larger values. A list of the fastest times is also available. The speaker plans to add more stats and tools for comparison and A/B testing. They invite users to visit jumpstartdeploy.com, contribute to the project, and reach out on Twitter for questions.
A nice map where you can see all the regions running checks against this site deploy. Remember it's a Next.js app deployed in the static mode to the different providers. Same application, so I can see how this application performs in the different regions. If I request or I try to measure the performance from U.S., from Australia, from Japan, from everywhere in the world, I will get the map with the different dots. Everything green it's below 200 milliseconds. Between 200 and 500 you will see yellow and bigger than that you will see red.
So, you have also a list where you can get the fastest time, always talking about the first byte. But in the future I will be adding more stats and more tools where you can compare them and actually do like an A, B test. So, you can go to the jumpstartdeploy.com and start and of course PRs are welcome.
My to-do list is trying to bring a better UX at A versus B, like Netlify versus Bercel or Netlify versus Render or whatever, and more tutorials where I can show you how to use them and which are the main features of those providers and of course more providers AWS, Cloudflare, Microsoft Azure and so on. So, that's it. Thank you very much. If you have questions you can reach me on Twitter.