MobileSingapore2023

Food07

Food delivery platform for Singapore โ€” local restaurants, live menus, real-time order tracking.

The Challenge

Independent restaurants in Singapore were losing delivery revenue to the major platforms (GrabFood, foodpanda) where 25โ€“35% commission fees made thin-margin dishes economically unviable. Smaller hawker operators and family restaurants wanted a branded delivery presence but couldn't afford to build and maintain their own apps โ€” and the white-label solutions available were either too expensive or too rigid to accommodate the real-time menu changes that Singaporean hawker culture requires (dishes sell out mid-service; daily specials change at the discretion of the cook).

The technical challenge was real-time reliability at a city-state scale: Singapore's lunch rush produces order spikes of 5โ€“8ร— baseline within a 45-minute window, and a delivery status that's even 30 seconds stale would cause customer service calls that the lean restaurant operators could not handle.

What We Built

The customer-facing app and the restaurant operator app are both built in React Native (Expo managed workflow), sharing 80% of their business logic through a common TypeScript package. This allowed a single build pipeline to produce iOS and Android binaries for both apps simultaneously.

The backend is a Node.js/Express API deployed on Railway, with PostgreSQL (via Prisma ORM) as the primary datastore. Real-time order status โ€” placed โ†’ confirmed โ†’ preparing โ†’ out for delivery โ†’ delivered โ€” is powered by Socket.io rooms keyed on order ID, so the customer app, the restaurant tablet, and the delivery rider's app all receive the same state update within ~200ms of any transition. Redis is used as the Socket.io adapter to handle horizontal scaling during peak windows.

Payments are processed through Stripe (cards, Apple Pay, Google Pay) with a webhook listener that triggers order confirmation only after payment success, preventing the double-confirmation race condition that plagued earlier builds. Restaurant menus are managed through a web admin built in Next.js โ€” operators can toggle item availability in real time (a single button press marks a dish as sold out and hides it from the customer-facing menu within 5 seconds via a cache invalidation event).

The Outcome

Food07 reached 5,000 downloads in its first month on the App Store and Google Play, driven largely by word-of-mouth from the 30+ restaurant partners who promoted it to their existing dine-in customers. Average order value was S$28, and the repeat order rate in month two was 61% โ€” significantly above the 40โ€“45% industry benchmark for new delivery platforms.

Restaurant partners reported a net revenue increase of 12โ€“18% on delivery orders versus their previous platform because the commission structure was substantially lower, and the real-time menu control eliminated the complaint calls they'd been fielding about unavailable items. The platform has been operationally stable with 99.7% uptime since launch.

Building something similar?

We'd love to hear about your project.

Let's talk โ†’