
Zapier's per-task billing creates a cost cliff most teams miss until the invoice lands. Zapier Professional at $19.99/month covers roughly 3 days of one moderately busy workflow; self-hosting n8n on a $10/month VPS gives you unlimited executions. Migration effort, maintenance burden, real failure modes — and an honest verdict on when 'just keep paying' still makes sense.
| Option | Monthly cost | Maintenance burden |
|---|---|---|
| Managed 1-click (PikaPods / InstaPods) | $3–7/mo | None — updates, SSL, backups handled |
| Raw VPS + Docker (Hetzner CX22) | $4–5/mo | 30–60 min setup; ~30 min/month upkeep |
| Coolify on VPS | $5–8/mo | Moderate — VPS and Coolify updates |
| Elestio managed | ~$17/mo | Minimal — near-zero ops |
| Scenario | Zapier | n8n Self-Hosted |
|---|---|---|
| 1 workflow, 50 runs/day, 3 steps | ~2,700 tasks/mo → $19.99/mo | 1,500 executions/mo → ~$14/mo |
| 4 workflows, ~200 triggers/day combined | ~7,020 tasks/mo → $69+/mo | 7,020 executions → ~$14/mo |
| Production team, 50,000 executions, avg 8 steps | ~400,000 tasks → $9,200+/mo | 50,000 executions → ~$28/mo |

# Minimum viable n8n (Docker Compose)
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports: ["5678:5678"]
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- WEBHOOK_URL=https://n8n.yourdomain.com/
volumes: [n8n_data:/home/node/.n8n]
depends_on: [postgres]
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes: [postgres_data:/var/lib/postgresql/data]4
docker compose pull && docker compose up -d)zapier.com
massivegrid.com
expresstech.io
tech-insider.org
pixabay.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.