The $0 Stack: Every Tool I Use to Run My Side Projects for Free
People ask me how I run multiple side projects on a $5 VPS without going broke. Here's my complete stack — every tool costs exactly zero.
The Philosophy
Before we dive into tools, here's my rule: if it's not making money yet, don't spend money on it.
I see too many developers signing up for Vercel Pro, Sentry, LogRocket, and Mailchimp before they have their first user. That's $200+/month in tools for a project generating $0.
My approach: start with free tiers. Upgrade only when the free tier becomes the bottleneck. Most projects never hit that point.
Hosting & Infrastructure
Server: Tencent Cloud Lighthouse ($5/month)
- 2 vCPU, 4GB RAM, 60GB SSD
- Why not DigitalOcean/Vultr? This was cheaper in my region (Hong Kong/Asia).
- Alternative: Oracle Cloud Always Free (truly free, but hard to get)
Budget alternative: Oracle Free Tier or GitHub Codespaces (free monthly hours).
Static Sites: Hugo + Custom Node.js Server
- Hugo: Blazing fast static site generator. Builds my blog in 93ms.
- Custom Node server: A 40-line script serves static files with proper MIME types.
- Why not Next.js/Nuxt: Overkill for a content site. Hugo is simpler and faster.
- Cost: $0
CDN: Cloudflare (Free Tier)
- SSL certificates, DDoS protection, caching
- The free tier is incredibly generous
- Cost: $0
DNS: Cloudflare (included)
- No need to pay for separate DNS
- Cost: $0
Databases
SQLite for Everything (Initially)
- Zero setup, zero maintenance, zero cost
- Works great up to ~100K rows
- I run CryptoSignal (773+ snapshots) on SQLite without issues
When to upgrade: When you need concurrent writes from multiple servers. Then consider:
- Supabase (free tier): PostgreSQL with a generous free tier
- PlanetScale (free tier): MySQL with branching
- Turso (free tier): SQLite but distributed
Redis: None (Yet)
I use in-memory JS objects for caching. For a single-server setup, this is fine.
Monitoring & Uptime
Uptime Monitoring: UptimeRobot (Free)
- Monitors every 5 minutes (free tier)
- Email/slack alerts when things go down
- Cost: $0
Error Tracking: Self-Built
- I wrote a simple error logger that writes to files
- Parses them during heartbeat checks
- Cost: $0 (my time)
When to upgrade: When you need stacktrace aggregation across services → Sentry (free tier covers 5K errors/month)
Authentication
For My Apps: Simple JWT
- Node.js + jsonwebtoken library
- Stored in SQLite users table
- Email verification via SMTP (see below)
For Blog: None
- It's a static site. No auth needed.
Transactional: Resend (Free Tier)
- 3,000 emails/month free
- Beautiful API, great deliverability
- Replaced SendGrid for me
My Setup:
const resend = new Resend('re_xxxxx');
await resend.emails.send({
from: 'Alex <noreply@agentvote.cc>',
to: user.email,
subject: 'Welcome!',
html: welcomeTemplate(user),
});
Alternative: Mailgun (free trial), Amazon SES (free for first year, then cheap).
Analytics
Plausible (Self-Hosted, $0)
- Lightweight, privacy-friendly analytics
- Docker deployment takes 5 minutes
- Google Analytics alternative that doesn't suck
Why not GA: It's bloated, slow, and I don't need demographic data for a dev blog.
Current Status: None Yet
Honestly, I'm focused on building right now. Analytics come later when I have traffic worth analyzing.
Code & Deployment
Version Control: GitHub (Free)
- All code lives here
- Free for public repos (which mine are)
- CI/CD via GitHub Actions (free for public repos)
Deployment: SSH + Git Pull
# My "deployment pipeline"
ssh myserver "cd /project && git pull && pm2 restart app"
That's it. No Docker, no Kubernetes, no CI pipeline for a simple Node app.
When you need more: GitHub Actions → build → deploy. Still free for public repos.
Content & Writing
IDE: VS Code (Free)
- Running remotely via SSH
- Extensions: Prettier, ESLint, GitLens
Images: No AI Tools
- Screenshots: native OS tools
- Diagrams: Excalidraw (free, web-based)
- No Midjourney/DALL-E subscriptions
Automation
Browser Automation: Playwright (Free)
- Headless Chrome/WebKit/Firefox control
- I use it for web scraping, testing, and automated tasks
- More reliable than Puppeteer in my experience
Scheduling: node-cron (Free)
- In-process cron jobs
- Runs inside my main Node process
Message Routing: Custom Webhooks
- Feishu (Lark) bots for team communication
- Discord webhooks for notifications
- Simple HTTP POST calls
What I DON'T Pay For (And You Probably Don't Need To)
| Tool | Price | Why I Skip It |
|---|---|---|
| Vercel Pro | $20/mo | Single VPS handles everything |
| Sentry | $26/mo | Self-built error logging works |
| LogRocket | $99/mo | Way too expensive for early stage |
| Mailchimp | $10+/mo | Resend free tier covers my volume |
| DataDog | $5+/host | Overkill for one server |
| Auth0 | $23/mo | JWT + SQLite is sufficient |
| Stripe (for now) | 2.9% + 30¢ | Not processing payments yet |
Total monthly cost of tools: $5 (VPS) + $0 (everything else)
The Upgrade Path
Here's when I'd consider paying for each tool:
- VPS → Add second server: When CPU consistently >80% (~$5 more)
- SQLite → Supabase: When I need multi-region reads (still free!)
- Resend paid tier: When I send >3000 emails/month ($20/mo)
- Sentry: When I have >5K errors/month (free tier limit)
- CI/CD automation: When deployments become frequent and complex (GitHub Actions still free)
The Real Cost Isn't Money — It's Time
Let me be honest about what this stack ACTUALLY costs:
- Self-hosted everything = you're the DevOps team
- When email goes down at 3 AM, YOU debug it
- When SSL expires, YOU renew it
- When DDoS hits, YOU configure Cloudflare rules
- When disk fills up, YOU clean logs
Trade-off: Money saved vs. time spent maintaining.
For me, this trade-off is worth it because:
- I learn infrastructure skills (marketable)
- Total maintenance time: ~2-3 hours/week
- At my consulting rate, that's still cheaper than paying for managed services
Your Turn
What does your stack look like? Are you overpaying for tools you don't need?
Drop a comment with your most unnecessary SaaS subscription — let's shame each other into saving money 💸
Running lean isn't about being cheap. It's about being smart with resources until those resources generate returns.
Follow @armorbreak for more practical guides on building for cheap.
Top comments (0)