How to host a solo-developer app: the options compared
Static hosts, managed platforms, VPS and shared hosting compared for solo developers, with verified prices, free-tier limits and a decision rule for each.
Disclosure: This article contains affiliate links. If you buy through them, Solo App Guide may earn a commission at no extra cost to you. Commissions never decide what is recommended; see the affiliate disclosure.
Hosting decisions feel big, but for a solo developer they come down to a short list: what your app actually runs, how much of your own time you are willing to spend on servers, and what happens to the bill if traffic grows. This guide sorts every common option into four families, gives verified numbers for each, and ends with a decision rule you can apply in a few minutes.
The comparison is based on public pricing pages and official documentation, not hands-on testing. All figures were checked on the date shown at the top of the page.
The four families of hosting
| Family | What you deploy | Who runs the server | Typical entry cost | Good for |
|---|---|---|---|---|
| Static host / CDN | HTML, CSS, JS files | The provider, fully | $0 | Landing pages, docs, blogs, SPAs that call an external API |
| Managed platform (PaaS) | A Git repo or container | The provider; you configure | $0 with sleep, about $5–7/month always-on | APIs, full-stack Node/Python apps, background workers |
| VPS / cloud server | Anything you can install | You | About $4–7/month | Several apps on one box, long-running processes, full control |
| Shared / managed web hosting | Files or a supported app type | The provider; you get a control panel | Low intro price on long terms, higher renewal | WordPress and PHP sites, simple Node apps where offered |
The rest of this guide explains the trade-offs inside each family.
1. Static hosting: start here if you can
If your app is a front end that talks to a third-party backend (Firebase, Supabase, a payment provider’s hosted checkout) or a site generated at build time, a static host is the cheapest and least fragile option. There is no server process to crash and no runtime to patch.
Verified free-tier details:
- Render static sites are free to deploy. On the free Hobby workspace they count against an included 5 GB of outbound bandwidth per month; above that, Render bills $0.15 per GB, and if no payment method is on file, free services are suspended for the rest of the month.
- Cloudflare Pages / Workers static assets: Cloudflare’s documentation states that “requests to static assets are free and unlimited.” The Pages free plan allows 500 builds per month, 20,000 files per site and 25 MiB per file.
- GitHub Pages has a 1 GB site size limit and a soft bandwidth limit of 100 GB per month, and GitHub states it is not intended as free hosting for an online business, e-commerce or commercial SaaS.
- Vercel Hobby includes 100 GB of Fast Data Transfer, but its fair-use rules restrict the Hobby plan to non-commercial, personal use.
- DigitalOcean App Platform allows up to 3 static-site apps for free, each with a 1 GiB data-transfer allowance; extra static apps cost $3/month.
Choose static hosting if every page can be built ahead of time, or if the dynamic parts live in an external service. Check the commercial-use terms: for a revenue-generating project, GitHub Pages and Vercel Hobby are the wrong fit even though they are free.
2. Managed platforms (PaaS): the default for a real backend
A platform-as-a-service builds your repo, runs it, restarts it when it crashes and gives you HTTPS without any server administration. You pay a premium per unit of RAM compared with a raw server, but you save hours of setup and maintenance.
Verified examples:
- Render free web services spin down after 15 minutes without inbound traffic and take about one minute to wake. Each workspace gets 750 free instance hours per month. The always-on Starter instance (512 MB RAM, 0.5 CPU) is billed per minute at about $7 for a full month. Free Postgres databases expire 30 days after creation.
- DigitalOcean App Platform: the cheapest container is $5/month for 512 MiB RAM and 1 shared vCPU with 50 GiB of outbound transfer; a development Postgres database is $7/month.
- Railway: the Hobby plan is $5/month and includes $5 of usage; memory is about $10 per GB per month and CPU about $20 per vCPU per month, metered per second. There is also a free plan with $1 of monthly credit (0.5 GB RAM per service).
- Fly.io has no free tier for new organizations, only a short trial. A continuously running shared-cpu-1x machine costs $2.19/month (256 MB), $3.69/month (512 MB) or $6.70/month (1 GB) in its US East regions, plus $0.02/GB egress in North America and Europe.
Choose a PaaS if you have one or two services, want push-to-deploy, and value not being paged for server problems more than the extra few dollars a month.
3. VPS: maximum control per dollar
A virtual private server is a Linux machine you administer yourself. You install Node.js or Docker, a reverse proxy such as Caddy or Nginx, a process manager, and you handle security updates.
Verified entry prices:
- DigitalOcean Basic Droplets: $4/month (512 MiB RAM, 1 vCPU, 10 GiB SSD, 500 GiB transfer), $6/month (1 GiB, 25 GiB SSD, 1,000 GiB transfer), $12/month (2 GiB, 50 GiB, 2,000 GiB). Since January 1, 2026 Droplets are billed per second, capped at the monthly price.
- Hostinger KVM 1: $6.49/month introductory, renewing at $11.99/month, for 1 vCPU, 4 GB RAM, 50 GB NVMe and 4 TB bandwidth, paid upfront for the term.
- Oracle Cloud Always Free: up to 2 AMD micro instances (1/8 OCPU, 1 GB RAM each) or Arm A1 capacity equivalent to 2 OCPUs and 12 GB RAM, plus 10 TB of monthly outbound data. Oracle may reclaim Always Free instances that stay idle (under 20% CPU, network and, for A1, memory utilization at the 95th percentile over 7 days).
Choose a VPS if you are comfortable with Linux, want to run several small apps on one box, or need long-running processes (bots, queues, websockets) that are awkward or expensive on a PaaS.
The real cost of a VPS is time. Before choosing one, be honest about whether you will keep up with:
- OS security updates (enable unattended upgrades)
- SSH hardening: keys only, no root login, firewall open only on 22/80/443
- TLS certificates (Caddy automates this)
- Backups you have actually restored at least once
- Monitoring that alerts you when the app is down
4. Shared and managed web hosting
Classic web hosts sell plans with a control panel, email and one-click installers. Several now support Node.js apps as well as PHP.
- Hostinger’s documentation lists Node.js web apps on its Business Web Hosting and Cloud plans (Node.js 18, 20, 22 and 24, deployable from GitHub or an uploaded archive). At verification time its web-apps page listed the Unlimited plan at $3.99/month on a 48-month term (renewing at $16.99/month) and Cloud Startup at $7.99/month on a 48-month term (renewing at $25.99/month, 10 web apps, 4 GB RAM).
- Cloudways is managed hosting on top of cloud providers such as DigitalOcean. Its Flexible plans start at $11/month on its pricing page, are billed hourly, and include a 3-day trial without a credit card. A separate Node.js product, Cloudways Velocity, was in public preview at verification time, starting at $20/month for 2 GB RAM and 2 vCPU.
Choose shared or managed hosting if your project is WordPress or PHP, you want email and a control panel in one bill, or you prefer a support team to a terminal. Always compare the renewal price, not the introductory one: the long prepaid terms that unlock the low price also lock you in.
Decision rule
Work through these questions in order and stop at the first “yes”:
- Can the whole site be built ahead of time? Use a static host. Cost: $0 at small scale.
- Is it one backend service plus a database, and do you dislike server admin? Use a PaaS. Budget about $5–7/month for an always-on instance plus a database.
- Do you run several services, background jobs or websockets, and know Linux? Use a VPS. Budget $4–12/month plus your own time.
- Is it WordPress/PHP or do you want a control panel and email bundled? Use managed or shared hosting, and compare renewal prices.
Worked example: a small SaaS with a landing page
Say you have a marketing site, a Node.js API and a Postgres database, and you expect a few hundred users in the first months.
- Landing page and docs on a free static host: $0
- API on Render Starter: about $7/month, or DigitalOcean App Platform’s $5 container
- Database: a paid managed Postgres plan, or Postgres on a $6 Droplet if you will manage backups yourself
That keeps the always-on part of the bill near $12–15/month while leaving the public-facing pages on infrastructure that survives a traffic spike for free. When the API outgrows 512 MB of RAM, the next step on each platform is a known, published price rather than a surprise.
Common mistakes
- Shipping on a sleeping free tier. Paying users and webhooks see the cold start.
- Comparing intro prices. Long-term hosting deals often renew at three to four times the advertised monthly rate.
- Ignoring bandwidth. Render’s Hobby workspace includes 5 GB; DigitalOcean App Platform’s free static apps include 1 GiB each. Image-heavy pages hit these faster than you might think.
- Free tiers with commercial-use limits. Read the fair-use page before putting a paid product on a free plan.
- No exit plan. Prefer standard runtimes (a Dockerfile or a plain
npm start) so you can move hosts in an afternoon.
Sources
- Render: Free instances
- Render: Static sites
- Render: Outbound bandwidth
- Render pricing
- Cloudflare Workers static assets: billing and limitations
- Cloudflare Pages limits
- GitHub Pages limits
- Vercel Hobby plan
- DigitalOcean App Platform pricing
- DigitalOcean Droplet pricing
- Railway pricing
- Fly.io pricing
- Oracle Cloud Always Free resources
- Hostinger web apps hosting
- Hostinger VPS hosting
- Hostinger docs: creating a Node.js app
- Cloudways pricing
- Cloudways Velocity
Last verified: . Prices, limits and policies come from the official pages listed under Sources, not from hands-on testing. Providers change them often, so confirm on the provider's own page before you buy. Spotted something out of date? Tell us.