How shrimbly/book-the-lakehouse works
Book the Lakehouse is a private family-home booking calendar. The main workflow is PIN access, identity selection, date-range selection with conflict checking, and booking creation or editing; optional costs and transfer details support payment follow-up, while Mary mode tracks settlement. The README documents demo-data operation, profile/stay photos, and family customization. Several route and action implementations were only sampled partially, so uncertain internal call links are omitted; unsampled documented capabilities use their existing enclosing paths.
Main entry points: actions.ts Server actions · client.ts Database client · page.tsx Mary route · queries.ts Database queries
Components 21
Calendar experience
- Calendar route
src/app/page.tsx - Calendar UI
src/components/Calendar.tsx - Date selection
src/components/calendar/useBookingSelection.ts - Calendar rules
src/lib/calendar.ts
Booking and payments
- Server actions
src/app/actions.ts - Booking updates
src/components/calendar/useOptimisticBookings.ts - Payment settings
src/lib/payment.ts - Mary route
src/app/mary/page.tsx - Payment checklist
src/components/MaryChecklist.tsx
Access and identity
- Identity picker
src/components/IdentityPicker.tsx - PIN gate
src/components/PinGate.tsx
Data and media
- Data source
src/lib/data-source.ts - Demo data
src/lib/data.ts - Database queries
src/db/queries.ts - Database client
src/db/client.ts - Database schema
src/db/schema.ts - Photo features
src/components/calendar/useStayPhotos.ts - Image processing
src/lib/image.ts
Other components
- Family member
- Neon Postgres
- Vercel Blob
Connections 22
- Family member → Calendar route: opens
- Calendar route → Calendar UI: renders
- Family member → PIN gate: enters PIN
- Family member → Identity picker: chooses identity
- Calendar UI → Date selection: selects dates
- Date selection → Calendar rules: checks dates
- Booking updates → Server actions: calls booking actions
- Identity picker → Server actions: updates profile
- Photo features → Image processing: processes images
- Photo features → Server actions: uploads or deletes
- Server actions → Database client: uses database
- Database client → Neon Postgres: connects
- Database client → Database schema: configures
- Data source → Demo data: loads demo data
- Data source → Database queries: loads persisted data
- Database queries → Database client: queries
- Database queries → Database schema: queries tables
- Mary route → Data source: loads stays
- Mary route → Payment settings: reads settings
- Mary route → Payment checklist: renders stays
- Payment checklist → Server actions: updates settlement
- Server actions → Vercel Blob: stores images