You don't need to pay for hosting. In 2026, there are excellent free options for almost every type of project.
Here's what to use and when.
Static Sites (HTML, React, Vue, etc.)
Vercel — Best for frontend
Free tier: 100GB bandwidth, unlimited projects, automatic SSL.
npm install -g vercel
vercel deploy
That's it. Your site is live.
Bonus: Git integration. Every push to main automatically deploys.
Netlify — Great alternative
Free tier: 100GB bandwidth, 300 build minutes/month.
npm install -g netlify-cli
netlify deploy --dir=dist --prod
GitHub Pages — For static files
Free tier: Unlimited for public repos.
# In your repo settings → Pages → Source: main branch
# Done. Your site is at username.github.io/repo-name
Best for: Documentation, portfolio, DevToolkit-style projects.
Backend (Node.js, Python, etc.)
Railway — Best for side projects
Free tier: $5 credit/month (usually enough for a small app).
npm install -g @railway/cli
railway login
railway init
railway up
Railway auto-detects your stack (Node, Python, Go, etc.) and deploys it.
Render — Free for small apps
Free tier: 1 web service, sleeps after 15 minutes of inactivity.
# render.yaml
services:
- type: web
name: my-app
env: node
buildCommand: npm install
startCommand: node server.js
Gotcha: The free tier has cold starts (~30 seconds). Use paid ($7/month) for production.
Fly.io — For containers
Free tier: 3 shared-cpu VMs, 256MB RAM each.
fly launch
fly deploy
Excellent for Docker-based apps. Also great for running databases.
Databases
Supabase — Postgres + Auth + Storage
Free tier: 500MB storage, 50k auth users, 2GB file storage.
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(url, key)
// Query
const { data } = await supabase.from('users').select('*')
// Insert
await supabase.from('users').insert({ name: 'John', email: 'john@example.com' })
The Supabase free tier is genuinely generous.
PlanetScale — MySQL
Free hobby tier: 5GB storage, 1 billion row reads/month.
Turso — SQLite at the edge
Free tier: 500 databases, 9GB storage.
turso db create myapp
turso db shell myapp
Serverless Functions
Vercel Edge Functions
// api/hello.js
export default function handler(req, res) {
res.json({ message: 'Hello World' });
}
Deploy with vercel. Your function is at your-domain.vercel.app/api/hello.
Cloudflare Workers
Free tier: 100,000 requests/day.
export default {
async fetch(request) {
return new Response('Hello World!');
}
};
Fastest cold starts in the industry (0ms — they don't cold start at all).
The Free Stack I'd Use in 2026
For a full-stack app:
| Component | Service | Cost |
|---|---|---|
| Frontend | Vercel | Free |
| Backend | Railway | Free ($5 credit) |
| Database | Supabase | Free |
| Auth | Supabase Auth | Free |
| File storage | Supabase Storage | Free |
| CDN | Cloudflare | Free |
| Domain | Freenom or .github.io | Free |
| Monitoring | UptimeRobot | Free |
Total monthly cost: $0
You can build and launch a real product with this stack. DevToolkit runs entirely on GitHub Pages — free forever.
When to pay
Switch to paid when:
- You need custom domains with SSL on multiple services
- Your app has consistent traffic (free tiers have limits)
- You need more storage/compute
- You need SLAs and uptime guarantees
Until then: stay free.
What's your go-to free hosting stack? Drop it in the comments.
Top comments (0)