Skip to content
codexa

SaaS · React

Appointment scheduling

Marketing site for a booking-link tool with a live calendar mock, pricing, setup steps and an FAQ.

Appointment scheduling starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

A product site for an appointment scheduling app: a hero with today's bookings, features, a three-step setup, a reminders section, monthly pricing, customer quotes and an FAQ. All content lives in src/site.ts.

Files

Exactly what is copied into a new project: 13 files, nothing generated.

Raw data: GET /api/v1/templates/saas-scheduling

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Slotwise",  "nav": [    {      "label": "Features",      "href": "#features"    },    {      "label": "How it works",      "href": "#how"    },    {      "label": "Pricing",      "href": "#pricing"    },    {      "label": "FAQ",      "href": "#faq"    }  ],  "navCta": {    "label": "Start free",    "href": "#start"  },  "sections": [    {      "kind": "hero",      "variant": "split",      "eyebrow": "Scheduling for people who meet clients",      "title": "Share one link. Stop trading emails about Tuesday.",      "text": "Clients pick a time that is actually free across your calendars, pay a deposit if you ask for one, and get a reminder the day before. You get your afternoons back.",      "primary": {        "label": "Create your booking page",        "href": "#start"      },      "secondary": {        "label": "See pricing",        "href": "#pricing"      },      "visual": {        "type": "mock",        "title": "Today · Thursday 14 May",        "rows": [          {            "label": "09:30  Intro call · Dana Whitfield",            "value": "30 min",            "tone": "#0f766e"          },          {            "label": "11:00  Follow-up · Marcus Lee",            "value": "45 min",            "tone": "#0f766e"          },          {            "label": "13:15  Buffer (auto)",            "value": "15 min",            "tone": "#94a3b8"          },          {            "label": "14:00  Strategy session · Ines Varga",            "value": "Deposit paid",            "tone": "#047857"          },          {            "label": "16:30  Rescheduled by client",            "value": "Moved to Fri",            "tone": "#b45309"          }        ],        "footer": "3 open slots left this week · Reminders sent at 9:00"      },      "note": "Free for one calendar and one booking type. No card needed."    },    {      "kind": "features",      "id": "features",      "eyebrow": "Features",      "title": "The boring parts of booking, handled",      "text": "Everything a consultant, tutor or clinic needs to take bookings without a receptionist.",      "columns": 3,      "items": [        {          "title": "Calendar sync",          "text": "Connects to Google, Outlook and iCloud calendars and checks all of them before offering a slot.",          "icon": "calendar"        },        {          "title": "Buffers and limits",          "text": "Add breathing room between meetings and cap how many bookings you take in a day.",          "icon": "clock"        },        {          "title": "Time zones, solved",          "text": "Visitors see slots in their own time zone. Confirmations show both.",          "icon": "globe"        },        {          "title": "Deposits and no-show fees",          "text": "Take a card at booking and charge only if someone misses the appointment.",          "icon": "lock"        },        {          "title": "Reminders by email and SMS",          "text": "Sent 24 hours and 1 hour before, with a one-tap reschedule link.",          "icon": "mail"        },        {          "title": "Team routing",          "text": "Round-robin or by specialty, so new enquiries land with the right person.",          "icon": "users"        }      ]    },    {      "kind": "steps",      "id": "how",      "eyebrow": "How it works",      "title": "Live in about ten minutes",      "items": [        {          "title": "Connect your calendar",          "text": "Slotwise reads your busy times only. It never shows event details to visitors."        },        {          "title": "Set your hours and meeting types",          "text": "Choose lengths, buffers, questions to ask and whether to take a deposit."        },        {          "title": "Share your link",          "text": "Put it in your email signature, on your site, or send it after a first call."        }      ]    },    {      "kind": "split",      "eyebrow": "Fewer no-shows",      "title": "Reminders that people actually read",      "text": "Short, plain messages with the time in the client's own zone and a link to move the meeting instead of skipping it.",      "bullets": [        "Custom wording per meeting type",        "Reschedule link respects your availability",        "Weekly digest of upcoming bookings"      ],      "visual": {        "type": "card",        "tone": "#134e4a",        "title": "Reminder · tomorrow 14:00",        "lines": [          "Strategy session with Ines",          "Video link attached",          "Need to move it? One tap"        ]      },      "reverse": true    },    {      "kind": "pricing",      "id": "pricing",      "eyebrow": "Pricing",      "title": "Simple monthly plans",      "text": "Prices per user, billed monthly. Cancel any time.",      "plans": [        {          "name": "Solo",          "price": "$0",          "period": "/month",          "text": "For trying it out or light use.",          "features": [            "1 calendar",            "1 booking type",            "Email reminders"          ],          "cta": {            "label": "Start free",            "href": "#start"          }        },        {          "name": "Pro",          "price": "$12",          "period": "/month",          "text": "For people who book clients every day.",          "features": [            "6 calendars",            "Unlimited booking types",            "SMS reminders",            "Deposits and no-show fees"          ],          "featured": true,          "cta": {            "label": "Try Pro free for 14 days",            "href": "#start"          }        },        {          "name": "Team",          "price": "$20",          "period": "/month",          "text": "For practices and small agencies.",          "features": [            "Everything in Pro",            "Round-robin routing",            "Shared team page",            "Admin controls"          ],          "cta": {            "label": "Set up a team",            "href": "#start"          }        }      ]    },    {      "kind": "quotes",      "eyebrow": "From customers",      "title": "Less admin, more appointments",      "items": [        {          "quote": "I used to spend Monday mornings confirming the week. Now the confirmations go out without me.",          "name": "Hannah K.",          "role": "Physiotherapist"        },        {          "quote": "The deposit option cut our no-shows roughly in half within a couple of months.",          "name": "Óscar P.",          "role": "Owner, tutoring practice"        },        {          "quote": "Clients in three time zones and nobody has turned up an hour early since.",          "name": "Leah M.",          "role": "Independent consultant"        }      ]    },    {      "kind": "faq",      "id": "faq",      "eyebrow": "FAQ",      "title": "Questions, answered",      "items": [        {          "q": "Can visitors see what's in my calendar?",          "a": "No. Slotwise only reads whether a time is busy or free. Titles, attendees and notes stay private."        },        {          "q": "Which payment providers do deposits use?",          "a": "Deposits go through your own Stripe account, so money lands with you directly."        },        {          "q": "Do SMS reminders cost extra?",          "a": "Pro and Team include 300 SMS per user each month. Beyond that, texts are billed at cost."        },        {          "q": "Can I embed the booking page on my site?",          "a": "Yes. Copy a snippet for an inline calendar or a pop-up button."        }      ]    },    {      "kind": "cta",      "id": "start",      "title": "Your next booking can be the first one you didn't chase",      "text": "Set up your page now and send the link with your next email.",      "primary": {        "label": "Create your booking page",        "href": "#pricing"      },      "secondary": {        "label": "Read the FAQ",        "href": "#faq"      }    }  ],  "footer": {    "text": "Booking pages, reminders and deposits for independent professionals.",    "columns": [      {        "title": "Product",        "links": [          "Features",          "Pricing",          "Integrations"        ]      },      {        "title": "Company",        "links": [          "About",          "Contact",          "Status"        ]      }    ],    "legal": "© Slotwise. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Appointment scheduling's files. The box is already started for you: finish “Start from Appointment scheduling and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates
  • Error monitoring

    Dark developer-focused site for an error tracking tool with a live issues mock, SDK steps and pricing.

    React · 13 files · Beginner

  • Product analytics

    Crisp site for a product analytics tool with a funnel mock, retention features, event pricing and FAQ.

    React · 13 files · Beginner

  • Featured

    SaaS starter

    Marketing pages, sign-in and sign-up screens, and an authenticated app area with a mocked session you replace with real auth.

    React · 18 files · Intermediate

Build on Appointment scheduling

Create a free account, start from this template, and ask the AI agent to turn it into your app.