This post is for folks who are already paying for Heroku but are interested in other options. I recently reviewed alternatives to them after they dropped their free tier late last year. I’ve enjoyed how simple their setup was and the developer productivity I got out of it, especially when working with other devs. But with the pricing change, I wanted to see if it was worth leaving for something better or cheaper. One new-ish service I had been meaning to explore was Vercel.
Vercel is a particular type of PaaS. It’s a front-end serverless hosting platform that seamlessly integrates an edge computing-capable CDN. If that doesn’t mean anything to you, that’s fine. Just know that I can personally say it beats hand rolling a UI platform out of AWS Cloudfront, S3, API Gateway, Lambda, and Lambda@Edge.
In the real world, I’d use Vercel for static apps, or apps that can deliver both static and server-side rendered content and more rarely for apps that can be incrementally generated. Not a lot of frontends can take full advantage of this setup, but the one that fits this perfectly is Vercel’s very own Next.js.
Next.js just so happens to be my preferred stack for React apps, but I lean towards running it as a traditional web server and less for static and serverless functionality. The demo app I ran on Vercel was a great fit because it mostly called an external API and just a little bit of DynamoDB. Setup between the GitHub repo and Vercel was easy. Deployment statuses as comments in GitHub PRs just worked. The developer experience is easily on par with Heroku. I didn’t see a significant boost in page performance, but I wasn’t doing anything scientific outside of comparing Google’s PageSpeed Insights reports. I can imagine a more significant impact when testing from non-us-based regions where the CDN is closer to the end user.
Vercel’s biggest downside to me was the per seat pricing for teams which can add up even with just a couple of folks. Outside of that, if an app could take advantage of all its platform features, it would easily make sense to give it a go. But I think for most folks, Heroku is still the more flexible setup that can adapt to your needs even with the pricing changes. Lastly, if cost is an issue with Heroku, it might be worth setting an expiration on PR preview environments.