Skip to main content
50% off all plans, limited time. Starting at $2.48/mo
17 min left
Web & Business Apps

The Self-Hosted Stack for Indie Hackers: Best way to replace your huge SaaS bill

V By Varys 17 min read
The self-hosted stack for indie hackers: replace Vercel, Zapier, Mailchimp, GitHub, and more with one VPS

A solo founder's monthly tool bill, line by line: Vercel Pro at $20, Zapier Starter at $29, Mailchimp Standard for 1,000 contacts at $20, Plausible Cloud at $9, GitHub Team at $4 per seat, Better Stack Uptime at $29, 1Password Teams at $7.99 per seat. Add a status page tool. Add the second Vercel seat when a contractor joins and the bill is somewhere between $110 and $250 per month before any of those plans tier up.

A simple VPS can run these seven apps side by side:

  • Coolify
  • n8n
  • Listmonk
  • Umami
  • Gitea
  • Uptime Kuma
  • Vaultwarden

At idle, the whole stack sits around 1.4 GB of RAM. Most of the categories on the SaaS bill have a credible self-hosted equivalent that is free to run. At Cloudzy we offer exactly that. Our marketplace has one-click app installs and VPS deploys in about 60 seconds.

This is not a "self-host everything" post. The cost math is real, but it has a price the SaaS line items do not show: founder time, security patching, and email deliverability. The thesis here is narrower. Self-host the right things in the right order, and leave the categories where SaaS pricing is fair and operational risk is high.

The Short Version

A cheap VPS runs the full indie hacker stack (Coolify, n8n, Listmonk, Umami, Gitea, Uptime Kuma, Kener, Vaultwarden) at roughly 1.4 GB of RAM total. Add $1 to $20 per month for a third-party SMTP relay (Amazon SES, Postmark, Mailgun) for newsletter delivery; Listmonk does not send mail itself. This replaces roughly $100 to $250 per month in SaaS subscriptions. Keep transactional email, payment processing, and DNS on managed services.

Here's Why Self-Hosting Tremendously Cuts Costs

Take the worked example again, with the structure of each price visible:

  • Vercel Pro: $20 per seat per month.
  • Zapier Starter: $29 per month for 750 tasks.
  • Mailchimp Standard, 1,000 contacts: $20 per month, scaling sharply at 5K, 10K, and 25K.
  • Plausible Cloud: $9 per month at 10K page views, priced per pageview tier.
  • GitHub Team: $4 per user per month for private collaboration.
  • Better Stack Uptime: starts at $29 per month for the team tier, priced per monitor count.
  • 1Password Teams: $7.99 per user per month.

The pattern is the same across the bill: per seat, per contact, per action, per pageview. Every aspect of growth that an indie hacker is trying to push up (users invited, contacts on the list, automations triggered, traffic on the site) is also a dimension that the bill grows on.

The counterweight is a fixed-cost VPS. A basic VPS with 4 GB of RAM has enough headroom to run all eight applications at once without issues. Using less RAM is possible, but tight. An 8 GB VPS is overkill unless you also self-host Mautic or run Ghost with serious traffic. At Cloudzy we offer the exact plan you need to run all eight, and you can deploy any tool in your stack with one click.

Section key takeaway: Self-hosting changes a usage-priced bill into a fixed-priced bill, which only matters when the SaaS line items are large relative to revenue and to the value of your time.

The Stack, Organized by Job-to-Be-Done

The order of subsections below is the order to install. Coolify first, because it hosts the rest. Vaultwarden and Uptime Kuma next, because they are the lowest-overhead apps in the stack and start paying back immediately. Then analytics and source control, both close to set-and-forget. Newsletter and automation last, because they have the most setup friction and the most operational responsibility.

Deployment Platform: Replace Vercel/Heroku/Railway With Coolify

Coolify as a self-hosted Vercel, Heroku, and Railway alternative

Coolify is the deployment backbone. After installing it on a VPS, every other tool in this stack is a one-click install from inside Coolify's UI. That is why running this stack is much easier: one PaaS layer that runs your product, your databases, and your supporting tools as Docker containers under a single dashboard.

