Case Study · Internal Build
Peak: a full revenue platform in 6 weeks.
We needed a tool to run our agency — manage clients, capture missed-call leads, draft review responses, generate SEO content, run cold outreach, and bill clients. Off-the-shelf, that's eight separate SaaS tools costing $800+/month and integrated together with duct tape. So we built our own.
Timeline
6 weeks
Solo build
SaaS replaced
8 tools
$800+/mo
Year 1 savings
$9,600
vs. SaaS stack
DASHBOARD · Sample preview
Today's overview.
Revenue · MTD
$48,200
▲ +12% MoM
Active deals
14
$96K pipeline
Open invoices
6
$8,400 due
New leads
23
This week
Customers
187
+9 this month
Reviews · 30d
+42
4.8★ avg
Revenue trend
MRR One-timeLive activity
- New lead — Sample Co.
- Invoice paid · $2,450
- 5★ review collected
- Booking confirmed
Recent leads
View all →- NEWSample Co.Form · today
- CALLAcme Inc.Voicemail · 2h
- REFBluesky LLCReferral · 5h
- QUALNova GroupAuto-qualified
Today's tasks
View all →- Follow up · Sample Co. By 3pm
- Send proposal · Acme By 5pm
- Onboard · Bluesky In progress
- Review · Nova invoice Done
Recent reviews
All →- ★★★★★Customer reviewReplied · 1h
- ★★★★★Customer reviewReplied · 28m
- ★★★★☆Customer reviewPending
- ★★★★★Customer reviewReplied · 4h
Sales pipeline
Weighted forecastThe problem
Running a service business means juggling tools that weren't built to talk to each other. CRM in HubSpot. Phone in Twilio. Reviews in Podium. Email in Mailchimp. Invoicing in QuickBooks. Booking in Calendly. Notes in Notion. Cold outreach in Apollo. Eight subscriptions, eight logins, eight places where data lives in slightly inconsistent shapes.
The cost wasn't just the $800/month — it was the hours every week copying data between tools, the deals lost when a missed-call notification got buried, and the impossibility of seeing one customer's full history in one place.
What we built
- ✓
Multi-tenant CRM
Contacts, deals, notes, activity timeline. Multiple businesses can use the same instance with full isolation via Clerk Organizations.
- ✓
Missed-call text-back
Twilio webhook fires the moment a call is missed. Auto-text within 10 seconds. Conversation continues over SMS, qualified leads land in the dashboard.
- ✓
Reviews engine
Send review requests after every job. Draft on-brand responses for every incoming review with one-click approval. Negative-review interception via private feedback funnel.
- ✓
SEO content factory
Generate blog posts and landing pages tailored to target keywords. Tracks how often ChatGPT, Claude, and Perplexity recommend the business in answers (the new SEO).
- ✓
Cold outreach engine
Lead scraping via Google Places, on-brand email drafting, scheduled sends with daily caps and warmup. Multi-mailbox support.
- ✓
Ad creative studio
Generate ad images, carousels, and stories for Instagram, Facebook, LinkedIn, YouTube. Pick a format, describe the offer, ship it.
- ✓
Stripe billing & invoicing
Full invoice flow: create, finalize, send, sync via webhook. Auto-add 3% processing fee so the customer covers Stripe's cut.
- ✓
Email warmup engine
Connect Gmail/Outlook mailboxes, send real emails between them every 30 min, build sender reputation organically before launching cold campaigns.
INVOICES · Sample preview
Get paid clean.
Paid this month
$24,500
12 invoices
Outstanding
$8,400
6 open
Overdue
$0
All current
Avg days to pay
2.4
▼ vs last qtr
Optional: pass card processing fee to customer · auto-mark paid via Stripe webhook · invoices auto-generated from quotes
COLD OUTREACH
Lead generation machine.
Prospects
147
+18 today
Audited
89
+12 today
Contacted
42
28 last 7d
Reply rate
5.2%
▲ +1.8%
Recent activity
- Replied — Cactus Dental
- Sent — Sun Valley HVAC
- Audit complete — Acme Plumbing
- Sent — Lakeforest Auto
- Replied — Verde Salon
Mailbox health
- noah@desertpeakco.com
- andrew@desertpeakco.com
- hello@desertpeakco.com
Active campaigns
+ New campaignThe stack
Modern, typed, production-grade. Same stack we use for every client build.
The economics
SaaS we'd be paying
- HubSpot CRM Starter — $50/mo
- Calendly — $16/mo
- Podium — $300/mo
- Mailchimp Standard — $35/mo
- Apollo (cold outreach) — $99/mo
- Birdeye — $300/mo
- Notion Team — $20/mo
- QuickBooks invoicing — $30/mo
~$850/mo
Peak running cost
- Vercel hosting — $0-20/mo
- Turso DB — $0/mo (free tier)
- Clerk auth — $0/mo (free tier)
- Twilio (per-message) — ~$10/mo
- Resend — $0/mo (free tier)
- Stripe — % of revenue only
~$30/mo
What we learned
- A custom build replaces SaaS feature-for-feature in the parts that matter — and ignores the 60% of features you'd never use anyway.
- The build paid for itself in month one once we factored in time saved (no more copy-paste between tools).
- Owning the data is the real win. Every customer's full history is in one database we control. Export anytime, no platform lock-in.
- This is the same playbook we use for clients: identify the SaaS bloat, scope a custom replacement, build in 3-8 weeks.
Want one for your business?
If you're paying $500+/mo for SaaS that does 60% of what you actually need, the math probably works for you too. Free audit first — we'll tell you honestly.