Using Vercel and Google cloud run


Heroku ending free tier service

Like many people, I was not totally surprised by heroku announcing the end of their free tier services, but I did have a few applications I wanted to move. I had been using their free tier for years with small projects and even as a server for this website I wanted to try to find another comparable free service if possible. I ended up going with Vercel and Google Cloud Run for my needs.

In total I had 3 applications to add to a new cloud service:
  1. This site, Existing app on heroku. Requires a Nodejs server.
  2. Vue + D3 visualizations. Had an existing app on heroku. Client side only visualization, no server side components.
  3. Svelte + D3 visualization. Another client side only project.

For numbers 2 and 3 they are just client side applications with compiled JavaScript. For these situations Vercel has a very simple deployment and setup. You can quickly link a repository to a project, deploy it, and easily add continuous integration. Vercel also has a free tier, capable of hosting low traffic projects. This was a very simple and straightforward process and I found their website intuitive. However Vercel does not provide traditional server side support:

"The Vercel platform is serverless and designed for static frontends and Serverless Functions. There is no running server."

For my website, I had the additional requirement of a server side component. Google cloud run supports Nodejs servers and also has a free tier for small projects. The only extra step is that you are required to build a Docker container to deploy the app to the Google cloud, although you can do this from the gcloud CLI and deploy from source code without actually building the container yourself.

How's it working out?

These new options provide all the previous functionality for free and even have some improvements. One obvious improvement over the heroku free tier is that heroku apps would 'sleep' to save resources and the first request would be noticably slow when the app first wakes up. This is a big performance improvement with both Vercel and Google cloud.

There are many cloud providers and I have now hosted apps/servers on AWS, Heroku, Vercel, and Google Cloud Run. There are advantages with each so it's good to have flexiblity for a project!