← All templates

Venue Booking

Real Estate & Travel · React + Node (Express) · 19 @molecule/* packages

Splacer-like venue booking with spaces, availability, pricing, and reviews — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • maps
  • reviews
  • payments
  • subscriptions

Screens (18)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Search /search (signed in)
  • VenueDetail /venue/:id (signed in)
  • Booking /book/:venueId (signed in)
  • Reservations /reservations (signed in)
  • Favorites /favorites (signed in)
  • Account /account (signed in)
  • ReservationDetail /reservations/:id (signed in)
  • BookingConfirmation /booking/confirmation/:id (signed in)
  • Messages /messages (signed in)
  • MessageThread /messages/:id (signed in)
  • HostDashboard /host (signed in)
  • Notifications /notifications (signed in)
  • Settings /settings (signed in)

Data model (11 tables)

  • availabilities — id, venue_id, kind, day_of_week, start_time, end_time, blackout_start, blackout_end, …
  • bookings — id, userId, resourceType, resourceId, status, startTime, endTime, duration, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • favorites — id, user_id, venue_id, created_at
  • message_threads — id, booking_id, venue_id, participants, last_message_at, created_at
  • messages — id, thread_id, sender_user_id, body, attachments, read_by, created_at
  • notifications — id, user_id, kind, payload, read_at, created_at
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • review_helpful — reviewId, userId, createdAt
  • reviews — id, resourceType, resourceId, userId, rating, title, body, helpful, …
  • venues — id, host_user_id, owner_id, title, description, category, venue_type, address, …

API (11 handlers)

  • \_decorate api/src/handlers/_decorate.ts
  • \_seed api/src/handlers/_seed.ts
  • bookings api/src/handlers/bookings.ts
  • favorites api/src/handlers/favorites.ts
  • host_metrics api/src/handlers/host_metrics.ts
  • messages api/src/handlers/messages.ts
  • notifications api/src/handlers/notifications.ts
  • profile api/src/handlers/profile.ts
  • reservations api/src/handlers/reservations.ts
  • reviews api/src/handlers/reviews.ts
  • venues api/src/handlers/venues.ts

Subscription tiers

free / pro / team — gated by: maxBookings, maxReviews, maxVenues, advancedFeatures, canExport, retentionDays

Built from 19 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MAPBOX_ACCESS_TOKEN Mapbox API access token
  • STRIPE_SECRET_KEY Stripe API secret key
  • MEILISEARCH_API_KEY Meilisearch API key
  • S3_BUCKET S3 bucket for venue photos
  • MAILGUN_API_KEY Mailgun API key

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing