Coffeemania
A delivery operator dashboard, table ordering and payments, group websites and careers portal maintenance.

Delivery Hub and table payments.
2022–2025 · restaurant group frontend
My role
I was the sole frontend developer on two core products: table payment from its first commit, and Delivery Hub from November 2023 to February 2025. I developed the interfaces, agreed event contracts with the backend team and built group websites in parallel. I also made improvements to and maintained the careers portal at rabota.coffeemania.ru.
- Delivery Hub
- Order feed and operator tools
- Table service
- Menu, bill, SBP payments and loyalty points
- Group websites
- Landing pages, brand websites and careers portal
The business problem
Delivery operators need a shared order feed, guests need ordering and payment through a table QR code, and marketing needs pages for restaurant and brand launches. The careers portal helps candidates find a vacancy and submit an application.
Delivery Hub
A delivery operator’s workspace
The feed receives orders from all channels and shows statuses, delays and underpayments. An order card opens alongside it so operators can check items, change the status or hand the order over to a courier.
From a call to an order
A three-step editor guides the operator. The incoming-call widget supplies the phone number. The guest profile includes addresses and loyalty details. The address determines the restaurant, delivery price and timing.

Live updates
React and TypeScript on the client, with SignalR events from a .NET backend. The feed supports filters, pagination and highlighting for orders that need attention.
Managing orders from the order card
Status changes, resending to iiko, packing slips, labels and handover to White Cabs are available in the card. Manual status changes do not require resending to the till.
Engineering details
A draft before saving
Editing creates a separate draft of the order. Changes are applied to the order when the draft is saved.
Menu and reports
The menu shows stock, SKUs and unavailable items. Search accommodates Russian spelling variants. Operator and chef reports use type-aware sorting and export to Excel.
More screens (3)



Table service
Ordering and paying through a table QR code
Guests open the service in a browser, retrieve the bill from the till, redeem points and select a bank for payment via SBP. I later added ordering directly from the menu.

Checking payment status
The selected bank opens through a deep link and is remembered. A status screen polls the backend until payment is confirmed, then offers tipping via CloudTips.
Ordering on a phone
Categories follow scrolling. Dish cards open in bottom sheets with modifiers and cooking options. The basket merges matching items and separates unavailable dishes.
Engineering details
Table and basket state
Effector domain models separate the table, bill, menu, banks and payment. Table and basket state synchronise with the URL. The table session resets after 40 minutes of inactivity.
Development beyond the MVP
The first commit to production took 28 days in July 2022. Later work added loyalty, tipping, migration from Preact CLI to Vite, and table ordering in 2024.
More screens (3)



Group websites
Websites for the restaurant group
I built Coffeemania landing pages, the Sustainability section, Zhazhda Krovi and Bez Tarelok websites. I also made improvements to and maintained the careers portal.




Within coffeemania.ru
Landing pages are part of a Next.js application with server rendering and a separate mobile layout. Sustainability brings together five internal pages.
Standalone websites
Zhazhda Krovi includes video, a krpano 360° tour and Schema.org markup. Bez Tarelok uses Next.js with Keystone CMS for content editing.
Careers portal
I made improvements to and maintained rabota.coffeemania.ru with Strapi CMS. Candidates browse vacancies and working conditions, choose a position and submit an application.
More screens (3)



Outcome
Table payments, Delivery Hub and group websites
I launched the first version of table payments in 28 days and developed it for another two and a half years. Alongside it, I worked on Delivery Hub and the group’s websites, and improved and maintained the careers portal. I completed 208 tasks across the two products.
- 28
- days from the first table-payments commit to production
- 6
- order channels in one hub feed: website and app, Yandex Eda, Delivery Club, Sber, MirCity and table ordering
- 326/327
- commits in the Delivery Hub frontend from November 2023 to February 2025 are mine
Stack
- React
- TypeScript
- Effector
- SignalR
- Next.js
- Vite
- ExcelJS
- SCSS Modules
- Keystone
- Strapi
- Docker