Portfolio build — A production-grade ordering platform built end-to-end by Khoda Consulting, paired with a separate live AI agent demo. Built to show capability — not a paid client engagement. Want something built like this?
Portfolio Build · Live Demo
Full-Stack Commerce
AI Build & Implementation

Delivr + FreshHub Food Delivery Platform

A complete, custom technology stack for a multi-restaurant hospitality scenario — a multi-tenant ordering platform with real Stripe payments and operations tooling (FreshHub), paired with a separate interactive AI agent demo (Delivr) that shows how an agent layer would handle support, menu intelligence, and personalization. Built end-to-end by Khoda Consulting. Zero off-the-shelf SaaS.

Portfolio Build · Khoda Consulting Khoda Consulting Next.js 15 · Supabase · Stripe React · Node.js · Claude API Vercel
100%
Custom-built, owned code
2×
Layers — Commerce + AI
0
Off-the-shelf SaaS used
8
Agent tools in the live demo

Build the entire technology stack from scratch

Khoda Consulting built FreshHub to model a common problem end-to-end: a multi-restaurant hospitality operation that needs to modernize without generic SaaS tools — a fully custom, owned technology stack that can grow with the business and treat AI as a first-class capability. The platform is real and production-grade; the operator scenario below is the use case it was built to solve.

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 and ownership mattered — the goal was a production-ready platform that could go live and take real payments without months of work, with the architecture designed to scale without redeploys.

Two builds — a platform and an agent.

Rather than stitching together existing tools, Khoda Consulting built both pieces from scratch: a production-grade commerce platform (FreshHub) as the foundation, and a separate interactive AI agent (Delivr) that demonstrates how an operations layer would work. They are independent builds — the agent demo is not wired into the live platform.

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. Built end-to-end and production-ready; not yet live, and contains no AI layer.

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. A separate, live interactive demo running on simulated order data to show how an agent layer would operate; it is not integrated into the 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 the build shows

Production-ready in weeks, not months. A full custom commerce platform built end-to-end and ready to take real payments — the kind of scope 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.

An honest note on what this is

FreshHub is a real, production-grade platform Khoda Consulting designed and built end-to-end — not a paid client engagement, and not yet live. Delivr is a separate, live AI agent demo you can try right now. We show both as proof of build capability, not as a deployed client result. When a system is a demo, we say so.

live & interactive

Try the agent yourself

The interactive agent demo is live. 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 →