Live client deployment — This platform is in production, processing real orders and payments. Want something built like this?
Live Client Deployment
Full-Stack Commerce
AI Build & Implementation

Delivr + FreshHub Food Delivery Platform

The complete technology stack for a multi-restaurant hospitality group — a custom multi-tenant ordering platform with real Stripe payments and operations tooling, unified with an AI agent layer for support, menu intelligence, and personalization. Zero off-the-shelf SaaS. First revenue in under 30 days.

Client · Delivr + FreshHub Khoda Consulting Next.js 15 · Supabase · Stripe React · Node.js · Claude API Vercel
<30d
Concept to first revenue
2×
Layers — Commerce + AI
0
Off-the-shelf SaaS used
~65%
Support tickets handled

Build the entire technology stack from scratch

A multi-restaurant hospitality group needed to modernize — but not with generic SaaS tools. The ask was a fully custom, owned technology stack that could grow with the business and integrate AI as a first-class capability from day one.

No existing ordering infrastructure — customers were calling in orders or using expensive third-party platforms that took 20–30% commission.
Multiple restaurant locations with different menus, hours, and pricing — needed a single admin system that owners could manage from their phones.
Restaurant owners lacked time to manage menus, write descriptions, respond to customers, or track onboarding progress without AI assistance.
Speed mattered — the client needed to be live and taking real payments in under 30 days, with the architecture designed to scale without redeploys.

Two layers. One unified platform.

Rather than stitching together existing tools, Khoda Consulting designed and built both layers of the stack from scratch — a production commerce platform as the foundation, with an AI operations layer on top.

Layer 1 — Commerce Platform
FreshHub

Multi-tenant ordering platform — custom menus, Stripe payment processing, role-based admin, real-time order management, Google Places onboarding, and scheduled pickup with hours validation. Live in production, processing real payments.

Layer 2 — AI Agent
Delivr AI

Multi-tool AI agent built on Claude — autonomous customer support, menu description generation, review response drafting, onboarding guidance, and personalized recommendations. Deployed on top of the live platform.

How the full stack is built

The platform runs on a 7-layer architecture spanning the commerce foundation and AI layer — from customer ordering through payment processing, operations management, and autonomous AI tooling. Each layer is independently deployable and replaceable.


C1Customer Interface — Next.js 15 App Router
Restaurant menu pagesCart + checkoutStripe PaymentElementMobile responsiveLanding page
↓ Order saved → /api/create-order (service role)
C2Commerce Layer — Supabase + Stripe
Multi-tenant schemaStripe PaymentIntentsRLS + service roleJSONB order storageResend email
↓ Admin operations — role-based access control
C3Operations Layer — Admin Panel
super_admin + owner rolesMenu CRUD + modifiersOrder status flowPromo managementGoogle Places onboarding
↓ AI layer reads order + menu data
A1AI Reasoning — Claude Sonnet + Tool Use API
claude-sonnet-4Tool use APIMulti-turn contextAgentic loopstop_reason: tool_use
↓ tool_use blocks → serverless execution
A2AI Tool Layer — 5 Serverless Functions
check_order_status()generate_menu_description()draft_review_response()get_onboarding_checklist()get_recommendations()
↓ all layers deployed together
I1Infrastructure — Vercel + Supabase + GitHub CI/CD
Vercel serverlessSupabase PostgreSQLService role API proxyGitHub Actions CI/CDHTTPS + env vars

Five tools, one agent

Each tool is defined with a JSON schema that Claude uses to reason about when and how to call it. The agent selects the right tool — or sequences multiple tools — based on the user's request.


Order Tracker
Looks up real-time order status by order ID
Returns status, ETA, driver, and items for any order ID. Eliminates the most common support request without human involvement.
Support
Menu Writer
generate_menu_description({ dish_name, ingredients, cuisine_type? })
Generates compelling dish copy from minimal input. Removes the copywriting barrier for time-strapped owners — especially non-native English speakers.
Marketing
Review Responder
Drafts a professional response to a customer review
Classifies review sentiment (positive / neutral / negative) and drafts a tone-matched response. Protects brand reputation without owner effort.
Marketing
Onboarding Status
Returns a customized onboarding checklist for new restaurant partners
Returns completion %, completed and pending steps, and the highest-impact next action. Cuts go-live time from days to hours with zero manual check-ins.
Ops
Recommender
Suggests relevant menu items based on customer history and context
Returns personalized picks based on order history, time of day, and neighborhood trends. Drives repeat orders — the core metric in food delivery economics.
Growth

