← All templates

Restaurant Review

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

Yelp-like restaurant review platform with ratings, photos, maps, and menus — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

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

Screens (15)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Discover /discover (signed in)
  • RestaurantDetail /restaurants/:id (signed in)
  • WriteReview /restaurants/:id/review (signed in)
  • MyReviews /my-reviews (signed in)
  • Favorites /favorites (signed in)
  • Settings /settings (signed in)
  • Profile /users/:id (signed in)
  • Notifications /notifications (signed in)
  • Lists /lists (signed in)
  • EditReview /reviews/:id/edit (signed in)

Data model (14 tables)

  • bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
  • comments — id, resourceType, resourceId, userId, parentId, body, editedAt, createdAt, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • follows — id, follower_id, following_id, created_at, updatedAt
  • list_items — id, list_id, restaurant_id, position, note, added_at, updatedAt
  • lists — id, owner_id, name, description, cover_url, visibility, created_at, updated_at, …
  • menu_items — id, restaurant_id, name, description, price_cents, currency, category, available, …
  • notifications — id, owner_id, type, title, body, href, read, created_at, …
  • reactions — id, resourceType, resourceId, userId, type, createdAt, updatedAt
  • restaurant_favorites — id, owner_id, restaurant_id, created_at, updatedAt
  • restaurant_reviews — id, restaurant_id, owner_id, title, rating, body, photos, helpful_count, …
  • restaurants — id, owner_id, name, slug, cuisine, neighborhood, city, address, …
  • review_helpful — reviewId, userId, createdAt
  • reviews — id, resourceType, resourceId, userId, rating, title, body, helpful, …

API (6 handlers)

  • \_seed api/src/handlers/_seed.ts
  • favorites api/src/handlers/favorites.ts
  • lists api/src/handlers/lists.ts
  • notifications api/src/handlers/notifications.ts
  • restaurants api/src/handlers/restaurants.ts
  • reviews api/src/handlers/reviews.ts

Subscription tiers

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

Built from 20 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MAPBOX_ACCESS_TOKEN Mapbox API access token
  • MEILISEARCH_API_KEY Meilisearch API key
  • S3_BUCKET S3 bucket for restaurant and review photos

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