Client: Solo therapist trying to replace Calendly. Needed custom features Calendly doesn't offer. Budget: $2,500. Timeline: 3 days. Result: Fully functional SaaS with 12 paying customers in week one.
This is the complete breakdown. Timeline, tech stack, costs, problems we hit, and actual results.
The Client's Problem
Sarah (therapist, licensed 8 years) was paying $12/month for Calendly Pro. But Calendly couldn't:
- Let clients book same-day appointments (insurance requirement)
- Send automated intake forms before first session
- Block certain appointment types on specific days
- Integrate with her practice management software (TherapyNotes)
- White-label the booking page with her branding
She'd looked at custom development. Got quoted $15K-25K with 6-8 week timelines. Way outside her budget.
She found ShipKit through a therapist Facebook group. Recorded a 4-minute voice note explaining what she needed. We sent a proposal in 5 hours.
Her Exact Requirements
- ✅ Calendar integration (Google Calendar)
- ✅ Custom availability rules by appointment type
- ✅ Automated intake forms sent via email
- ✅ Same-day booking allowed
- ✅ Payment processing (Stripe)
- ✅ White-labeled booking page
- ✅ TherapyNotes API integration
- ✅ Client cancellation/rescheduling
- ✅ Email/SMS reminders
The Tech Stack
We chose tools for speed and reliability:
Stack Breakdown:
Why these choices?
- Next.js 14: Fast to build, great DX, serverless API routes
- Prisma: Type-safe database queries, migrations handled automatically
- Supabase: Managed Postgres, generous free tier, built-in auth (we used NextAuth instead)
- Vercel: Zero-config deployment, edge functions, automatic HTTPS
Day 1: Core Booking System (8 hours)
Started at 9 AM. First priority: basic booking flow.
Hours 1-3: Database Schema
Designed Prisma schema for Users, Appointments, AppointmentTypes, Availability, Clients. AI generated the initial schema. I reviewed, added indexes and constraints, ran migrations.
Hours 3-5: Booking UI
Built the client-facing booking flow: Select appointment type → Pick date → Choose time → Enter details → Pay → Confirm. Used AI to generate the UI components, I adjusted styling for Sarah's branding (purple/teal palette).
Hours 5-8: Availability Logic
The complex part. Sarah's availability changes by day and appointment type. AI helped implement the logic: check provider availability → filter by appointment type rules → exclude booked slots → return available times. Tested edge cases (same-day booking, timezone handling, buffer times).
"I gave AI detailed requirements: 'Implement availability calculation that respects provider weekly schedule, appointment-type-specific rules, buffer times between appointments, and same-day booking allowances. Return available slots in client's timezone.'"
By end of Day 1: Clients could see available times and select slots. No payment yet. No calendar integration. But the core booking logic worked.
Day 2: Integrations and Payments (10 hours)
Day 2 was integration hell. APIs, webhooks, error handling.
Hours 1-3: Stripe Integration
Stripe Checkout for payments. Webhook handler for successful payments (creates appointment, sends confirmation email, triggers calendar event). Tested with Stripe test mode. Handled edge cases (payment fails, user abandons checkout, duplicate webhooks).
Hours 3-6: Google Calendar API
OAuth setup so Sarah could connect her Google Calendar. When appointment is booked, create event on her calendar with client details. When client cancels, delete event. Syncing was tricky—had to handle rate limits and connection failures gracefully.
Hours 6-8: TherapyNotes Integration
TherapyNotes has a REST API (documentation is rough). After appointment booked, create client record in TherapyNotes with basic info. Sarah can then complete intake in their system. Had to reverse-engineer some undocumented API behavior.
Hours 8-10: Email System
Set up Postmark for transactional emails. Templates for booking confirmation, cancellation, rescheduling, reminders. Sarah reviewed copy, I made adjustments. Added intake form link to confirmation email (Google Forms for MVP, can build custom forms later).
By end of Day 2: Full booking flow worked end-to-end. Payment → Calendar event → TherapyNotes record → Confirmation email. Tested 15+ bookings in test mode. All integrations working.
Day 3: Admin Dashboard and Polish (8 hours)
Final day: Give Sarah control over her system.
Hours 1-4: Admin Dashboard
Built dashboard for Sarah: view upcoming appointments, manage availability, configure appointment types (name, duration, price, availability rules), view revenue stats, export data to CSV. Clean UI, easy to use.
Hours 4-6: Client Portal
Clients can log in (magic link auth) to view their appointments, cancel/reschedule, update contact info. Simple, mobile-friendly.
Hours 6-8: Final Testing and Deployment
Tested every flow. Found and fixed bugs (timezone edge case, calendar sync race condition, email template typo). Set up custom domain (booking.sarahtherapy.com). Deployed to Vercel production. Monitored first few hours for errors.
Launch Checklist
- ✅ All integrations tested (Stripe, Google Calendar, TherapyNotes)
- ✅ Mobile responsive (tested on iPhone, Android, iPad)
- ✅ Email templates reviewed and approved
- ✅ Custom domain connected and SSL working
- ✅ Admin dashboard functional
- ✅ Error monitoring set up (Sentry)
- ✅ Database backups automated
- ✅ Privacy policy and terms of service added
72 hours after starting: Fully functional SaaS live in production.
The Costs (Real Numbers)
Complete breakdown of what we spent:
Development Costs:
Ongoing Costs (Sarah pays):
Sarah was paying $12/month for Calendly. Now she's paying ~$71/month but getting exponentially more value: custom features, white-labeled, full control, better client experience.
Week One Results
We launched on a Monday. Here's what happened in the first week:
First Week Metrics:
"This is exactly what I needed. My clients love how easy it is to book. I love that everything syncs automatically. Already recommended you to two other therapists."
— Sarah, Week 1 feedback
What We'd Improve
No project is perfect. Here's what we'd change if we rebuilt it:
- Better timezone handling: We tested US timezones thoroughly. Didn't consider international clients. Sarah got a booking from someone in UK, timezone display was confusing. Fixed in Day 4 (post-launch).
- More thorough TherapyNotes testing: Their API rate limits are aggressive. Didn't hit them in testing. Hit them on Day 3 when Sarah imported her existing client list. Added rate limiting and retry logic.
- Mobile optimization: Tested on a few devices but should've done more extensive mobile testing. One UI element was slightly off on smaller Android screens. Quick CSS fix.
- Admin onboarding: Should've built a guided setup wizard for first-time users. Sarah figured it out, but a step-by-step onboarding would've been smoother.
All minor issues. None were showstoppers. All fixed within days of launch.
The Follow-Up
Two weeks after launch, Sarah referred two therapist friends. We're building similar systems for both (with slight customizations). Each paying $2,500.
We're now exploring a white-label version for therapists. Same core system, multi-tenant architecture, $49/month subscription. If we get 50 therapists, that's $2,450/month recurring.
One client project turned into a potential SaaS business. That's the power of solving real problems for real people.
Key Takeaways
What Made This Work:
- 1. Clear requirements from the start. Sarah's 4-minute voice note was detailed. No scope creep. No confusion.
- 2. Right tools for the job. Next.js + Prisma + Vercel = fast development and reliable hosting.
- 3. AI for boilerplate, humans for logic. AI generated UI components, API routes, database queries. I reviewed everything, handled complex business logic, tested edge cases.
- 4. MVP mindset. Built exactly what Sarah needed. No extra features. No over-engineering. Ship fast, iterate based on real usage.
- 5. Real testing before launch. 15+ test bookings in every scenario. Caught bugs before real clients did.
Can You Build a SaaS in 3 Days?
Yes. But you need:
- Clear requirements (not "build me a SaaS")
- Right tech stack (modern, well-documented tools)
- AI for acceleration (not automation)
- Development experience (to review, test, debug)
- MVP focus (ship core features, iterate later)
If you have those, yes. 3 days is realistic.
If you're missing any, expect 2-4 weeks. Still way faster than traditional development.
This is vibe coding. AI does the heavy lifting. Humans provide the judgment. Together, we build software 10x faster than either could alone.