DEV Community

maquankun
maquankun

Posted on

I Replaced My SaaS Stack with Self-Hosted Tools - Monthly Bill: $347 to $12

I Replaced My SaaS Stack with Self-Hosted Tools - Monthly Bill: $347 to $12

My SaaS bill was $347/month. Now it is $12 (just electricity). Here is every Docker config included.

The Stack

  • Notion ($10) -> AppFlowy
  • Vercel ($20) -> Coolify
  • Datadog ($23/host) -> Grafana + Loki
  • Railway ($20) -> Coolify
  • Resend ($20) -> Listmonk
  • PostHog ($30) -> Plausible Analytics
  • Various ($224) -> Self-hosted

Hardware

Beelink Mini PC -- Intel N100, 16GB RAM, 500GB SSD. $150 one-time.

1. AppFlowy replaces Notion

services:
  appflowy:
    image: appflowyio/appflowy_cloud:latest
    ports: ["8000:8000"]
    volumes: [appflowy_data:/data]
Enter fullscreen mode Exit fullscreen mode

Docs, databases, kanban. Offline-first. AI built in.

2. Coolify replaces Vercel + Railway

curl -fsSL https://cdn.coollify.io/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Deploy from Git, automatic SSL, Docker-native.

3. Grafana + Loki replaces Datadog

services:
  grafana:
    image: grafana/grafana
    ports: ["3000:3000"]
  loki:
    image: grafana/loki
    ports: ["3100:3100"]
  prometheus:
    image: prom/prometheus
    ports: ["9090:9090"]
Enter fullscreen mode Exit fullscreen mode

4. Plausible replaces PostHog

services:
  plausible:
    image: ghcr.io/plausible/community-edition:v2.1
    ports: ["8001:8000"]
    environment:
      - BASE_URL=https://analytics.yourdomain.com
Enter fullscreen mode Exit fullscreen mode

Privacy-first analytics. No cookies. GDPR-compliant.

5. Listmonk replaces Resend

services:
  listmonk:
    image: listmonk/listmonk:latest
    ports: ["9000:9000"]
Enter fullscreen mode Exit fullscreen mode

6. Uptime Kuma replaces Better Uptime

services:
  uptime:
    image: louislam/uptime-kuma:1
    ports: ["3001:3001"]
    volumes: [uptime_data:/app/data]
Enter fullscreen mode Exit fullscreen mode

Beautiful status pages. Alert integrations.

Full Docker Compose

version: "3.8"
services:
  nginx-proxy:
    image: jc21/nginx-proxy-manager:latest
    ports: ["80:80", "443:443", "81:81"]
  grafana:
    image: grafana/grafana
    ports: ["3000:3000"]
  uptime:
    image: louislam/uptime-kuma:1
    ports: ["3001:3001"]
    volumes: [uptime_data:/app/data]
  coolify:
    image: coollabsio/coolify:latest
    ports: ["8080:8080"]
volumes:
  uptime_data:
Enter fullscreen mode Exit fullscreen mode

Cost Breakdown

  • Before: $347/month
  • After: $12/month (electricity)
  • Annual savings: $4,020

Getting Started

  1. Buy the mini PC
  2. Install Ubuntu Server
  3. Install Docker: curl -fsSL https://get.docker.com | sh
  4. Start with one service (I recommend Uptime Kuma)

Great resource: Awesome Self-Hosted

What do you self-host? Share your setup below.


Disclosure: Amazon affiliate links. I earn a small commission at no extra cost to you.

Top comments (1)

Collapse
 
jill_builds_apps profile image
Jill Mercer

That's a huge shift in your monthly — big win. SaaS creep is real for indie builders, those bills add up fast. It's tough figuring out what's worth the constant subscription. Taking control of your own stack just makes sense. You get the exact setup you need, without the bloat.