Vercel Pro is $20 per seat per month, with usage-priced bandwidth and serverless function invocations on top. Heroku and Railway sit in similar pricing brackets. Coolify itself is free; the cost is the VPS underneath it.

Where this breaks down: Coolify is not a perfect Vercel clone. Vercel ships a global edge CDN, automatic image optimization, edge functions, and tight Next.js integration that no self-hosted PaaS replicates one-for-one. For a content site, an API-driven SaaS, or a typical CRUD app, Coolify is fine. For a Next.js app that depends heavily on edge rendering or ISR fan-out, the replacement is partial.

Pro Tip

Coolify replaces raw docker compose files with a managed UI for environment variables, persistent volumes, automatic HTTPS via Caddy, and rollback to previous deploys. Compared to running Docker Compose directly, this is a meaningful reduction in operational overhead, which is the main reason self-hosting is viable for a non-sysadmin founder.

For readers who want to skip the install-and-configure step entirely, we offer a one-click Coolify VPS image.

Section key takeaway: Coolify replaces Vercel, Heroku, and Railway for most indie SaaS workloads, runs the rest of the stack as one-click apps, and is the right first migration to make.

Workflow Automation: Replace Zapier With n8n

n8n as a self-hosted Zapier alternative for workflow automation

Zapier Starter is $29 per month for 750 monthly tasks. Most indie founders blow through that allowance within the first month of any real workflow (a Stripe webhook fanout, a Postmark notification, a CRM sync, a Slack alert) and end up on a higher tier. n8n, self-hosted, is effectively unlimited for normal use, subject to VPS limits.

The visual editor is comparable to Zapier's. The integration count is smaller, but the long tail Zapier wins on is mostly niche SaaS connectors. The integrations indie hackers actually use (Stripe, Postmark, SendGrid, Slack, Discord, OpenAI API, Google Sheets, generic HTTP, and webhook nodes) are all first-class in n8n.

The fair counter-argument: if your workflows depend on three Zapier-only integrations, n8n is not yet your replacement. Audit the connectors you actually use before deciding. The n8n community has a long-running cost breakdown thread where founders post their migration audits.

Section key takeaway: For small to mid-sized workflow counts, n8n on a shared VPS replaces Zapier at near-zero marginal cost, provided you do not depend on Zapier-only connectors.

Newsletter and Mailing List: Replace Mailchimp/ConvertKit With Listmonk

Listmonk as a self-hosted Mailchimp and ConvertKit alternative

Mailchimp Standard at 1K contacts is $20 per month, climbing steeply with list size. ConvertKit Creator is in a similar range. Listmonk is free, runs under 100 MB of RAM, and gives you full ownership of the subscriber database on your own VPS.

The single most important operational fact about Listmonk is often overlooked: Listmonk still needs an SMTP relay for delivery. It is a list manager and a campaign builder. The actual SMTP delivery (getting bytes into Gmail, Outlook, and Yahoo inboxes) still requires a third-party relay. Amazon SES at roughly $0.10 per 1,000 emails is the cheapest viable option. Postmark is more expensive and more reliable for transactional traffic. Mailgun and SendGrid sit in between. Without a relay configured, your campaigns will not deliver.

Budget $1 to $20 per month for the relay, depending on volume. Listmonk plus SES is the typical low-volume indie configuration. Mautic has the same SMTP requirement and the same budget line.

Pro Tip

Do not run your own mail server on the same VPS as the rest of this stack. Deliverability on a fresh IP from a generic VPS provider is poor, the warmup process takes weeks, and any blacklist hit becomes a multi-day support problem. Pay the SMTP relay. The fee is small; the alternative is a deliverability disaster that lands your campaigns in spam and damages your sender reputation for months.

For founders who want a unified blog plus newsletter rather than a standalone list manager, Ghost is one of the best alternatives. It bundles the publication, member signup, paid subscriptions, and the campaign sender in one app, but ships with the same SMTP-relay requirement.

Section key takeaway: Listmonk gives you full subscriber-data ownership and replaces Mailchimp's monthly bill, but you still need a third-party SMTP relay for delivery. Budget $1 to $20 per month for that.