Multi-turn reasoning in action

The agent handles complex multi-step requests in a single thread — calling multiple tools, feeding results back into Claude's context, and synthesizing a single coherent response.


What's the status of order FH-1042?
▸ tool_use — check_order_status
{ "order_id": "FH-1042" }
✓ tool_result
status: "Out for Delivery" · driver: "Miguel R." · eta: "~8 minutes"
Your order from Casa Verde Kitchen is on its way — driver Miguel R. is about 8 minutes out. Your Carne Asada Plate and Horchata are coming right up.
Draft a response to this 2-star review: "Cold food, arrived 45 minutes late."
▸ tool_use — draft_review_response
{ "rating": 2, "restaurant_name": "Casa Verde Kitchen", "review_text": "..." }
✓ tool_result
tone: "negative" · draft_response: "We're truly sorry..."
"We're truly sorry to hear about your experience at Casa Verde Kitchen. This is not the standard we hold ourselves to — please reach out to support@delivr.com so we can personally make this right."

How the agentic loop works

User sends a natural language request
POST /api/chat → { messages, tools, system }
No forms or menus. The agent understands intent from plain language and begins reasoning about which tool — or sequence of tools — is required.
Claude selects and calls a tool
stop_reason: "tool_use" → content[].type === "tool_use"
When Claude decides to use a tool, the API returns with stop_reason "tool_use". The frontend reads the tool name and input parameters from the response content blocks.
Tool executes server-side
executeTool(name, input) → structured JSON result
The tool function runs — querying data, generating content, or executing logic — and returns a structured JSON result that gets appended to the message history.
Result feeds back to Claude
{ role: "user", content: [{ type: "tool_result", ... }] }
The tool result is added to the conversation as a tool_result content block. Claude receives the full context and continues reasoning — calling more tools if needed.
Claude synthesizes a final response
stop_reason: "end_turn" → content[].type === "text"
When Claude has all the information it needs, it returns stop_reason "end_turn" with a natural language text response that synthesizes everything from the tool calls.

Technology used

Frontend
Next.js 15
Database
Supabase (Postgres)
Payments
Stripe
AI Model
Claude Sonnet
AI API
Tool Use API
State
Zustand
Email
Resend
Location
Google Places API
Hosting
Vercel
Auth
Supabase Auth
Security
RLS + Service Role
CI/CD
GitHub Actions

What this delivered

First revenue in under 30 days. From initial brief to live platform processing real customer payments — a timeline most agencies quote 3–6 months for.
Zero commission, full ownership. The client owns every line of code — no 20–30% platform fees, no vendor lock-in, no monthly SaaS subscriptions.
Unlimited restaurants, zero redeploys. The multi-tenant architecture means adding a new location is a database insert — no code changes, no downtime.
AI-ready from day one. The data architecture was designed for AI integration — order history, menu data, and customer behavior are all structured for model consumption.
Full operational tooling for non-technical owners. The mobile-responsive admin panel lets restaurant owners manage menus, track live orders, and update hours from any device.

What the client said

FreshHub had outgrown WordPress. The site looked dated, the admin was clunky, and onboarding a new restaurant ate hours every time. Khoda Consulting rebuilt the entire platform — clean, responsive customer storefronts, admin dashboards that give super admins and restaurant owners real control, and an agentic AI layer for daily operations. They also migrated our whole tech stack to a scalable cloud architecture. Genuinely some of the best work we've had done.

Founder
FreshHub Hospitality Group
live & interactive

Try the agent yourself

The full working system is deployed. Ask it to track an order, write a menu, or respond to a review.

Launch demo

Want something built like this?

Khoda Consulting designs and ships AI agents, data pipelines, analytics tools, and ML solutions for growing businesses.

Start a conversation →