# How to Vibe Code Your Own Setmore (and Stop Paying for It)

> Free online appointment scheduling software

- Site: https://setmore.com
- Category: Scheduling & Business Management
- Verdict: **Solid side project** (72/100 vibecodeable)
- Estimated effort: 2-3 weeks part-time

## Verdict

You can build a fully functional personal scheduling clone, but integrating reliable two-way calendar sync and real-time concurrency control requires patient engineering.

Replicating the core loop of Setmore—a public booking page feeding a multi-staff calendar with automated emails and payment prompts—is an achievable task for a solo developer using AI coding agents. However, you will hit friction when wiring up two-way calendar synchronization with Google and Microsoft without hitting webhook loops or rate limits, and handling atomic time-slot booking transactions under concurrency will test your database design.

### What you can't replicate

- Setmore's established brand equity and high organic search presence
- Pre-built enterprise compliance frameworks (HIPAA BAA execution)

## What it does

An online appointment scheduling and business management platform designed for service-based businesses to handle self-booking pages, multi-staff calendars, and automated reminders.

### Core features

- Public-facing custom booking pages with service menus and staff selection
- Centralized multi-staff calendar management and working hours configuration
- Real-time appointment slot availability calculation
- Automated email and SMS appointment reminders
- Two-way external calendar synchronization (Google Calendar, Outlook)
- Integrated online and in-person payment processing via Stripe or Square
- Virtual meeting link generation (Zoom, Google Meet)
- Role-based staff permissions and admin controls

## The business

### Pricing

- Free: $0/mo
- Pro: $5/mo

Founded 2011.
Team size: 11-50.

## The hard parts

- Real-time concurrency control and locking for multi-staff scheduling to prevent double-booking during concurrent booking attempts
- Two-way calendar sync engine handling webhook loops, token refreshes, timezone offsets, and external conflict resolution
- Multi-provider payment webhook orchestration for upfront deposits, captures, and status updates

## How to vibe code Setmore

### Prerequisites

- Node.js (free): Runtime environment for building and executing the full-stack web application.
- GitHub (free): Repository hosting and version control for AI agent-driven iteration.

### Recommended AI tools

- Claude Code: Agentic CLI tool capable of planning, executing multi-file changes, and iterating on complex database and API logic.
- Cursor: AI-native code editor for reviewing code diffs and refining UI components across the booking flow.

### Stack

- Frontend: Next.js
- Backend: Next.js API routes
- Database: Turso
- Auth: better-auth
- Payments: Stripe
- Other: Tailwind CSS, Resend

### Hosting

- Cloudflare (Hosting the Next.js application frontend and API endpoints via edge workers.): $0-5/mo

### Build guide

1. **Project Scaffolding and Database Schema** — Initialize a Next.js project with Tailwind CSS, configure Turso for SQLite storage, and set up relational schemas for users, staff, services, and appointments.

```
Scrape together a new Next.js project configured with TypeScript, Tailwind CSS, and Drizzle ORM targeting Turso. Build a normalized relational schema with the following tables: users (id, email, name, role), staff_profiles (id, user_id, bio, working_hours JSON), services (id, title, duration_minutes, price, staff_id), and appointments (id, service_id, staff_id, customer_name, customer_email, start_time, end_time, status, payment_status). Implement strict typing and database migration scripts. Ensure all datetime fields use UTC timestamps to avoid timezone desynchronization during booking.
```

2. **Authentication and Multi-Tenant RBAC** — Implement authentication using better-auth and establish role-based access control separating admins, staff members, and clients.

```
Integrate better-auth into the Next.js app supporting email/password and magic links. Implement middleware and server actions to enforce role-based access control: 'admin' users can manage all staff and services, 'staff' users can view and edit their own calendar schedules, and unauthenticated public users can only access public booking pages. Create clear login, registration, and onboarding flows with proper error handling and session state management.
```

3. **Staff Calendar and Availability Engine** — Build the internal calendar dashboard and the core availability calculation engine that prevents double-booking under concurrency.

```
Build a multi-staff calendar view dashboard in Next.js using a responsive grid layout. Implement a robust backend availability engine service that calculates open time slots for a given staff member and service on a specific date, factoring in staff working hours, scheduled breaks, time-off exceptions, and existing confirmed appointments. Use database transactions with serializable isolation or explicit row-level locking when booking an appointment to ensure concurrent user booking attempts for the exact same slot fail gracefully without double-booking.
```

4. **Public Booking Page and Customization** — Create a public-facing client booking portal with service menus, staff selection, slot picking, and branding customization.

```
Develop a responsive public-facing booking portal accessible via unique slugs (e.g., /book/[business-slug]). The page must render the business logo, brand color accents, service menu categories, and staff profiles. Build a multi-step booking wizard where clients select a service, pick a staff member (or 'any available'), choose an open calendar slot from live availability, and enter their contact details. Ensure mobile responsiveness and clean UI design matching modern SaaS standards.
```

5. **Automated Notifications and Reminders** — Integrate Resend and Twilio to trigger instant booking confirmations, reschedule links, and automated reminders.

```
Integrate Resend for transactional email notifications and Twilio for SMS reminders. Implement server-side background job hooks that trigger an immediate confirmation email with a secure reschedule/cancellation token link whenever an appointment is booked. Set up cron endpoints secured by secret tokens to scan for upcoming appointments and dispatch reminder notifications 24 hours and 2 hours prior to start time.
```

6. **Payment Processing Integration** — Integrate Stripe Checkout to require upfront payments or deposits during the client booking flow.

```
Integrate Stripe Checkout into the booking wizard. Add settings allowing businesses to toggle whether a service requires full payment or a deposit upfront. When a booking requires payment, create a Stripe Checkout session server-side, redirect the client to Stripe, and handle the asynchronous webhook event (checkout.session.completed) to confirm the appointment status and record payment details in the database securely and idempotently.
```

### Cost vs paying

**Starting costs (one-time):**

- Custom domain registration: $12 one-time
- Total: ~$32 one-time

**Ongoing costs (monthly):**

- Cloudflare hosting & Turso database: $0/mo (Free tier limits)
- Twilio SMS & Resend email usage: ~$5/mo
- Total: ~$5/mo

- Paying for the SaaS instead: $5/mo per user
- Build time: 40-60 hours
- AI tool credits: $20 (Claude Code / Cursor Pro)
- Break-even: N/A (Built for personal/learning use)

## Sources

- [Setmore Official Website & Marketing Pages](https://setmore.com)
- [Tracxn - Setmore Company Profile](https://tracxn.com)