Fetching latest headlines…
[Real Experience] Auditing My Indie SaaS Subscriptions: 5 Alternatives That Cut $800/Year
NORTH AMERICA
🇺🇸 United StatesJuly 2, 2026

[Real Experience] Auditing My Indie SaaS Subscriptions: 5 Alternatives That Cut $800/Year

0 views0 likes0 comments
Originally published byDev.to

Auditing My Indie SaaS Subscriptions: 5 Alternatives That Cut $800/Year

TL;DR

Fixed costs for indie dev projects balloon through "subscriptions you signed up for and forgot." I switched 5 services to free tiers or self-hosted alternatives, cutting ¥10,000/month — ¥120,000/year (roughly $800). The short version:

Before Monthly After Monthly Annual Savings
Heroku Hobby (2 dynos + DB) ¥2,800 Fly.io / Railway free tier ¥0 ¥33,600
Vercel Pro ¥3,000 Cloudflare Pages ¥0 ¥36,000
Datadog (1 host) ¥2,300 Grafana Cloud Free ¥0 ¥27,600
Mailgun Foundation ¥1,400 Resend free tier ¥0 ¥16,800
Algolia Build overage ¥500 Meilisearch (self-host) ¥0 ¥6,000

At indie-project traffic levels, you're probably using less than 10% of what paid plans offer. The first step is auditing your usage and checking whether your actual numbers fit inside a free tier.

The Approach: Measure First, Decide Second

Cut decisions should be based on real data, not gut feeling. Start with a billing audit.

# Export each service's plan and recent usage to a spreadsheet
# Example: check request count for the last 30 days from nginx access log
awk '{print $4}' access.log | grep -c "$(date +%d/%b/%Y)"
# → A few thousand requests/day fits comfortably inside almost every SaaS free tier

The key is looking at actual traffic, not peak spikes. Most indie projects fit well within Vercel/Cloudflare free tiers (100k requests/month to unlimited bandwidth).

Step-by-Step Migration

1. Hosting: Heroku → Fly.io

# Deploy to fly.io — existing Dockerfile or buildpacks work as-is
curl -L https://fly.io/install.sh | sh
fly launch            # interactively generates fly.toml
fly deploy
fly scale count 1     # 1 instance is enough for indie projects
fly postgres create   # small instance, effectively free

The key to cost control: lock to fly scale count 1 and the minimum VM (shared-cpu-1x).

2. Frontend: Vercel Pro → Cloudflare Pages

Unlimited bandwidth, generous build limits, and free equivalents of Pro features (Analytics, etc.) that most indie projects actually need.

npm i -g wrangler
wrangler pages deploy ./dist --project-name my-app

3. Monitoring: Datadog → Grafana Cloud Free

The free plan covers 10k metric series, 50GB logs, and 14-day retention. Works with Prometheus remote_write out of the box.

# prometheus.yml — forward to Grafana Cloud via remote_write
remote_write:
  - url: https://prometheus-prod-XX.grafana.net/api/prom/push
    basic_auth:
      username: "123456"
      password: "${GRAFANA_CLOUD_API_KEY}"

4. Email: Mailgun → Resend

Free tier: 3,000 emails/month, 100/day. More than enough for transactional email in a typical indie project.

curl -X POST 'https://api.resend.com/emails' \
  -H "Authorization: Bearer $RESEND_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Welcome",
    "html": "<p>Thanks for signing up!</p>"
  }'

5. Full-Text Search: Algolia → Meilisearch (self-hosted)

Run it alongside your existing VPS workload and the marginal cost is zero.

docker run -d --name meili -p 7700:7700 \
  -e MEILI_MASTER_KEY="$MEILI_KEY" \
  -v $PWD/meili_data:/meili_data \
  getmeili/meilisearch:v1.10

# Index your data
curl -X POST 'http://localhost:7700/indexes/posts/documents' \
  -H "Authorization: Bearer $MEILI_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @posts.json

Watch Out For

  • Check overage behavior before switching: Services like Fly.io can auto-charge on overages. Set hard limits with fly scale to prevent surprises.
  • Prefer low vendor lock-in stacks: Cloudflare Pages and Meilisearch are Docker-friendly and built on standard APIs — re-migration costs are low if you change course again.
  • Migrate in stages: Before cutting over DNS, lower TTL to 300 seconds, then run old and new services in parallel for one full billing cycle so you can roll back cleanly.

A subscription audit is a one-time effort that keeps paying off year after year. Open every invoice, compare your real traffic numbers against free tier limits, and go from there.

Related Links

※ Some links are affiliate or self-promotional.

🛠 From the Author

If you want to put Claude / GitHub Actions automation like this to work in your own environment right away:

※ Links to author's own products and sites (includes promotional content).

If you found this useful: I packaged 50 copy-paste AI debugging prompts + drop-in Claude Code config templates (CLAUDE.md, settings.json, MCP) into a small kit.
Launch deal: code START50 = 50% off → 50 AI Debugging Prompts + Claude Code Config Pack (about $6, 50% off applied)

Comments (0)

Sign in to join the discussion

Be the first to comment!