← All templates

Travel Booking

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

Booking.com-like travel platform with search, compare, book, and itinerary management — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

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

Screens (13)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Search /search (signed in)
  • PropertyDetail /property/:id (signed in)
  • Booking /booking/:id (signed in)
  • Trips /trips (signed in)
  • Favorites /favorites (signed in)
  • Account /account (signed in)
  • TripDetail /trips/:id (signed in)
  • Notifications /notifications (signed in)

Data model (13 tables)

  • bookings — id, userId, resourceType, resourceId, status, startTime, endTime, duration, …
  • bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
  • destinations — id, slug, name, country, region, blurb, hero_image_url, latitude, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • itinerary_items — id, user_id, trip_id, kind, title, detail, start_at, end_at, …
  • notifications — id, user_id, type, title, body, href, read, created_at
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • properties — id, destination_id, slug, name, kind, city, country, address, …
  • review_helpful — reviewId, userId, createdAt
  • reviews — id, resourceType, resourceId, userId, rating, title, body, helpful, …
  • room_inventory — id, room_type_id, date, available_count
  • room_types — id, property_id, name, description, capacity, price_per_night_cents, thumbnail_url, total_rooms, …
  • travel_bookings — id, user_id, property_id, room_type_id, check_in, check_out, guests, nights, …

API (10 handlers)

  • \_seed api/src/handlers/_seed.ts
  • accommodations api/src/handlers/accommodations.ts
  • bookings api/src/handlers/bookings.ts
  • destinations api/src/handlers/destinations.ts
  • favorites api/src/handlers/favorites.ts
  • itineraries api/src/handlers/itineraries.ts
  • notifications api/src/handlers/notifications.ts
  • profile api/src/handlers/profile.ts
  • reviews api/src/handlers/reviews.ts
  • trips api/src/handlers/trips.ts

Subscription tiers

free / pro / team — gated by: maxAccommodations, maxBookings, maxDestinations, maxItineraries, advancedFeatures, canExport, retentionDays

Built from 21 @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 images
  • 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