← Back to blog

Why we still pay for our own VPS instead of jumping on the serverless wave

Daniel García·

Ilustración del artículo: Why we still pay for our own VPS instead of jumping on the serverless wave

A couple of months ago a client who runs his own online shop asked us, half-joking, half not, why we still pay for a server when “everyone” deploys on Vercel or Netlify and never thinks about it again. Fair question. The short answer is we haven’t stopped thinking about it because we’d rather not stop thinking about it.

We prefer a VPS over a serverless platform mainly because the cost is predictable: we pay a flat fee every month instead of per function invocation, and there are no billing surprises when a project gets an unexpected traffic spike. The long answer starts back in 2023, when we moved the first version of this very site to a VPS we now share across several small client projects. We pay around 12 euros a month for a box that currently serves four different sites, with Docker and nginx sitting in front. On Vercel, the Pro plan alone runs 20 dollars per user per month, and that’s before any project starts pulling real traffic or leaning on serverless functions with any regularity.

The savings argument convinces some clients and leaves others cold, honestly. What actually made us stick with the VPS was one very specific scare. A fashion-retail client’s site got hit with a traffic spike from an Instagram campaign nobody had planned for, and on the serverless platform we were using back then (not Vercel, an earlier provider that doesn’t even exist under that name anymore) that month’s bill shot past 300 euros just from function invocations. The client didn’t understand it. Honestly, neither did I, not fully, until I sat down and read the pricing fine print with a clear head, after the fact.

Since then we’d rather know exactly what a month is going to cost, even if that means giving up the automatic autoscaling and instant deploys Vercel actually has. We build on a GitHub Actions runner, package it into a Docker image, push it to a registry, and the VPS itself — the same server we audited a while back — pulls it and restarts the container over SSH. It takes two or three minutes, not instant, and when the GitHub runner goes down on a Thursday afternoon (happened to us three weeks ago), someone here has to notice and go check it by hand instead of trusting the system to sort itself out.

That’s the part nobody mentions when they push “let’s keep it simple, deploy to a platform and never touch infrastructure again”: simple for whom. For the developer doing the deploy, sure. For whoever has to explain to a client why this month’s invoice is triple last month’s without a single line of code changing — a lot less so.

I’m not saying a VPS is the right call for everyone. For a solo project with no maintenance budget, Vercel’s free tier is simply the better option. But for clients we’ve got on long-term maintenance contracts, being able to tell them “this costs X a month and it’s not going to move even if you get a traffic spike” is worth more to us than saving half an hour of nginx configuration. What I’m not sure about is whether I’ll still be defending the same stance in five years, or whether serverless pricing will have matured enough by then to make this whole post read as outdated.

hostingvpsinfrastructuredeployment