Vercel and Netlify: slick AF
When I was about 10 years old, I was introduced to HTML and GameMaker (version 7!) while at the George Parkyn Centre. As we were all quite young, they were only able to show me the basics but I was immediately hooked. My closest experience to programming prior to this was typing into DOS prompts while my stepfather showed me how to set up Windows computers.
I made a lot of really crappy HTML pages, and slowly worked my way through all of the online tutorials that were available (is DHTML a term still?). At the end of that school year, I even made a good bye website for my teacher as she was leaving for South Africa—by far my biggest project at that point. She was extremely grateful for it, and I think that was really the moment when I decided to one day work in the field of software: it was immensely satisfying to see the effect my website had on my teacher.
This website was just a collection of HTML files on our classroom’s shared desktop computer. I didn’t know how to actually deploy my pages to the Internet so that others could access them just yet, and in fact one time I actually tried to get an online friend to check out one of my websites by typing in something like C:\html\page.html
into his address bar. Curiously enough, that didn’t work.
A couple short years later and I ran into PHP. Back then, PHP was great! Node.js was literally only just released (it was 2009) and so PHP was just the way you did things. I made a little browser-based RPG that used a MySQL server and “deployed” it to a free hosting account I had with Byethost.
Deploying new changes was a bit of a pain because I was using their clunky web-based interface to perform FTP transfers, but I was mostly just happy that I was actually able to share my web-based things with other people at long last.
The next big discovery was when I started writing scripts which would do all the FTP operations automatically for me, which was a big win for my operational efficiency :) Version control via subversion (TortoiseSVN was great!) similarly improved things because it meant I didn’t need to copy the whole app folder every time I wanted to make a change and still have a backup handy.
And then at some point I learned about CI/CD. The holy grail! At this point I was on Git, so I could push my code and automatically have it deployed. No extra effort necessary at all… aside from needing to set up all those annoying configuration files.
I didn’t see the necessity for writing CI/CD pipelines from scratch. Deploying a PHP program is quite literally just a matter of running scp, and Node.js applications or Javascript frontends often can be built with just a script inside the package.json file. If you’re using a well-known project template like create-react-app, then the scripts are even well-known! And it should be fairly straightforward to infer the template in use by scanning the project’s dependencies.
(Note that here I’m talking about hobby projects. For software at scale of course you’ll want to fine tune things like your CI/CD pipelines)
Anyway, all of that history was described to lead up to the real topic of my post today. Providers like Netlify and Vercel fill in that missing gap of automatic CI/CD, and it’s absolutely brilliant. We’re at a point in time where you can run create-react-app, push it to a Git repo, and then click that Git repo from the Vercel UI to automatically wire up everything you need for continuous delivery and feature branch previews. You don’t even need to pick the boilerplate you’re using—both Vercel and Netlify can infer it correctly almost 100% of the time.
And these services have free tiers!
In today’s world, it’s disappointingly common that developer tooling comes with steep learning curves and behaves flakily. Vercel, Netlify, and other products in the same space are a real breath of fresh air and inject so much joy back into software development. They’re great—and I want more opinionated, turnkey solutions because when we make it easy to get into software development, the whole world benefits from all the added people taking up the profession.