Ready-made for caterers & event food businesses.
The problem
Catering is booked through endless emails and calls — quotes take days and orders get lost.
How it solves it
A marketplace where companies browse caterers, build an order and book in minutes, with a dashboard for every supplier.
What you get
- Online menus & instant quotes
- Supplier dashboards
- Payments built in
The marketplace
Searching, browsing caterers, and the menu & quote flow — the full buyer experience, start to finish.
Why it's hard
A generic marketplace template solves discovery, but B2B catering has constraints a consumer food-delivery app was never built for — company billing profiles, OIB tax numbers, R1 invoicing, delivery-radius logic, and quotes that need real back-and-forth negotiation, not a fixed "add to cart" price. Bolting those onto a B2C template breaks more than it fixes.
How we solved it.
Discover
A conversion-optimised storefront lets buyers search by cuisine, location and dietary need — or just describe the event in their own words.
Negotiate
Custom quote requests replace a fixed price list — a caterer can price a 200-person office lunch differently from a 20-person board meeting, properly.
Manage
Caterers get a full dashboard for menus, availability and incoming orders; internal Ops staff get an admin panel to oversee the whole marketplace.
Repeat
Recurring meal programs turn a one-off order into an ongoing account — company billing profiles and multi-address checkout make the second order trivial.
- React: Interface
- Tailwind: Styling
- Framer Motion: Motion
- Next.js: Framework
- TypeScript: Language
- Supabase: Data
- Next.js 16 App Router
Three distinct interfaces — the marketing storefront, the caterer dashboard, and the internal Ops panel — needed to live in one codebase without stepping on each other. App Router's route grouping and server components pre-render 70+ static routes for near-instant loads, while the dashboards stay dynamic.
- Supabase
Multi-tenant company billing profiles, caterer menus and order state all needed row-level security so one company's team can never see another's quotes or invoices — Postgres with RLS enforces that at the database layer, not just in application code.
- next-intl
Croatian and English needed sub-path routing (/en, /hr) with SEO intact for both — a corporate buyer searching in English and a local caterer signing up in Croatian both needed pages that felt native, not translated after the fact.
The product, screen by screen.
What's built in.
- 3
Interfaces — clients, caterers, admin
- Quotes
Requested and compared online
- HR·EN
Fully bilingual
NexaHomes
