DEV Community

Alex Chen
Alex Chen

Posted on

The $0 Stack: Every Tool I Use to Run My Side Projects for Free

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.

Email

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),
});
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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:

  1. VPS → Add second server: When CPU consistently >80% (~$5 more)
  2. SQLite → Supabase: When I need multi-region reads (still free!)
  3. Resend paid tier: When I send >3000 emails/month ($20/mo)
  4. Sentry: When I have >5K errors/month (free tier limit)
  5. 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:

  1. I learn infrastructure skills (marketable)
  2. Total maintenance time: ~2-3 hours/week
  3. 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)