July 3, 2026
We Replaced HubSpot With a Custom CRM Built on Claude Code
An honest case study of replacing HubSpot with a custom CRM: what we built in a week of AI-assisted sessions, the real running costs, and who should try it.
By Ian Phillips, Founder & CEO, Phillips Data Solutions
Yes, an SMB can replace HubSpot with a custom CRM — we did it for our own business, and the entire build ran on an AI-assisted engineering workflow in about a week of working sessions. The result: multi-step email campaigns, open/click tracking, a leads inbox, LinkedIn scheduling, Microsoft Bookings sync, and single sign-on, running on infrastructure that costs less per month than one HubSpot seat. This post is the honest account — what we built, what it replaced, and who should (and should not) attempt the same.
Why We Left
We were on HubSpot Starter. It is a genuinely good product, and for many teams it is the right answer. Our problem was structural, not cosmetic:
- The meter only goes up. Starter is cheap per seat, but every capability we actually wanted — sequences with real analytics, campaign attribution, workflow automation — lives one or two tiers up. The upgrade path jumps to hundreds of dollars a month.
- Our data lived in someone else's schema. Every report, every integration, every experiment had to fit HubSpot's model of the world.
- We are an automation consultancy. Running our own pipeline on rented workflows is like a builder renting a house — defensible, but a missed proof point.
That third reason was the tiebreaker. This is the exact scenario from our build vs. buy decision framework: the workflow is core to how we compete, the volume economics favor owning, and we have an obvious path to maintain it.
What We Built
One Next.js application, one Postgres database, deployed on managed cloud infrastructure — no servers to babysit:
- CRM core: contacts, companies, deals on a kanban pipeline, global search, activity timelines.
- Email marketing: multi-step campaigns with per-step delays, a rich-text step editor with live preview, per-step and full-funnel analytics, daily send caps, and rate throttling.
- Sending via Microsoft Graph: campaign email goes out through our own Microsoft 365 mailbox — the same domain reputation as our regular mail, no third-party sending service.
- Reply and bounce hygiene: the system reads the mailbox, detects replies and bounces, stops sequences automatically, and honors unsubscribes within the hour.
- A leads inbox: the website contact form posts straight into the CRM for review — approve to create a contact, reject to archive.
- LinkedIn company-page scheduling with a content calendar and draft library.
- Microsoft Bookings sync: booked meetings become contacts and timeline events automatically.
- Ops-grade plumbing: a status dashboard, failure alerting by email, send retries with backoff, and a global do-not-contact suppression list.
- Sign-in through Microsoft Entra SSO — no separate password to manage, MFA included.
Monthly run cost: effectively the hosting free tier plus a managed Postgres — under $25/month, flat, regardless of contact count or email volume.
What It Actually Took
The honest ledger. This was not a weekend hack, but it was also not a six-month engagement:
- Roughly a week of focused build sessions, using the same AI-assisted engineering pattern we described in Building Custom Internal Tools With Claude Code in One Day — scoped features, verified builds, shipped in small batches.
- Deliverability engineering was the hardest part — not the CRUD screens. Email scanners, Apple Mail privacy features, and bot traffic will lie to your analytics unless you screen them out. That problem was interesting enough that we wrote it up separately.
- Ongoing ownership is real. API versions sunset, OAuth secrets expire, schemas evolve. We budget a few hours a month. If nobody on your side can own that, weigh this against the maintenance question in the build-vs-buy framework before you start.
Who Should Do This
The same rules we give clients apply here:
- Graduate when the meter hurts. If you are hitting the ceiling of a starter tier and the next tier is a 5–10x price jump for features you could own outright, you are in the zone we mapped in When to Graduate from Zapier to a Custom AI App.
- Own what differentiates you. A custom CRM makes sense when your pipeline process is your edge — or when owning the data unlocks automation a SaaS schema will not allow.
- Buy what is commodity. We still use Microsoft 365 for mail, calendar, and identity rather than rebuilding any of it. The custom layer sits on top of boring, reliable rented infrastructure.
The Bottom Line
Replacing HubSpot with a custom CRM went from "consulting-firm fantasy" to "a week of disciplined AI-assisted engineering" faster than most SMBs have noticed. It is not for everyone — a maintained product beats an orphaned custom app every time — but if the economics and ownership questions point "build," the build bar is far lower than it was even a year ago.
Want the break-even math for your own stack? Run it in our ROI calculator.
Ready to automate? Start a free discovery at www.phillipsdatasolutions.com/contact
Ready to automate?
Start a free discovery at www.phillipsdatasolutions.com/contact — we'll map your highest-ROI automation opportunities in 30 minutes.
Book Free Discovery