A Google-first gated booking platform for professionals.
Professionals can create a branded public page, qualify leads before access, connect multiple Google calendars for conflict checking, choose one calendar for confirmed bookings, and unlock bookings with static access codes.
- Click the badge above (or Code → Codespaces → Create codespace)
- Wait ~2 minutes while the container installs dependencies, migrates the DB, and seeds demo data
- The app opens automatically at the forwarded port 3000
- Log in with
john@example.comorsarah@example.com
Google Calendar & email — add
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET, andRESEND_API_KEYto the Codespace's secret settings (or edit.envinside the terminal) to enable those features.
Prerequisites: Node.js ≥ 20, PostgreSQL 14+
# 1. Clone and enter the project
git clone https://github.com/YOUR_GITHUB_USERNAME/YOUR_REPO_NAME.git gate
cd gate
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env
# Edit .env — at minimum set NEXTAUTH_SECRET and AUTH_SECRET
# 4. Create the database and run migrations
createdb gatekeeper # or create it via psql / pgAdmin
npx prisma migrate deploy
# 5. Seed demo data (optional but recommended)
npm run db:seed
# 6. Start the dev server
npm run devOpen http://localhost:3000.
Useful commands
| Command | What it does |
|---|---|
npm run dev |
Start the Next.js dev server |
npm run db:migrate |
Create a new migration after schema changes |
npm run db:studio |
Open Prisma Studio at localhost:5555 |
npm run db:seed |
Re-seed with demo data (wipes existing data) |
npm run typecheck |
Full TypeScript type check |
This product is not a generic scheduler.
It is an expert access-control system built around:
- qualification before booking
- controlled availability
- multi-calendar conflict checking
- static code validation instead of payments in V1
- automatic event creation after successful confirmation
- Next.js
- TypeScript
- Tailwind CSS
- Prisma
- PostgreSQL
- Zod
- React Hook Form
- Google Calendar API
- Resend
app/ # routes, pages, API endpoints
components/ # UI and feature components
lib/ # shared utilities, env, db, auth
server/ # services, repositories, validators, jobs
prisma/ # schema and migrations
types/ # shared TypeScript types
hooks/ # frontend hooks
public/ # static assets
tests/ # unit and integration tests
scripts/ # helper scripts