Back to projects
Case Study

Tapow.my

Full-stack restaurant ordering and dispatch platform — from menu browsing to Stripe checkout to Lalamove delivery at the doorstep.

The Problem

Small restaurants in Malaysia needed an affordable alternative to expensive food delivery platforms that take 30%+ commissions. They wanted their own ordering system with menu management, payment processing, and delivery dispatch — without the platform fees eating their margins.

The Solution

I built Tapow.my: a complete restaurant ordering platform where vendors manage their own menus, customers order and pay online, and deliveries are dispatched automatically via Lalamove — all without per-order commissions.

Customer Ordering Flow

Customers browse categorized menus, add items with modifiers to their cart, and checkout via Stripe. They can also order through WhatsApp for a conversational experience. Order tracking shows real-time delivery status.

Vendor Dashboard

Restaurant owners log in to manage their full menu (items, categories, pricing, images), view and update order statuses, track order metrics and analytics via Recharts, and manage vendor notes. Role-based access control separates admin, vendor, and customer permissions.

Delivery Dispatch

When an order is ready, the system fetches a real-time delivery quote from Lalamove, dispatches a rider, and tracks the delivery. Dynamic fee calculation based on distance. The entire flow is handled via Supabase Edge Functions calling the Lalamove API.

Payment Processing

Stripe handles checkout sessions, with webhook-based payment confirmation and verification via dedicated Edge Functions. The system supports multiple payment flows — web checkout, WhatsApp-initiated orders, and direct payment links.

Customer Menu

Categorized browsing with item cards showing prices, descriptions, and add-to-cart buttons. Supports category tabs (Breakfast, Sandwiches, Fried Chicken, Mains, Milkshakes, etc.) with real-time cart updates.

n8n Workflow Automation

Two n8n workflows handle the WhatsApp ordering flow and real-time order status notifications — GPT parses natural language orders, and customers get WhatsApp updates at every stage.

WhatsApp Order Handler — GPT-powered order parsing, menu fetching, PDF generation

n8n WhatsApp Order Handler workflowClick to view full size

Order Status Notifications — webhook-triggered WhatsApp updates per status change

n8n Order Status Notifications workflowClick to view full size

7 Supabase Edge Functions

create-checkout

Stripe checkout session creation

stripe-webhook

Payment confirmation handling

verify-payment

Payment verification

lalamove-quote

Real-time delivery quotes

dispatch-lalamove

Rider dispatch + tracking

whatsapp-cart

WhatsApp ordering integration

generate-menu-pdf

Export menus as PDF

Key Features

  • Categorized menu browsing with item modifiers and images
  • Shopping cart supporting anonymous and authenticated users
  • Stripe checkout with webhook-based payment confirmation
  • WhatsApp ordering flow for conversational commerce
  • Lalamove delivery dispatch with real-time quotes and tracking
  • Vendor dashboard with menu CRUD, order management, and analytics
  • Role-based access control (admin, vendor, customer)
  • PDF menu export for offline/print use
  • Order metrics and analytics via Recharts

Impact

0%
Per-order commission
7
Edge Functions
3
Payment flows
Live
Delivery dispatch

Tech Stack

React 18TypeScriptViteTailwind CSSshadcn/uiReact Router v6React QueryReact Hook FormZodSupabasePostgreSQLSupabase Edge FunctionsStripeLalamove APIWhatsApp APIRechartsDigital Ocean

Need a platform like this for your restaurant or marketplace?

Hire Me on Upwork