From the blog

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

I stopped renting my CRM and started hosting my own. Here's what it actually costs, what broke, and whether I'd do it again.

Andrew Lee Jenkins7 min readEconomics
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 own the source code and deploy it on infrastructure you control. The backend runs on Convex Cloud by default, so the database, backups, and scaling are managed for you and the day-to-day stays light. What you actually own is the code and the decision of when to update. No vendor is going to push a change to your build at 2 AM, and if something needs fixing, you fix it instead of filing a ticket and hoping.

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.

Own it, don't rent it

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 included

The 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.

Checklist of five requirements for self-hosting a CRM: hosting, database, domain, email service, and setup time

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:

  1. A backend - Convex Cloud runs your database, server functions, and auth in one managed service. The free tier covers a small agency, and there is a self-hosted Convex runtime if you want to own that layer too.
  2. Frontend hosting - Vercel, where the app itself lives. The free tier is plenty to start.
  3. Domain and DNS - Your own domain pointed at your deployment
  4. Email service - Resend, Postmark, or similar for transactional email
  5. 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.

Cumulative Cost: SaaS vs Self-Hosted Over 5 Years

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. Plant it once.

One payment, full source code, unlimited seats. No subscription you rent until the day you stop paying.