Section of the Booking and Scheduling App
The date and time selection step of the Bookly booking flow. A 3-column layout: the left column shows a selected service summary card (provider, service, price, location). The center column renders a monthly calendar for July 2026 with available dates marked by a soft blue dot and the selected date filled in blue. The right column shows time slot pills for the selected day, with unavailable slots greyed out.
Section preview
Paste the prompt into your AI coding tool and it builds just this section. Each version is scoped to the Booking Date and Time Picker, part of the Booking and Scheduling App.
Build the Booking Date and Time Picker step for a Next.js 14+ Bookly booking and scheduling app in Cursor. Design system: white background (#FFFFFF), black text on white, muted grey (#6B7280) for secondary text, brand blue (#2B65F6) reserved for primary CTAs only, Switzer font, font-medium max (never bold), 12-14px body copy, 16-20px headings, minimal line icons only. Layout: a 3-column layout inside a rounded-2xl bordered card: left column (200px) shows a service summary card with the provider name in a tinted rounded-xl block, and rows for service, price, and location; center column shows a monthly calendar (July 2026) with a grid of 7 columns (Mo-Tu-We-Th-Fr-Sa-Su header row), day cells that are either greyed out (past or unavailable), normal (available, with a small blue dot below the number), or selected (filled blue circle, white text); right column (160px) shows time slot pills stacked vertically: available slots have a border-gray-200 style, the selected slot is filled blue (#2B65F6), unavailable slots are grey and disabled. A "Continue to confirm" blue CTA button sits in a footer row below the 3 columns. Ship as a single .tsx file using only Tailwind classes and native React state. No motion library required. This section belongs to the Bookly booking and scheduling app template family; reference the shared layout (left sidebar nav + top bar) but do not duplicate it here.
More sections you can vibe code alongside the Booking Date and Time Picker. Each ships with prompts for Claude Code, Cursor, Codex, Lovable, Replit, and Google Stitch.
Service Selection Screen
Booking app service browse screen for Lovable and Claude Code: filter chips and a 4-column provider card grid with rating, price, and Book Now button.
Booking Confirmation Screen
Booking app success screen for Lovable and Claude Code: checkmark icon, booking summary card, add-to-calendar buttons, and "View your bookings" link.
Client Dashboard Screen
Booking app client dashboard for Lovable and Claude Code: sidebar nav, upcoming session card, stats tiles, and recent bookings list.
Copy the prompt on this page into Claude Code, Cursor, Lovable, or Codex. The generated calendar is a pure Tailwind CSS grid with day cells computed from a JavaScript offset (no date-picker library). Availability dots are small absolute-positioned spans. Time slots are pills with disabled state for booked times.
Query a Supabase "availability" table keyed on providerId and the current month. Return available day numbers and per-day slot arrays (with already-booked times excluded). Pass these as props: `availableDays` (a Set) and `slots` (array of { time, available }).
Yes. Add a select element above the calendar that lets the client pick their timezone. Store the selection in component state. When the user selects a slot, convert from the provider's timezone (stored on the provider record) to the client's selected timezone using the Intl.DateTimeFormat API. No date library is required for basic timezone display.
Coaching session booking, tutoring appointment scheduling, hair and beauty salon booking, personal training session scheduling, photography booking, and any other service where a client browses a provider's real-time availability and picks a slot. The template ships with mock data that you replace with a Supabase availability query.
A vibe coding template is a full-app scaffold you describe to an AI coding tool instead of writing from scratch. You paste the prompt into Cursor, Claude Code, Lovable, Codex, Replit, or Google Stitch, and the AI generates the correct file structure, routes, components, and design system automatically. The difference from a regular template is that you own the output from the first line: you can immediately ask the AI to swap the auth provider, change the brand color, or add a new route — no boilerplate editing required.
Yes. Every template, section, code file, and included image is free to use in your website, app, client project, SaaS product, or open-source build with no attribution required. There is no license fee, no royalty, and no copyright restriction. The code is yours to keep, modify, and ship commercially the moment you copy it.
A live preview of the full template, the complete multi-file source code as a single copy-paste string with `// === filename ===` headers so Cursor and Claude Code split it into the correct files automatically, and the prompt that regenerates the template from scratch in any of the 6 AI coding tools. Every vibe coding template ships with the shared AI Library design system: white background, black on grey typography, brand blue reserved for primary CTAs, small type, minimal icons.
A component is a single UI unit (a chat interface, a bento grid, a scroll progress bar). A vibe coding template is a full app made up of many components: routes, layout, navigation, data flow, and interactions wired together. Both are in the AI Library. Templates live at /prompts/ai-library/vibe-coding-templates. Components live at /prompts/ai-library/website-sections. Every template page cross-links to the AI Library components used inside its sections.
Yes. Every template can be copied, adapted, sold, and shipped in commercial projects with no attribution required. This applies to the full-app parent code and every child section. The AI prompts are also unrestricted. Use them for client work, indie SaaS, agency deliverables, internal tools, and open-source projects.
Every template is built on Next.js 14+ App Router + Tailwind CSS v3 + Switzer font, written in TypeScript. Backend choices are yours: they work with Supabase, Clerk, or Auth.js for authentication, and with Postgres, Convex, PlanetScale, or Neon for data. Templates deploy on Vercel, Cloudflare Pages, or Netlify. No motion library required. All styling is Tailwind utility classes.
Open the template page, click Copy full code, and paste directly into a Cursor or Claude Code chat. Both tools detect the `// === filename ===` headers and split the paste into the correct files in your project. From there you can ask them to swap the auth provider, change the color palette, wire the data to your API, or generate missing routes. The prompt tab gives you the exact vibe coding instruction to hand off instead.
Yes. Auth is wrapped behind a `src/lib/auth.ts` helper so you can swap Supabase, Clerk, Auth.js, or your own SSO by changing one file. The same pattern applies to the database client: swap Supabase for Postgres, Convex, PlanetScale, or Neon without touching the UI. Every template ships a Supabase reference implementation by default because it is the most common choice for AI-native SaaS.
Yes. Every child section is a standalone page and standalone code file. Copy the Users Table section from the SaaS Dashboard template into an AI Agent template and it works with no modification — they share the same design system, typography, spacing scale, and layout primitives. The prompt tab for each section is scoped to that section, so you can vibe code just the piece you need.
Three reasons. First, the prompt regenerates the template matched to your own design tokens, brand color, file structure, and auth provider — faster than editing someone else's code. Second, it is a starting instruction you can extend ("build this dashboard but replace analytics with a Kanban board") instead of a fixed snapshot. Third, each prompt is written specifically for the tool it targets: Claude Code, Cursor, Codex, Lovable, Replit, or Google Stitch — the output is consistent because the design constraints are identical across all six.
All six produce the same visual output. Cursor and Claude Code are best for dropping the full multi-file code into an existing repo where you want the AI to manage imports, run type checks, and iterate. Lovable and Replit are best for a fresh working preview URL in seconds without local dev setup. Codex fits agent-driven vibe coding workflows where the AI works autonomously across multiple files. Google Stitch is best if you want to iterate on the design visually before dropping the React code into your project.
Yes. The design system is Tailwind-native: change the brand color in `tailwind.config.ts` and every primary CTA updates. Change the font in `next/font` and every heading and body copy updates. Change the border-radius in the shared component variants and every card, button, and modal updates. Because the templates lean minimal (white background, black text, blue only on CTAs) they adapt easily to any brand without visual conflict.