Analytics: Replace Plausible Cloud and Google Analytics With Umami

Umami as a self-hosted Google Analytics and Plausible Cloud alternative

Umami uses around 90 MB of RAM, runs on a Postgres database that Coolify provisions for you, and produces a clean dashboard that covers the basic traffic questions most indie hackers care about: where the traffic is coming from, what people are reading, and where they are leaving. It is GDPR-friendly by default, with no cookie banner required.

Plausible Cloud is $9 per month at 10K pageviews and goes up from there. Self-hosted Plausible exists, but the official guidance for the self-hosted Community Edition has shifted across versions and the upgrade path has been less smooth than Umami's. Matomo is the alternative if you genuinely need depth: goals, heatmaps, session recording in the paid plugin, and granular custom dimensions. For most indie use, that depth is not the bottleneck on growth.

A specific warning, because Cloudzy's marketplace lists it: do not deploy Fathom Lite. Fathom Lite is feature-frozen, so skip it unless you specifically want that stack. The name borrows recognition from the (excellent, paid, hosted) Fathom Analytics, but the lite project is not maintained. If you care about your software being up to date, give Umami a chance.

The honest tradeoff: with self-hosted analytics, you own the data, but you also own the retention, the backups, and the schema migrations on version upgrades. Coolify makes the backup and upgrade flow tractable, but it is one more thing on the maintenance ledger.

Section key takeaway: Umami covers the indie analytics use case at zero recurring cost; reach for Matomo only if you genuinely need its depth, and avoid Fathom Lite outright.

Source Control: Replace Paid GitHub With Gitea or Forgejo

Gitea and Forgejo as self-hosted GitHub alternatives for source control

GitHub Free covers most indie use: unlimited public repos, unlimited private repos for personal accounts, free Actions minutes, and a strong network effect through Issues, your profile, the ecosystem of integrations, and (increasingly) Copilot. The migration case gets stronger when you need Team features or paid collaboration tools.

Gitea is light on resources. Forgejo is the community fork with a very similar UI. Both ship issues, pull requests, a basic CI runner, and a Git server. Both are free.

The honest tradeoff: GitHub's network effect is not free. Your public profile is a hiring signal. Actions has thousands of community-built workflows. Copilot is tightly integrated. Self-hosting source control gives up all of that for ownership and seat-fee savings.

Gitea is a win for: a pre-revenue solo founder paying for a Team seat just to keep one repo private.

GitHub is a win for: a founder using Actions heavily, recruiting via their profile, or running open source.

For a deeper dive on the GitLab vs Gitea vs Forgejo tradeoff, see our self-hosted GitLab alternatives guide.

Section key takeaway: Self-host source control when you are paying GitHub for private-repo seats; stay on GitHub Free when you are not.

Monitoring and Status Pages: Replace Better Stack Uptime With Uptime Kuma + Kener

Uptime Kuma and Kener as a self-hosted Better Stack Uptime and Statuspage alternative

Better Stack Uptime and Statuspage start at $29 per month. Uptime Kuma covers the monitoring side: HTTP, TCP, ping, and keyword checks, with notifications to Slack, Discord, Telegram, email, and arbitrary webhooks. Kener pairs with it for a public-facing status page with email notifications. Both run free.

The honest tradeoff is structural, not feature-based: a status page hosted on the same VPS as the service it monitors is a self-defeating setup. If the VPS goes down, the status page that should announce the outage goes down with it. For internal monitoring, this is fine. For a credible public status page that customers rely on, host Kener on a separate, cheap VPS in a different location, or stay on a managed status page provider for that one specific function.

Section key takeaway: Uptime Kuma plus Kener gives you a credible monitoring and status-page combo for free, but host the status page outside the monitored stack if uptime credibility matters to your customers.

Password Management: Replace 1Password Teams With Vaultwarden

Vaultwarden as a self-hosted 1Password Teams alternative

1Password Teams is $7.99 per seat per month. Vaultwarden is a Bitwarden-compatible server written in Rust, runs in under 50 MB of RAM, and works with the official Bitwarden clients for free:

  • browser extensions
  • mobile apps
  • desktop apps
  • the CLI

