Benjamin Lannon

Select a theme. Click on the overlay or the button again to exit

Platform Abstractions

Posted on:

When you want to deploy a modern website at scale, there's been plenty of platforms that have come up and made it as easy as possible to throw code onto CDNs by just pushing a git commit. The two main contenders in this field currently are Netlify and Vercel. At the end of the day both are just wrappers behind AWS, and I think it is important to understand the abstraction that is defined by these providers.

When I push up a website to Netlify such as the one you are reading right now, a git commit triggers a CI pipeline to go build static assets and deploy serverless functions up to a platform like Netlify. Netlify themselves then handle provisioning the assets across a CDN so the static assets aren't just a nginx server on a VM in a single datacenter, but a globally replicated site. From there I then can expect that no matter where I am in the world there is a CDN node that is relatively close to me and those assets will be shipped down for me.

Now if you know AWS, their core CDN offering is AWS Cloudfront which Netlify and Vercel very likely are using behind the scenes. As well you can host serverless functions using AWS Lambda. So if that is the case one may ask what is Netlify or Vercel offering different from the platforms they themselves are building on? The answer to that is as I commented earlier: an abstraction. Rather than having to think about what regions your site is going to be deployed to, or having to manage and maintain cloud infra, these platforms are abstracting it away so you can just focus on writing code or content and getting it available on the internet. In a similar vein, more and more people are going towards higher level languages like Javascript or Python compared to languages like C because of the abstractions where you don't have to care about memory allocation and other low level concepts.

With Vercel or Netlify, all you need to care about is your websites. And with this, at the end of the day, your users don't care that you used NextJS and Tailwind to make an engaging site. They care that your site is something that is accessible to them and gives them value. So with that, platforms like Vercel and Netlify are working towards making the time to ship as minimal as possible. One could use AWS directly for everything, but with good enough defaults, working towards shipping is going to matter a lot more at the end of the day compared to where you shipped.