What is the difference between a VPS and a PaaS?
A PaaS takes your code or container and runs it on servers you never see; it handles the operating system, routing, certificates and restarts. A VPS is a virtual machine with root access where you install and run everything yourself. The first sells convenience by the unit, the second sells capacity by the month.
A classic PaaS works like this: you push, a build pack or Dockerfile produces an image, and the platform schedules it onto its own fleet. On a VPS you choose the runtime, the process manager and the reverse proxy, and you are the person paged when the disk fills.
How do they compare side by side?
The table sets out the structural differences, not prices, because platform pricing changes often and varies by add-on. Read the "what you do yourself" row carefully. It is the real cost of a VPS, and the reason a platform can be worth paying more for at the start.
| PaaS | VPS (FastNode) | |
|---|---|---|
| Who runs the OS | The platform | You, as root |
| Deploy model | git push or image push to the platform | Whatever you set up: git hook, Kamal, Docker Compose, rsync |
| Scaling | Add instances or change size from a dashboard or CLI | Fixed plan size; ask support to change plan, or add servers |
| Cost shape | Per instance, per add-on and often per usage unit | Flat monthly price, from $5 to $28, unmetered traffic |
| Lock-in | Platform config, add-ons and routing are specific to it | Standard Linux; move by copying data and config |
| Processes per unit | Usually one process type per instance | As many as fit in the vCPU and RAM |
| What you do yourself | App code, config, add-on choice | Patching, firewall, TLS, backups, monitoring, database care |
Why does the cost shape matter?
Platforms charge per running unit and per add-on, so every new worker, cron process or staging copy adds a line to the bill. A VPS charges for the box. Once it is paid for, a second worker or a queue costs nothing extra until you run out of memory, which encourages a different architecture.
For example, a Turbo server at $13 a month gives you 4 vCPU and 8 GB. That can hold a web app, two background workers, Redis and a small Postgres for an early product. On a platform, each of those tends to be a separately billed component. We bill in US dollars; your card issuer converts at its own rate.
What do you have to do yourself on a VPS?
Four chores move to you: keeping the operating system patched, getting TLS certificates issued and renewed, taking and testing backups, and watching for problems. None is hard, and each can be automated in an afternoon. The risk is forgetting them, not doing them badly, so script them on day one.
# Ubuntu 24.04 / Debian 12: automatic security updates
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# TLS for nginx
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com
For backups, snapshots are available in the portal for quick rollback, and if backups are enabled on your server, check the portal for the schedule. Keep a separate off-server copy of your database dumps either way. The backups guide, nginx and Certbot guide and monitoring basics each cover one chore.
How do I move off a PaaS onto a VPS?
Containerise the app if it is not already, choose a deploy tool, move the database with a dump and restore, then switch DNS. Most small apps move in a day. Run the VPS copy beside the platform for a week before cutting over, so you can compare logs and response times with real traffic.
- Install Docker using the Docker guide, or the runtime you already use.
- Pick a deploy flow: Kamal for image-based deploys with zero-downtime switching, or a git push hook if you want something closer to the platform habit.
- Move environment variables into an env file readable only by the deploy user, or Kamal secrets. Never commit them.
- Export the database with
pg_dump -Fc, restore withpg_restore, and test against the copy. - Lower your DNS TTL a day early, then follow the zero-downtime migration guide.
Expect to replace platform add-ons one by one. Logging becomes journald or a log shipper; the scheduler becomes systemd timers; the router becomes nginx or Kamal's proxy.
When is a PaaS the better choice?
Choose a platform when nobody on the team wants to own a Linux server, when traffic is spiky enough that autoscaling saves real money, or when you rely on managed add-ons you would not run well yourself. Paying more to ship faster is a sound trade for a product still finding users.
- You have no one comfortable with SSH, systemd and firewalls, and no time to learn.
- Load swings tenfold within an hour and you need capacity to follow automatically. FastNode has no autoscaling.
- You need a managed database with point-in-time recovery and failover handled for you.
- You need several regions, IPv6 or built-in DDoS filtering. FastNode is London only, IPv4 only, with no DDoS protection.
A VPS suits teams whose load is fairly steady, who want to run several processes on one bill, and who are happy to spend an afternoon on setup to avoid paying per component. If that is you, the UK developer checklist helps you pick a plan.