The honest tradeoff: 1Password's UX, recovery flows, and breach-monitoring service are slightly more polished than the Bitwarden client experience. For a solo founder or a 2 to 3-person team, Vaultwarden is more than sufficient. For a 10+ person team, the centralized billing, audit logs, and breach monitoring of a paid manager may justify the per-seat fee.

Section key takeaway: Vaultwarden is the lightest app in this stack: under 50 MB of RAM, full Bitwarden client compatibility, and it removes a per-seat subscription line.

The Centerpiece Comparison

The shape of the bill, side by side. Eight jobs, two columns of options, one verdict each.

Job to be doneSaaS optionSaaS priceSelf-hosted optionSelf-hosted RAMSetup difficultyHonest verdict
Deployment platformVercel Pro / Heroku / Railway$20/seat/mo+Coolify~400 MBMediumSelf-host unless you depend on edge rendering
Workflow automationZapier Starter$29/mon8n~250 MBMediumSelf-host unless you depend on Zapier-only connectors
Newsletter / listMailchimp Standard$20/mo at 1KListmonk + SES~100 MBMedium-HighSelf-host the list, keep delivery on a relay
AnalyticsPlausible Cloud$9/mo at 10KUmami~90 MBLowSelf-host; avoid Fathom Lite
Source controlGitHub Team$4/seat/moGitea / Forgejo~150 MBLowOnly when paying for Team seats
Uptime monitoringBetter Stack Uptime$29/moUptime Kuma~150 MBLowSelf-host
Public status pageStatuspage$29/moKener~100 MBLowSelf-host
Password manager1Password Teams$7.99/seat/moVaultwarden~50 MBLowSelf-host for solo and small teams

Total monthly cost: our 4 GB VPS plan currently runs $14.47 per month with the 50% discount, plus $1 to $20 for the SMTP relay. Total replaced SaaS at typical indie usage: $100 to $250 per month.

The Migration Order, and What to Leave on SaaS

  1. Coolify. It hosts the rest of the stack. Do nothing else until this is running.
  2. Vaultwarden and Uptime Kuma. Lowest operational overhead, immediate value. Vaultwarden replaces a subscription line; Uptime Kuma starts producing visibility within an hour of install.
  3. Umami and Gitea. Both are close to set-and-forget after initial install. Backups and version upgrades are the only ongoing work.
  4. Listmonk and n8n. Higher setup effort, more configuration, more operational responsibility. Do these once the rest of the stack is stable and you have headroom for the SMTP relay configuration.
  5. Kener. Last, and only if your product warrants a public status page. If you do install it, host it on a separate VPS so an outage on the main box does not take the status page with it.

The list of categories to leave on SaaS is just as important:

  • Transactional email delivery (Postmark, SES, Resend). Running your own mail server is a deliverability nightmare. The cost of a relay is small; the operational risk of self-hosting it is large. This applies even to Listmonk's outbound traffic.
  • Payment processing (Stripe, Paddle). Not a meaningful self-host candidate.
  • DNS (Cloudflare). Free at the tier indie hackers need, with security and performance benefits a self-hosted DNS cannot match.

Section key takeaway: Self-host in the order of operational simplicity, and leave the categories where SaaS pricing is fair and the operational risk of self-hosting is severe.

The Honest Tradeoff: Where Self-Hosting Stops Being Cheap

Pieter Levels, who has built a portfolio of profitable indie products mostly solo, has argued the opposite position consistently for years: any hour spent on infrastructure is an hour not spent on customers. His MVP-building post is the strongest expression of that view, and it is correct in the cases where it applies.

Founder time has a real opportunity cost. If you value your time at $50 to $100 per hour, ten hours of initial setup and regular monthly maintenance costs $600 to $2,500 per year of attention. Against $1,200 to $2,400 per year of SaaS savings, the math is not obviously a win, and, as mentioned before, the time spent on infrastructure is time not spent on customer discovery, product development, or distribution. At the pre-MVP stage, the time cost almost always exceeds the savings. At $20K+ MRR, the same thing applies for a different reason: the savings are small relative to revenue.

