← All templates

Flight Search

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

Kayak-like flight search with routes, price comparison, alerts, and multi-city trips — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • bookmarks
  • notifications
  • subscriptions

Screens (12)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Results /search (signed in)
  • FlightDetail /flight/:id (signed in)
  • Booking /book/:id (signed in)
  • Trips /trips (signed in)
  • PriceAlerts /alerts (signed in)
  • Settings /settings (signed in)
  • TripDetail /trips/:id (signed in)

Data model (11 tables)

  • airports — iata_code, icao_code, name, city, country, latitude, longitude, timezone, …
  • flights — id, airline, airline_code, flight_number, origin_iata, origin_city, destination_iata, destination_city, …
  • bookings — id, user_id, trip_id, confirmation_code, status, flight_id, passenger_count, total_cents, …
  • bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • flight_search_logs — id, user_id, origin, destination, depart_date, return_date, passengers, cabin, …
  • notifications — id, user_id, type, title, body, icon, read, created_at
  • price_alert_history — id, alert_id, user_id, observed_at, lowest_price_cents
  • price_alerts — id, user_id, origin_iata, origin_city, destination_iata, destination_city, target_price_cents, current_lowest_cents, …
  • trips — id, user_id, kind, confirmation_code, status, flight_payload, passenger_count, cabin, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (6 handlers)

  • airports api/src/handlers/airports.ts
  • alerts api/src/handlers/alerts.ts
  • bookings api/src/handlers/bookings.ts
  • flights api/src/handlers/flights.ts
  • notifications api/src/handlers/notifications.ts
  • trips api/src/handlers/trips.ts

Subscription tiers

free / pro / team — gated by: maxAirports, maxAlerts, maxFlights, advancedFeatures, canExport, retentionDays

Built from 17 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY Meilisearch API key
  • MAILGUN_API_KEY Mailgun API key for price alerts

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