Quick Start

Welcome to Booky — a production-ready appointment & booking marketplace built with Next.js 16 (App Router), React 19, TypeScript, PostgreSQL and Tailwind CSS. This page gets you from a fresh download to a running site in about 15 minutes.

Booky ships as a vertical pack product: the engine is generic, and a pack supplies the vocabulary, fields, filters, master data and demo content for one business. The pack included is Healthcare — practitioners publish consultations, set weekly availability, and patients book an appointment slot and pay. Switching the pack changes every noun on the site (consultation → class, practitioner → chef, patient → guest) without touching engine code.

New here? Read Product Overview for the big picture, then come back to install.

What you need

  • Node.js 20+ and npm
  • A PostgreSQL database (we recommend Neon — Booky uses the @neondatabase/serverless driver)
  • About 15 minutes

Install in 4 steps

Terminal
# 1. Install dependencies
npm install

# 2. Create your environment file
#    Create .env.local with at least DATABASE_URL (JWT_SECRET / SECRET_KEY
#    are auto-generated by the install wizard's database step if unset).

# 3. Initialise the database (schema + seed)
npm run db:init

# 4. Start the dev server
npm run dev

Open http://localhost:3000. The first run launches the install wizard at /install — it walks you through the database check, admin account, and store settings.

Load the demo

Terminal
# Apply the vertical pack: master data, categories, fields, filters, copy
npx tsx scripts/apply-vertical.ts healthcare --yes

# Seed demo practitioners, consultations, availability, bookings and reviews
npm run vertical:demo

# Subscription plans for the demo hosts (cascades off hosts, so re-run after a re-seed)
npx tsx scripts/seed-plans.ts --hosts

# Storefront pages (privacy, cookies, terms, refunds, about) + notification templates
npx tsx scripts/seed-site-pages.ts
npx tsx scripts/seed-message-templates.ts

Demo logins — password Password@1:

Role Email
Practitioner (host) host1@bookydemo.com … host5@bookydemo.com
Patient (customer) guest1@bookydemo.com … guest5@bookydemo.com

The two booking mechanics

Mode How availability works Used by
slot The host sets weekly hours (availability_rules); slots are expanded on read and only become a row when booked. Healthcare, and any appointment business
seat The host publishes dated sittings (experience_sessions) with a seat count. Classes, tours, events

The active pack declares which one it uses; the booking engine, calendar and checkout follow.

Core environment variables

Variable Purpose
DATABASE_URL PostgreSQL connection string
JWT_SECRET Signs admin/customer session tokens
SECRET_KEY AES-256-GCM key that encrypts stored integration secrets
LICENSE_SERVER_URL License server (defaults to https://creative-cape.com)

See the Installation Guide for the full list and the License Guide for activation.

Where to go next


© CreativeCape Solutions · creative-cape.com · support@creative-cape.com