Where self-hosting still makes sense is the middle: pre-PMF founders at $0 to $5K MRR, with a working CLI, who have tooling bills that are visible against revenue and who enjoy infrastructure work enough that the maintenance hours are not pure tax.

Security patching is the second real cost, and it is the one most often ignored. Self-hosted software does not auto-update. You pull updates, test compatibility, and occasionally handle breaking changes when an upstream project ships a major version. A security incident on a single VPS that hosts several of your systems at once is catastrophic in scope. A monthly maintenance window of one to two hours is the realistic floor, and it has to be on the calendar.

Email deliverability is the third real cost, and the most common place self-hosting bites indie hackers. Listmonk still needs an SMTP relay for delivery. Mautic does not send mail. Run them with an SMTP relay (SES, Postmark, Mailgun) configured from day one, or skip the migration entirely.

When self-hosting is the wrong choice: pre-MVP founders, founders who do not enjoy infrastructure work, and any category where the SaaS option has real switching costs (an established Stripe integration, a deliverability-warmed sending domain, a years-old GitHub profile that doubles as a hiring signal).

Section key takeaway: The right question is not "can I self-host this," it is "is the time and operational risk of self-hosting cheaper than the SaaS line item it replaces, given my stage and competence?"

Frequently Asked Questions

What Does a Full Self-Hosted Indie Hacker Stack Cost per Month?

A 4 GB VPS at $14.47 per month (with the current 50% discount) runs Coolify, n8n, Listmonk, Umami, Gitea, Uptime Kuma, and Vaultwarden simultaneously, with under 1.5 GB of RAM in use at idle. Add $1 to $20 per month for a third-party SMTP relay (Amazon SES, Postmark) for newsletter delivery. Total: roughly $15 to $35 per month, replacing roughly $100 to $250 per month in SaaS subscriptions.

Is Coolify a Real Vercel Replacement?

For most indie SaaS workloads, yes. Coolify replaces Vercel, Heroku, and Railway as a self-hosted PaaS that handles deploys, environment variables, persistent volumes, and automatic HTTPS. For Next.js apps that depend heavily on edge rendering, image optimization, or serverless functions, the replacement is partial. Coolify is closer to a Heroku or Railway equivalent than a Vercel one.

Can I Really Replace Mailchimp With Listmonk?

For list management and campaign building, yes. For actual email sending, no. Listmonk requires a third-party SMTP relay (SES, Postmark, Mailgun, SendGrid) to deliver mail; without one, your campaigns will not reach inboxes. Budget $1 to $20 per month for the relay separately from the VPS cost.

When Does Self-Hosting Not Make Sense for an Indie Hacker?

Pre-MVP founders, founders who do not enjoy infrastructure work, and any category where the SaaS price is fair and the operational risk of self-hosting is severe. Transactional email delivery, payment processing, and DNS are the clearest examples. Above $20K MRR, the math also flips because founder time costs more than the SaaS line item.

What VPS Specs Do I Need for a Self-Hosted Indie Stack?

The minimum is 2 GB of RAM, but it is tight. The recommended baseline is 4 GB of RAM ($14.47 per month with the current 50% off) for comfortable headroom across seven to eight apps. Step up to 8 GB only if you add Mautic, run Ghost with significant traffic, or self-host a database with serious load.

What This Looks Like in Practice

Self-host the categories where SaaS pricing penalizes growth (per seat, per contact, per action) and where the open-source equivalent is mature enough that operational cost is bounded. Stay on SaaS for transactional email, payment processing, and DNS, where the SaaS price is fair and the operational risk of self-hosting is severe.

The first concrete move is unambiguous: provision a 4 GB VPS, install Coolify, and deploy Vaultwarden and Uptime Kuma in the first session. That is enough to validate the workflow before committing to anything harder. Migrate one tool at a time after that, not the whole stack at once. The point is not to self-host everything. The point is to make the math on the rest of the bill make sense.

Share

More from the blog

Keep reading.

Ready to deploy? From $2.48/mo.

Independent cloud, since 2008. AMD EPYC, NVMe, 40 Gbps. 14-day money-back.