Self-Hosted CRM vs. SaaS: Real Numbers From an Agency Owner

This is a self-hosted CRM vs. SaaS comparison with real numbers from someone who made the switch. If you're researching self-hosted CRM software, these are the actual costs, tradeoffs, and hosting details from running a self-hosted CRM for my own agency.
I was paying $297/month for my CRM. That's $3,564/year before I added a single extra seat or bolted on the integrations that made it actually usable.
Then my platform pushed an update that quietly broke a flow I'd spent weeks tuning for clients. Monday morning came and dozens of forms were messed up and I was the one explaining it to someone who didn't care whose fault it was.
That was the moment I stopped pretending the platform was mine. I was renting a business on top of someone else's roadmap, and every month I paid for the privilege of hoping they wouldn't change something I depended on.
The math stopped working in my head. I kept thinking about how many hours I'd lost reverse-engineering their updates instead of building anything for myself or my clients.
So I started self-hosting my CRM.
What self-hosting actually means
Let me be clear about what this is and isn't.
Self-hosting your CRM means you deploy the software on infrastructure you control. You're responsible for updates, uptime, backups, and troubleshooting. No vendor is going to push a fix for you at 2 AM. If something breaks, you fix it or you wait until morning.
This is NOT a product for someone that's not ready to take on that responsibility. There's a big gap between being frustrated with a software and taking ownership of managing and self-hosting. If you're not there yet, there's definitely value in not switching.
I want to be upfront about that because I'm tired of vendors pretending there are no tradeoffs.
The math is simple
One payment replaces $3,564/yr in SaaS fees. Hosting runs $0-200/mo. You keep the difference, plus you own the code.
See what's includedThe real hosting costs
Through the entire development and self-testing process, I have not gone above the free tier for hosting. Here's how costs scale based on actual usage:
Solo operator or small team (1-5 users, light use):
- Hosting: $0-25/month
- Most providers have free tiers that cover this
Growing agency (10-20 users, moderate use):
- Hosting: $25-100/month
- You'll start to see database costs appear at this level
Busy agency (20+ users, heavy daily use):
- Hosting: $100-200/month
- This is the ceiling for most agencies. You'd need serious volume to push past this
Compare that to the SaaS alternative: $297/month base + $97 per extra seat. A 10-person team on SaaS costs $1,267/month. The same team self-hosted costs maybe $50-100/month in infrastructure. I mapped out the full 5-year comparison in What Your CRM Actually Costs Over 5 Years.
What you need to get started
Keep in mind this IS some assembly required. You will have to self-host this and you will want to at least be somewhat comfortable with using Claude Code or another coding tool.
Here's the realistic setup list:
- A hosting provider - Railway, Vercel, or any platform that supports Node.js
- A database - PostgreSQL (many providers include a free tier)
- Domain and DNS - Your own domain pointed at your deployment
- Email service - Resend, Postmark, or similar for transactional email
- 2-4 hours of setup time - Following the included setup guide with Claude Code
The setup isn't a weekend project like some vendors claim, but it's not a month-long ordeal either. With the documentation included, most technically comfortable people can get a working deployment in an afternoon.
What broke (and how I fixed it)
I'd be lying if I said nothing went wrong. Here's what actually happened:
OAuth configuration was the biggest pain point. Connecting Google, Microsoft, and other providers requires creating developer apps and managing credentials. It's not hard, just tedious and poorly documented by the providers themselves.
Email deliverability takes some initial configuration. You need to set up SPF, DKIM, and domain verification. Skip this and your emails land in spam.
The first deployment took longer than expected because I was learning the hosting platform's quirks at the same time. The second deployment (when I set up my personal agency instance) took about 90 minutes.
None of these were problems with the CRM itself. They were infrastructure configuration tasks that you do once and never touch again.
The one thing I gave up
Automatic updates.
On a SaaS platform, features appear without you doing anything. That sounds great until you remember that broken features also appear without you doing anything. And the features they add aren't always the ones you wanted (I really wish they would focus on CRM functionality instead of trying to remake Zoom and Lovable).
With self-hosting, YOU decide when to update. You review the changes, test on a staging environment if you want, and deploy when you're ready. No surprises.
I consider this a feature, not a loss. But if you want zero maintenance and don't mind the tradeoff of zero control, SaaS is the right choice for you. If you're on the fence, I explain why forking beats building from scratch.
Year 1 vs. Year 5 cost comparison
| SaaS (5-person team) | Self-hosted | |
|---|---|---|
| Year 1 | $9,528 (sub + 3 seats) | $1,499-3,000 (code + hosting + setup) |
| Year 2 | $9,528 | $300-1,200 (hosting only) |
| Year 3 | $9,528 | $300-1,200 |
| Year 4 | $9,528 | $300-1,200 |
| Year 5 | $9,528 | $300-1,200 |
| 5-year total | $47,640 | $2,700-7,800 |
And the SaaS number assumes no price increases, no additional seats, and no add-on tools. In reality, it's higher.
When I would NOT recommend self-hosting
- If you're a solo non-technical operator who just wants to manage contacts and send emails, a simple SaaS CRM is probably fine
- If your agency is scaling fast and you don't have anyone comfortable with deployment tools, the maintenance overhead will feel like a burden
- If you genuinely don't mind the monthly cost and value having someone else handle infrastructure
There's no shame in paying for convenience. The question is whether you're paying for convenience or paying because you don't realize there's another option.
The bottom line
You will retain ownership of the full codebase and will save yourself close to 900+ hours (and hundreds of dollars of tokens) I spent building this.
May you be able to use this as a springboard to build something that gives you complete control. Or rip everything apart and resell it for profit. I don't really care as long as it helps you move forward.
One payment. Full source code. Unlimited seats. Yours forever.
If you also want to resell your CRM to clients, read The White-Label CRM Playbook. And if your CRM data has been accumulating unchecked, start with the Saturday data audit before you migrate anything.
Cut the strings.
Own your CRM for less than 4 months of SaaS
One payment. Full source code. Unlimited seats. Deploy on your own infrastructure and never pay per-seat again.


