Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1506Tools index

Previous survey · No. 1513 ·

Pricing
Open Source
Type
TOOL
Builder
medusajs
GitHub
262 stars
Date

About

Uber Eats-style food delivery reference app built on Medusa 2.0 + Next.js 14 — clone it to bootstrap a real marketplace.

What it does

Medusa Eats demonstrates a three-party delivery system for customers, restaurants, and drivers. Customers browse menus and order food. Restaurants manage menus, receive orders, and report preparation progress. Drivers receive jobs and claim routes. A long-running workflow coordinates fulfillment, while server-sent events carry live status updates to dashboards.

Why it's ranked here

The project is useful because it connects commerce primitives to a concrete, multi-party order lifecycle. Custom restaurant and delivery modules, role-aware authentication, driver matching, and live tracking provide substantial architecture to study. Its value is educational, however: the maintainers explicitly call it an unmaintained hackathon demo and architectural reference.

What's good

The domain model covers the full handoff from cart through restaurant acceptance, preparation, pickup, transit, and delivery. Separate customer, restaurant, and driver experiences make permissions and operational responsibilities visible. Seed data provisions regions, currencies, tax areas, shipping choices, inventory, products, and a publishable API key, giving the example useful breadth.

Tradeoffs

This is not maintained by the core team and is explicitly not intended as a starter project. The backend falls back to generic authentication secrets when environment values are absent. Fulfillment uses a manual provider, while seeded shipping choices describe conventional parcel delivery rather than food courier timing. Production hardening, deployment guidance, and ongoing compatibility work are not established here.

How to use it well

Use it when designing a Medusa-based marketplace and you need working patterns for custom domain modules, actor-specific access, long-running order state, and live dashboards. Read the architecture, trace one order across all three roles, then selectively port concepts into a maintained codebase. Do not treat it as a production-ready foundation or a substitute for operational delivery infrastructure.

Technical notes+

The repository splits Medusa and Next.js concerns between /backend and /frontend. backend/medusa-config.ts registers restaurantModuleService, deliveryModuleService, and the manual fulfillment provider, but defaults JWT and cookie secrets to supersecret. backend/src/api/middlewares.ts authenticates restaurant and driver actors with bearer tokens and derives authorization context from app metadata. frontend/src/middleware.ts creates a daily _medusa_cache_id cookie and forwards it through x-medusa-cache-id. frontend/src/lib/config.ts configures the Medusa JavaScript SDK with an environment-selected backend URL and publishable key. backend/jest.config.js defines unit, HTTP integration, and module integration test matching. backend/src/scripts/seed.ts provisions commerce infrastructure and restaurant product data.

Observed

Primary language
TypeScript, with JavaScript configuration files
Application surface
Web storefront and role-specific restaurant and driver dashboards
Backend interface
Medusa HTTP API with bearer-token authentication and custom store routes
Packaging
Two-project repository containing separate backend and frontend directories
Frontend stack
Next.js 14, Tailwind CSS, and the Medusa JavaScript SDK
Backend stack
Medusa 2.0 with custom restaurant and delivery modules
Realtime mechanism
Server-sent events provide order status updates
Test configuration
Jest supports unit, HTTP integration, and module integration test patterns

Read from README.md, backend/jest.config.js, backend/medusa-config.ts, frontend/next.config.mjs, frontend/postcss.config.js, frontend/tailwind.config.ts, frontend/src/middleware.ts, backend/src/api/types.ts, frontend/src/lib/types.ts, backend/src/utils/index.ts, frontend/src/lib/config.ts, backend/src/scripts/seed.ts, frontend/src/app/layout.tsx, backend/src/api/middlewares.ts, backend/.medusa/types/index.d.ts.

What it can do

  • Browse restaurant menus and food options

    User location and search criteriaList of available restaurants and their menu items

  • Place food orders from restaurants

    Selected menu items and delivery detailsConfirmed order with tracking information

  • Process payments for food orders

    Order total and payment methodPayment confirmation and receipt

  • Track order delivery status

    Order ID and user credentialsReal-time delivery progress updates

  • Manage restaurant inventory and availability

    Restaurant admin credentials and menu dataUpdated menu with current availability status

  • Calculate delivery fees and estimated times

    Restaurant location, delivery address, and order detailsDelivery cost and estimated arrival time

  • Handle user account registration and authentication

    User credentials and profile informationAuthenticated user session and profile

Tags

ecommercemedusanextjsmarketplacestarter

Tech Stack

TypeScriptJavaScriptCSS

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.