Work

One product. Built end-to-end.

We'd rather ship one product well than five things half-built. Foodiez is the live one. Everything below is real, in production, used by real customers and restaurants.

Live · 2026 · Marketplace

Foodiez — restaurant marketplace, Sri Lanka

A multi-vendor restaurant ordering platform built ground-up for the Sri Lankan market. Customers discover restaurants and dishes near them, order, pay via PayHere or in-app wallet, and track the order live. Vendors manage menu, branches, schedules, orders and payouts to verified bank accounts. The platform handles real-time status, push notifications, and operator approvals.

Angular Node.js / Express MongoDB Socket.IO PayHere WhatsApp OTP Firebase Push Google Maps
Visit foodiez.lk
🍜
What's inside Foodiez

The non-trivial bits.

The boring CRUD is the boring CRUD. The things that took real work:

🔐

WhatsApp OTP login

Pluggable WhatsApp provider — runs against Baileys for dev, swappable to Meta Cloud API for production. One-time codes for login, wallet, withdrawals.

💳

PayHere integration

Web checkout and mobile SDK, full signature-verification webhook, wallet top-ups, partial-wallet payments, and order-state recovery on cancellation.

🏦

Vendor payouts

Bank account capture with mandatory bank-statement upload, platform-admin approvals, OTP-protected withdrawals, bulk processing, and full audit log.

📡

Live order pipeline

Socket-driven kitchen queue, customer-room order status pushes, auto-accept rules, slot capacity recalculation, and order-timeout cron jobs.

🔍

Semantic search

Vendor and dish search with embedding-based recall (Ollama nomic-embed-text), with a nearest-restaurants fallback when location-radius returns zero.

📱

Customer mobile app

Flutter customer app and Capacitor vendor app, Firebase push notifications, in-app PayHere mobile SDK, deep links to live order tracking.

Building something like this?

If you're working on a product that needs payments, vendor onboarding, real-time ops, or just a small team that can actually ship — let's talk.

Start a conversation