Picking Between Heroku and Vercel.

Picking Between Heroku and Vercel.

So you're done creating your web app or web API and it's time to put it live. Cloud platforms are always your best bet for this but picking an ideal provider is always a bit of a headache for a lot of people. What I did early on was to narrow my choices down to just two and work between both and, if you read the title of this post, you'd know which two I went with!

Now Heroku and Vercel are both amazing Platform-as-a-Service cloud application service providers. They provide developers with a great, easy to use platform for deploying, managing and scaling their apps while handling most of the complex, under-the-hood settings and configurations. From set-up to deployment can be done within minutes (as evidenced by how long it took me to migrate my personal site from a different provider to Vercel). So, as you can tell, making a choice between them can get rather difficult.

Here's what I think though - and also what I do. When picking a choice for a frontend web app, Vercel is an amazing choice. Here's why: asides the easy set-up and deployment, Vercel keeps your app available consistently. This means that whenever someone tries to visit your app, so long as internet service is good, a response is guaranteed almost instantly. This at the free level, by the way.

With Heroku, on the other hand, at the free level, you get a dyno that's currently set to idle if your app is not currently in use. This is, ostensibly, to save system resources, so the app doesn't keep running and using up resources when nobody is actually using it. The problem with this, however, is that when someone does try to make us of the app, it would take a bit of time for it to set the dyno back to an active state. This could take up to ten seconds (I've counted), which, in user time, is a lot and could be the difference between a user that stays and a user that leaves. Even if your app's backend is low or laggy, the frontend has to be available consistently and, for this, Heroku would just not do.

Of course, you can upgrade to a paid subscription to get more dynos and higher availability but this might not be ideal for someone who can't afford a paid subscription or is still in development and doesn't want to start racking up cloud server costs before the app goes live.

This does not mean Heroku is all bad. Hosting APIs is where Heroku shines as it has excellent support for the major backend languages, frameworks and libraries like NodeJS, Java, PHP, Python and more. Of course, on the free level, it suffers the same idle-active lag that front-end apps would suffer but this is less noticeably by users. You can also host APIs on Vercel but they as serverless functions not as regular REST APIs.

So in conclusion, Vercel works great for application frontend, Heroku is amazing for hosting application backends. Having your frontend and backend on different cloud application platforms is far from a novel idea and comes with pretty much no issues asides a minor loss of convenience in having to manage multiple logins.

Have fun creating!