Skip to content

01 / Marketplace

ChefMarket — A restaurant–supplier B2B marketplace ecosystem

Three mobile apps, an admin panel and a real-time backend — in one ecosystem.

Year
2026
Scope
Marketplace
ChefMarket web admin panel and mobile app screens in laptop and phone frames

01 / Overview

ChefMarket fully digitises restaurant–supplier trade in Azerbaijan: suppliers sell products, restaurants place orders and drivers deliver. Three separate mobile apps (Supplier, Restaurant, Driver), a React admin panel and a Tenant Portal talk to each other in real time through a single .NET 8 backend.

02 / The problem

Restaurant supply ran on phone calls, WhatsApp and paper delivery notes. Nobody knew exactly where an order was, prices could not be compared, and the cash a driver collected was reconciled by hand at the end of the day.

03 / Our approach

Every role got its own app — one each for suppliers, restaurants and drivers — with an admin panel on top. The whole order lifecycle sits on one status flow, pushed to all three parties at the same moment over SignalR. When the network drops, actions go into an offline queue and are replayed on reconnect.

04 / The result

Orders, delivery and cash reconciliation now live in one panel. Suppliers manage their own catalogue through Buy Box competition and bulk price updates, and restaurants collect quotes from several suppliers at once with a tender request.

05 / Key features

What it does.

  • 01

    Full order lifecycle

    Accepted → preparing → ready → on the way, with a real-time notification at every step.

  • 02

    Buy Box and price competition

    Market price comparison and recommendations for the supplier.

  • 03

    Tender requests

    A restaurant asks once and collects prices from many suppliers.

  • 04

    Logistics board

    Waves, routes and stops, plus driver assignment.

  • 05

    Driver cash reconciliation

    Expected versus collected cash, tracked per stop.

  • 06

    Offline queue

    Actions are kept when the network drops and replayed when it returns.

06 / Architecture

How it is built.

  1. One global notification bridge

    A single SignalR toast bridge with map-based dedup (a 500ms window) stops the same event being shown twice.

  2. Boundary conversion

    Backend PascalCase becomes camelCase at the service boundary, so components never deal with two naming schemes.

  3. Relative URL storage

    The database holds only relative paths and IStorageUrlResolver builds the full address, so moving storage never touches the data.

07 / Technology

Tech stack.

Backend
  • .NET 8
  • FastEndpoints
  • CQRS / MediatR
  • Hangfire
Database
  • SQL Server
Mobile
  • React Native 0.83 / 0.84
  • React 19 (New Architecture)
  • TypeScript 5.8
Frontend
  • React 19
  • Horizon UI (Chakra + Tailwind)
  • ApexCharts
State
  • Zustand 4
  • React Context
Real-time
  • SignalR (WebSocket)
  • Firebase Cloud Messaging
Print and maps
  • Bluetooth ESC/POS thermal printer
  • react-native-maps
Monitoring
  • Firebase Crashlytics (PII-redacted breadcrumbs)

08 / Screens

12 screens from the product.

Select a screen to see it full size.

ChefMarket interface — screen 1 of 12ChefMarket interface — screen 2 of 12ChefMarket interface — screen 3 of 12ChefMarket interface — screen 4 of 12ChefMarket interface — screen 5 of 12ChefMarket interface — screen 6 of 12ChefMarket interface — screen 7 of 12ChefMarket interface — screen 8 of 12ChefMarket interface — screen 9 of 12
ChefMarket interface — screen 10 of 12ChefMarket interface — screen 11 of 12ChefMarket interface — screen 12 of 12

09 / More work

More marketplace and neighbouring work from the same studio.

Have a similar
idea?

Let’s make it real. ♥