Old solutions, new tricks
Netlify's Edge Functions, like similar solutions from other platforms, are very cool but feel like a solution from 10 years ago.
Right okay: let me get this straight. Phil Hawksworth created a site (displaying the current localised time) that redeployed itself every single minute for years. That's a funny idea and good marketing for the speed and reliability of Netlify deploys. Bit of a waste though—Netlify, after all, keeps all of your previous deploys around forever—so Phil updated the site to use a Netlify edge function to interpolate the current date into the statically generated site on every request. Et voilà—the current time, up to date and with no residual deploys.
Heck, the site even uses
<meta http-equiv="refresh" content="30" /> to force the browser to reload the page after 30 seconds, which means that your page won’t be stuck on the wrong time. Learned a new use for the
<meta> tag today!
But this feels like a lot of hullabaloo for, as far as the user is concerned, a plain PHP application from 2005 + a global CDN. Even from the developer’s perspective there’s almost no difference between this and an Express server running on Heroku. Using an Edge Function to interpolate a value into an HTML file is just serverside rendering with extra steps. And don’t get me wrong—the whole Netlify toolchain is a great value-add; being able to deploy globally with no configuration is a huge deal! But…
This doesn’t feel like progress, somehow, to me. It feels like we’re spending countless mental CPU cycles catching up to a standard set years and years ago. Static sites were a game changer—why re-render an application if the content hasn’t changed? Eleventy + Netlify in particular is a terrific recipe for radically simplifying websites with minimal dynamic content.
But between incremental static regeneration and edge functions and partial hydration and all the rest, we’re inventing more and more esoteric ways to reintroduce servers into the equation. And spending too much processing time on the server was the problem we were solving for in the first place.
Here’s a 🔥 take for you: Netlify, Vercel, Render, or any other edge function provider is just offering CPanel as a Service.
I have to be missing something. Am I just curmudgeonly? Are my skills going out of date? Am I burnt out? Surely the answer isn’t just CI/CD + CDN + novelty?
Some late-night thoughts on the things I'll want to look back on sometime off in the future.
On distinguishing good design from effective design.