← All templates

Itinerary Planner

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

TripIt-like trip planner with itineraries, activities, maps, collaboration, and sharing — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • maps
  • collaboration
  • sharing
  • subscriptions

Screens (15)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Trips /trips (signed in)
  • TripPlanner /trips/new (signed in)
  • TripDetail /trips/:id (signed in)
  • Destinations /destinations (signed in)
  • Bookings /bookings (signed in)
  • Expenses /expenses (signed in)
  • Settings /settings (signed in)
  • Notifications /notifications (signed in)
  • Calendar /calendar (signed in)

Data model (11 tables)

  • activities — id, user_id, trip_id, day_index, position, sort_order, title, kind, …
  • bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
  • destinations — id, name, region, blurb, thumbnail, pill_label, trip_count, created_at
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • expenses — id, user_id, trip_id, category, amount_cents, currency, occurred_at, vendor, …
  • notifications — id, user_id, trip_id, kind, title, body, occurred_at, read, …
  • trip_bookings — id, user_id, trip_id, kind, title, detail, start_at, end_at, …
  • trip_collaborators — id, trip_id, user_id, invited_by, role, invited_at, accepted_at, created_at, …
  • trip_invites — id, trip_id, user_id, email, token, role, sent_at, accepted_user_id, …
  • trips — id, user_id, name, destination, country, cover_url, start_date, end_date, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (8 handlers)

  • \_authz api/src/handlers/_authz.ts
  • activities api/src/handlers/activities.ts
  • bookings api/src/handlers/bookings.ts
  • collaborators api/src/handlers/collaborators.ts
  • destinations api/src/handlers/destinations.ts
  • expenses api/src/handlers/expenses.ts
  • notifications api/src/handlers/notifications.ts
  • trips api/src/handlers/trips.ts

Subscription tiers

free / pro / team — gated by: maxActivities, maxCollaborators, maxTrips, advancedFeatures, canExport, retentionDays

Built from 18 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MAPBOX_ACCESS_TOKEN Mapbox API access token
  • S3_BUCKET S3 bucket for trip photos
  • MAILGUN_API_KEY Mailgun API key for sharing invites

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