I Replaced Our $647/Month SaaS Stack With Open Source. We Saved $8.
The $647/Month SaaS Stack
The software was free. The servers were cheap. I was the expensive part.
TL;DR Eleven SaaS subscriptions for a five-person team came to $647 a month. Every one has a free, open-source alternative, so we tried to replace them. The cash bill fell 40%. But servers, backups, email delivery and AI API usage add $86. And about 5 hours of maintenance a month at $50 an hour eats the rest.
The 3am Rule: If a tool breaking at 3 am would wake you up, pay someone else to be awake. Self-host docs, chat and automations; pay for logins, passwords, payments and email delivery.
How It Started
It started with a renewal email. Nothing dramatic. Just Loom, reminding me that five seats would renew next week. I opened a spreadsheet to check what else was coming up, and an hour later I was staring at a number I didn't like. Eleven subscriptions. $647 a month. For a team of five.
Here's the thing that got under my skin: every single one of those tools has a free, open-source version. Most of them have tens of thousands of stars on GitHub and a README that says "self-host in 5 minutes." So I did what any reasonable founder does on a Sunday night. I decided to replace all of them. This is what happened over the next three months.
The Original Stack
| Tool | What we used it for | Monthly cost |
|---|---|---|
| Ahrefs | SEO and keyword research | $129 |
| ChatGPT (5 seats) | Writing, research, everything | $100 |
| Loom | Screen recordings for clients and each other | $75 |
| Auth0 | Logins for our app | $70 |
| Canva Business (3 seats) | Social graphics, decks | $63 |
| Notion | Docs, wiki, project notes | $50 |
| Crisp | Live chat on our website | $45 |
| Zapier | Automations between everything | $39 |
| Slack | Team chat | $36 |
| Calendly | Sales calls | $20 |
| 1Password | Passwords | $20 |
| Total | $647/month |
The Open-Source Alternatives
Look at that column. Zero, zero, zero. A 100% saving. I felt like I'd found a glitch in the matrix. I had not found a glitch in the matrix.
How I Picked the Replacements
Quick note on this, because it saved me from one mistake early. There are dozens of "open-source alternatives to X" lists, and most of them are sorted by GitHub stars. Stars tell you a project was popular. They don't tell you it's still alive. I ended up using the alternatives pages on this site, mostly because they show when each project was last updated right next to it. That's how I noticed that two of the five Loom alternatives on the list hadn't had a code update since November 2024. Both still show up in plenty of "best Loom alternatives" articles.
Tip: Before you install anything, check the last update date, not the star count. A project with 20,000 stars and no commits in eighteen months is a project you will be maintaining yourself.
Tool-by-Tool Replacements
Notion โ AppFlowy
How close: 7/10 ยท Setup: 9 hours
The writing experience is genuinely good. It feels like Notion, which is the whole point. Pages came across from Notion's export fine. Linked databases did not. Anything with relations between tables had to be rebuilt by hand, which is where most of the 9 hours went.
If your Notion is mostly docs, this is an easy switch. If it's a web of connected databases, budget a weekend.
Verdict: switched, stayed.
Zapier โ n8n
How close: 9/10 ยท Setup: 8 hours
The surprise of the whole project. Rebuilding our 23 Zaps took a full day, but n8n is honestly better for anything with more than three steps. You can see the data moving through each step, and there's no task counter ticking up in the corner making you nervous.
Verdict: switched, and I'd never go back.
Crisp โ Chatwoot
How close: 8/10 ยท Setup: 7 hours
The chat widget, shared inbox, and canned replies all work well. Our support person barely noticed the change.
Two catches. First, Chatwoot is hungry. It wanted more memory than everything else combined, so it ended up on its own server. Second, getting email replies to flow into the inbox took an evening of fiddling with settings I'd never touched before.
Verdict: switched, stayed.
Calendly โ Cal.com
How close: 9/10 ยท Setup: 3 hours
Booking links, calendar sync, reminders. It just works. The easiest swap on the list.
Verdict: switched, stayed.
ChatGPT โ Open WebUI (with an API key)
How close: 8/10 for chat ยท Setup: 3 hours
Open WebUI gives you a ChatGPT-style interface, and you pay per use through an API key instead of per seat. For the three people on our team who use AI a few times a day, it was perfect. Their combined usage cost about $30 a month.
For the two heavy users, it wasn't. They missed voice mode, memory, and the polish of the real app. And they burned through API credit fast.
Verdict: half and half. Three people switched, two kept their seats.
Loom โ Screenity and OBS
How close: 6/10 ยท Setup: 1 hour
Recording is 90% there. The missing 10% is the part that actually matters with clients: sending a link instantly and seeing that they watched it.
Verdict: switched for internal videos, kept one Loom seat for sales.
Canva โ Penpot
How close: 3/10 ยท Setup: 2 hours
This one isn't Penpot's fault. Penpot is a great open-source design tool, much closer to Figma than to Canva. But nobody on our team uses Canva for design. They use it for templates. Thousands of ready-made Instagram posts, decks, and thumbnails.
That library is the product, and there's no open-source version of it.
Verdict: kept Canva.
Ahrefs โ OpenSEO
How close: 2/10 ยท Setup: 1 hour
Same story, bigger gap. What you pay Ahrefs for isn't the software. It's their giant, constantly updated map of the internet's links and keywords. You can't install that on a $19 server.
Verdict: kept Ahrefs. (I cancelled the OpenSEO experiment in under an hour.)
Auth0 โ nothing at all
How close: 10/10 ยท Setup: 0 hours
I had Keycloak half-installed when I went back to Auth0's pricing page to check what exactly I was saving. Their free plan now covers up to 25,000 monthly active users. We have nowhere near that. I downgraded to free in two minutes and uninstalled Keycloak.
Tip: A full $70 of my monthly savings came from reading a pricing page. Before you self-host anything, check whether the free tier quietly got bigger since you signed up.
1Password โ didn't even try
Password managers are the one thing where I want someone else to be awake at 3am. More on that below.
Verdict: kept.
The One I Switched Back: Slack โ Mattermost
How close: 8/10 ยท Setup: 6 hours ยท Lasted: 5 weeks
Mattermost itself was great. Fast, familiar, did everything Slack did for our internal chat.
The problem wasn't the software. It was everybody else. Two of our clients talked to us through shared Slack channels. Our contractors were in Slack for their other clients. A couple of founder communities I rely on live in Slack.
So instead of replacing Slack, I'd added a second chat app, and half my team was now checking both. After five weeks, we moved back.
$36 a month to not have that conversation again felt like a bargain.
Watch out: Some tools aren't software, they're networks. You can copy the software. You can't copy the network.
The Hidden Costs
Here's what "free" actually cost to run every month:
- Main server (Hetzner, 16 GB RAM): $19
- Second server, just for Chatwoot: $10
- Automatic backups: $6
- File storage for uploads: $6
- Email sending service (you can't self-host email delivery reliably): $15
- AI API usage for the three Open WebUI users: $30
Total: $86/month
The Final Bill
And the SaaS I still paid for after all the switching and switching back:
- Ahrefs: $129
- Canva: $63
- ChatGPT (2 seats): $40
- Slack: $36
- 1Password: $20
- Loom (1 seat): $15
- Auth0: $0
Total: $303/month
New monthly bill: $389. Down from $647. That's $258 a month, or about $3,100 a year. A 40% saving.
Not bad. Not 100% either. But we're not done.
The Real Saving: My Time
Now add the most expensive item: me. I kept a rough log of every hour I spent keeping this stuff running.
- Setup across all tools: 40 hours (spread over three weekends)
- Ongoing maintenance: about 5 hours a month. Updates, checking backups actually restore, and two small fires: Chatwoot running out of memory one Tuesday, and an update that broke our n8n webhooks for half a day.
Let's be generous and value my time at $50 an hour. (If you're a founder, your time is probably worth more. If you're a developer billing clients, definitely more.)
- Monthly Cash saved: $258
- My maintenance time (5 hrs ร $50): -$250
- Real saving: $8/month
And that's before counting the 40 hours of setup, which at $50 an hour is $2,000 I will never earn back at $8 a month.
The server costs $19. I cost $250. So was it a waste? Not quite.
Why It Wasn't a Waste
Here's what changed my mind about the whole thing. Look at which tools saved money: Notion, Calendly, Loom, ChatGPT. They all charge per person. Every time you hire someone, the bill grows. My server doesn't care how many people use it. Maintenance takes roughly the same 5 hours whether there are 5 of us or 20.
So I ran the numbers for the same setup at 20 people:
| Team size | SaaS bills removed | Servers + API cost | My time | Real saving |
|---|---|---|---|---|
| 5 people | $344 | $86 | $250 | $8/month |
| 20 people | $923 | $161 | $300 | ~$460/month |
At 5 people, self-hosting is a hobby. At 20, it's about $5,500 a year back in your pocket. Same tools. Same servers. Same me. The only thing that changed is headcount.
The Rules I'd Follow If I Did It Again
- Self-host tools that charge per seat. Docs, wikis, scheduling, internal chat, automations. The bill grows with your team, the maintenance doesn't.
- Don't self-host anything where the data is the product. Ahrefs' link data. Canva's template library. You're not paying for software, you're paying for years of someone else's work that doesn't come with the code.
- Don't self-host networks. If your clients, contractors, or community are already there, you're not switching tools, you're asking everyone else to switch.
- Read the free tier before you do anything. Auth0 saved me $70 without me installing a single thing.
- Pass the 3am rule. This one gets its own section, because it's the rule that matters most.
The 3am Rule
If there's one idea from this whole experiment I'd tattoo on a founder's arm, it's this: If this tool breaking at 3am would wake you up, pay someone else to be awake.
Here's where it came from. One Tuesday night, Chatwoot ran out of memory and quietly died. Our live chat was down for about six hours. I found out at breakfast. And... nothing happened. The chat bubble didn't load, a couple of visitors emailed us instead, and that was it. No lost sales. No angry customers. I restarted it, gave the server more memory, and went on with my day.
Then I thought about Keycloak, the login system I almost installed instead of staying on Auth0. If that had died at 3am, none of our customers could log in. Support emails would pile up overnight. Some of those people would cancel. And the only person who could fix it was asleep.
That's when it clicked. When you pay for SaaS, you're not really paying for features. You're paying for a team of people whose job is to be awake when it breaks.
For some tools, that's a waste of money. For others, it's the whole point.
The Three Questions
Before self-hosting anything, I now ask:
- If it's down, can customers still log in, pay us, or reach us? If no, don't self-host it.
- If it's down for 8 hours while I sleep, what does it cost? "Some annoyed teammates in the morning" is fine. "Lost revenue" is not.
- If the data disappears, can we recreate it? A lost wiki page is annoying. A lost password vault is a catastrophe.
How Our Stack Scored
| Tool | Sleep through it (self-host is fine) | Might wake you (self-host, but add an alarm) | Will wake you (pay someone) |
|---|---|---|---|
| Notion โ AppFlowy | If the wiki is down, the team waits until morning. | ||
| Crisp โ Chatwoot | Proven the hard way. Visitors email you instead. | ||
| Calendly โ Cal.com | Worst case, someone books a call tomorrow instead of tonight. | ||
| Loom โ Screenity | Nobody records videos at 3am. | ||
| Zapier โ n8n | When our webhooks broke, it happened at 2pm and I noticed by luck. Now n8n messages me the moment a workflow fails. If you self-host automations, set this up on day one. | ||
| Auth0 | Nobody logs in, nobody uses your product. | ||
| 1Password | Lose it and you lose access to everything else. | ||
| Email delivery | If password resets and receipts stop arriving, you won't know until customers tell you. | ||
| Payments | Never. Not even a little bit. |
"Pay Someone" Doesn't Mean "Give Up on Open Source"
This was the part I got wrong at first. The 3am rule isn't open source vs. paid. It's self-hosted vs. someone else's problem.
A lot of open-source tools sell their own hosted version. Bitwarden, Cal.com, and plenty of others run the servers for you. You still get open code you can take with you if they ever raise prices or shut down, but when it breaks at 3am, it's their engineer's phone that rings, not yours.
For the tools that fail the 3am rule, that's usually the best of both worlds.
What I Actually Tell People Now
When a founder friend asks me "should I switch to open source to save money?", I don't say yes or no anymore. I ask two questions:
- How many people are on your team? Under 10, the savings are mostly imaginary once you count your time. Over 15, they're real.
- Do you
Comments
No comments yet. Start the discussion.