How I Host My Side Projects for Under $5/Month (2026)
I run 4 live projects on a single VPS. Here's exactly what I use and what it costs.
The Problem
You built an amazing side project. Now you need to deploy it.
Options:
→ Heroku: Free tier gone, cheapest $5+/mo per app 😬
→ Vercel: Great for frontend, limited backend ⚠️
→ AWS Free Tier: Complex, easy to overspend 💸
→ Shared hosting: Slow, outdated stacks 🐌
What I actually use for my projects:
→ 1 VPS + free tiers = everything running for ~$5/mo total 🎉
My Setup at a Glance
| Project | Tech Stack | Hosting | Cost |
|---|---|---|---|
| AgentVote (main site) | Node.js + Nginx | VPS (port 3000) | Included |
| CryptoSignal | Node.js + SQLite | Same VPS (port 3001) | Included |
| Hugo Blog | Static HTML | Same VPS (Nginx) | Included |
| Text Formatter | Node.js | Same VPS (port 3099) | Included |
Total: $5/month for the VPS. Everything else is free.
Option 1: VPS (What I Use)
Why a VPS?
✅ Full root access — install anything
✅ Run multiple projects on one server
✅ Fixed monthly cost regardless of traffic
✅ Learn DevOps skills that transfer to any job
✅ Complete control over your stack
❌ You manage security updates yourself
❌ No auto-scaling (but side projects don't need it)
What to Look For
# Minimum specs for most side projects:
CPU: 1-2 cores
RAM: 1-2 GB (Node.js apps are light)
Storage: 25-50 GB SSD
Bandwidth: 1-2 TB/month (plenty for small projects)
OS: Ubuntu 22.04 or 24.04 LTS
Price: $3-6/month
VPS Providers I've Used
DigitalOcean — My Recommendation
- Basic droplet: $4/month (512MB RAM, 1 vCPU)
- Standard droplet: $6/month (1GB RAM, 1 vCPU)
- Pros: Simple dashboard, great docs, massive tutorial library
- Cons: No free tier
- If you sign up through my referral link, you get $100 in credits over 60 days
Hetzner Cloud (Europe-based, excellent value)
- CX22: €3.29/month (~$3.50) — 2 vCPU, 2GB RAM, 40GB SSD
- Pros: Best price-to-performance ratio
- Cons: Support is Germany-timezone
Vultr
- Starting at $2.50/month (512MB RAM)
- Many global locations
- Good if you need servers close to your users
Linode (Akamai)
- Starting at $5/month
- Reliable, been around forever
- Good documentation
My Nginx Config (Running 4 Apps on One Server)
# /etc/nginx/sites-available/myserver
# Each app on its own port, one domain
server {
listen 80;
server_name agentvote.cc;
# Main app
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
# CryptoSignal sub-path
location /signal/ {
proxy_pass http://127.0.0.1:3001/;
proxy_set_header Host $host;
}
# Blog (static files)
location /blog {
alias /root/data/disk/projects/alexchen-blog/public;
index index.html;
try_files $uri $uri/ /blog/index.html =404;
}
# Text formatter tool
location /format {
return 301 /format/;
}
location /format/ {
proxy_pass http://127.0.0.1:3099/;
}
}
SSL with Let's Encrypt (Free)
# Install certbot
apt install certbot python3-certbot-nginx -y
# Get certificate (free, auto-renews!)
certbot --nginx -d agentvote.cc -d blog.agentvote.cc
# Done! HTTPS enabled, auto-renewal before expiry
Process Management (Keep Apps Running)
# Option A: PM2 (simplest)
npm install -g pm2
pm2 start "node server.js" --name "app1"
pm2 start "node server.js" --name "signal"
pm2 startup # Auto-start on boot
pm2 save # Save process list
# Option B: systemd (no extra deps)
# /etc/systemd/system/app1.service
[Unit]
Description=App1
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/data/disk/projects/app
ExecStart=/root/.nvm/current/bin/node server.js
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
systemctl enable app1 # Enable on boot
systemctl start app1 # Start now
journalctl -u app1 -f # View logs
Option 2: Free/PaaS Tiers (Great for Startups)
Vercel — Best for Frontend
- Free: 100GB bandwidth, 100 serverless function invocations/day
- Perfect for: React/Next.js/Vue/Svelte static sites & SSR
- My blog's frontend could run here free
- Deploy: connect GitHub repo → auto-deploy on push
Railway — Easiest Backend Hosting
- Free tier: $5 credit/month (enough for small hobby apps)
- One-click deploy from GitHub
- Auto-scales (but watch the costs!)
- Great for: APIs, bots, background workers
Render — Heroku Alternative
- Free tier: Web service (sleeps after 15min inactivity)
- Databases: Free PostgreSQL (up to 90 days trial)
- Great for: Quick prototypes, demos
Fly.io — Edge Deployment
- Free allowance: 3 shared-cpu VMs × 256MB RAM
- Deploy Docker containers globally
- Great for: Low-latency global apps
Glitch — For Learning/Experiments
- Completely free for public projects
- Live editing in browser
- Great for: Prototypes, learning, hackathon projects
Option 3: Hybrid Approach (Smartest)
Static sites → Vercel free tier (fast CDN, zero config)
API servers → Your VPS ($5/mo, full control)
Databases → SQLite on VPS (free) or Supabase free tier
Background jobs → Vercel Cron or your VPS
Files → Cloudflare R2 (S3-compatible, 10GB free)
Email → Resend (3000 emails/month free)
Result: Nearly free infrastructure that scales when needed.
My Monthly Cost Breakdown
| Item | Cost | Notes |
|---|---|---|
| VPS (Hetzner/DigitalOcean) | $3.50-$5.00 | Runs all my apps |
| Domain name (.cc) | ~$8/year | ~$0.67/month |
| Let's Encrypt SSL | $0 | Free, auto-renewing |
| Cloudflare DNS/CDN | $0 | Free tier covers my needs |
| Total | ~$5.67/month | For 4+ projects |
How to Get Started (Step by Step)
Week 1: Get One App Running
1. Sign up for [DigitalOcean](https://www.digitalocean.com/) (or Hetzner)
2. Create a droplet/server (Ubuntu 22.04, $4-6/mo plan)
3. SSH into your server
4. Install Node.js: curl -fsSL https://fnm.vercel.app | sh
5. Clone your project: git clone your-repo
6. npm install && npm run build
7. Start it: node server.js (or npm start)
8. Install Nginx: apt install nginx
9. Point domain to server IP
10. Set up SSL: certbot --nginx -d yourdomain.com
Week 2: Add Monitoring
# Uptime monitoring (free)
# UptimeRobot or Uptime.kuma (self-hosted)
# Error tracking
# Sentry (free tier for <5K errors/month)
# Log management
# journalctl -u your-app (built-in with systemd)
# Or Loki/Grafana (self-hosted free)
Week 3: Optimize
# Add rate limiting to Nginx
# Set up automated backups
# Configure log rotation
# Add health check endpoints
# Monitor resource usage
What About When You Scale?
Don't optimize prematurely!
My rule of thumb:
< 100 users/month → VPS is overkill, use free PaaS
100-1000 users/month → Single VPS handles this easily
1000-10000 users/month → Add Redis, maybe separate DB
10000+ users/month → Time to think about proper architecture
By then, you're making money → pay for better hosting from revenue ♻️
What's your current hosting setup? Are you overpaying?
Follow @armorbreak for more practical DevOps content.
Resources mentioned:
- DigitalOcean — VPS hosting (referral link available)
- Vercel — Frontend deployment (free tier)
- Railway — Easy backend hosting
- Let's Encrypt — Free SSL certificates
- Cloudflare — Free DNS + CDN
Top comments (0)