A single-source build brief covering the public website, client app, chef operations portal, admin console, WhatsApp bot, and the LLM engine that powers allergen-safe chef-to-client matching across all seven emirates. Full playbook: azizsaif.com/eatcookjoy-Playbook/
Allocation against total Phase-1 engineering budget. Red = AI/ML core. Black = surrounding platform. Gold = brand/avatar.
An end-to-end private-chef marketplace with allergen-safe AI matching, Arabic/English bilingual UX, WhatsApp-first booking, and Shariah-compliant escrow payments — built on a Dubai-hosted, PDPL-compliant stack.
| Workstream | Deliverable | % Effort |
|---|---|---|
| AI / LLM | GPT-4o orchestrator, pgvector match engine, allergen reasoner, multilingual NLP | 28% |
| Mobile App | Client app (React Native) — booking, allergen vault, chat, reviews | 18% |
| Chef Portal | ops.eatcookjoy.com — 6-tab onboarding, goals, dashboard, payouts | 14% |
| Public Web | Next.js marketing site, recipe library (16,848), chef directory, vault | 11% |
| Twilio + Meta API bot — booking, reminders, broadcasts (AR/EN) | 9% | |
| Admin | Internal console — KYC, allergen audit, dispute, finance reports | 8% |
| AI Avatar | "Noor" — HeyGen / ElevenLabs Arabic voice | 7% |
| Infra | AWS me-central-1 (Dubai), Cloudflare, observability, PDPL controls | 5% |
| Total Engineering Allocation | 100% | |
Every booking matched by AI must be allergen-safe, halal-verified, and within 45 minutes of the client's pin — with chef accept-rate above 80% on first offer.
Six logical layers, one shared identity, one event bus. Layers 1–5 are the surrounding platform; layer 6 (AI engine) is the core intelligence.
| # | Layer | Primary Users | Tech | % of Platform |
|---|---|---|---|---|
| L1 | Public Website | Visitors, SEO bots, press | Next.js 14, Tailwind, Sanity CMS, Cloudflare | 12% |
| L2 | Client App | Households, hosts | React Native, Expo, RevenueCat, Sentry | 22% |
| L3 | Chef Portal | Chefs, sous-chefs | Next.js (web), Tailwind, Stripe Connect | 16% |
| L4 | Admin Console | Ops, finance, compliance | Retool + custom React, Metabase | 10% |
| L5 | WhatsApp Bot | All segments | Twilio, Meta Cloud API, Node workers | 12% |
| L6 | LLM Engine | System (internal) | GPT-4o, LangChain, pgvector, Redis | 28% |
| Architecture Coverage | 100% | |||
Auth (Cognito + OTP)Event Bus (SNS/SQS)Observability (Datadog)Feature Flags (LaunchDarkly)Secrets (AWS SM)CI/CD (GitHub Actions)i18n (AR/EN)PDPL Logging
Every screen labeled WEB / OPS / APP / ADM. Each card shows what it displays and the primary action the user can take.
Where it appears, what it does, and the model + ops stack behind it. Bilingual from day one — Arabic (Khaleeji + MSA) and English.
Client: "Iftar for 8, nut allergy, Jumeirah, Saturday 7pm."
Noor: "Got it — 3 nut-safe chefs available Saturday in Jumeirah. Chef Mariam (4.9★, Emirati & Khaleeji) can do an Emirati-Levantine spread for AED 1,180. Confirm?"
العميل: «إفطار لـ ٨ أشخاص، حساسية من المكسرات، الجميرا، السبت ٧ مساءً»
نور: «تمام — لدينا ٣ طهاة معتمدين خاليين من المكسرات في الجميرا. الشيف مريم (٤٫٩★، إماراتية وخليجية) تقدّم وليمة إماراتية-شامية بـ ١٬١٨٠ درهماً. هل تؤكد؟»
Noor NEVER auto-confirms a booking that conflicts with a flagged allergen in the household vault. Escalates to human ops within 60 seconds.
Noor is the on-screen face of EatCookJoy: warm, bilingual, allergen-aware. She appears in onboarding, the help center, and short-form social.
| Capability | Tooling | % of Avatar Build |
|---|---|---|
| Face & Lip-Sync Video | HeyGen (primary), Synthesia (fallback) | 35% |
| Voice — Arabic (Khaleeji) | ElevenLabs Multilingual v2 | 20% |
| Voice — English (Gulf-neutral) | ElevenLabs Multilingual v2 | 15% |
| Emotion Engine | GPT-4o sentiment → expression map | 15% |
| Real-time Render | Edge stream via Cloudflare Stream | 10% |
| Brand Guardrails | Pre-approved script bank + filters | 5% |
| Avatar Workstream | 100% | |
App onboarding (APP-01)Chef onboarding wrap (OPS-07)Help center homeRamadan / Eid greetingsPress kit explainer
Bilingual is not a translation pass — it is a first-class UX. Toggle persists across sessions and channels.
| Surface | EN | AR | Parity |
|---|---|---|---|
| Marketing pages (12) | 100% | 100% | 100% |
| App UI strings | 100% | 100% | 100% |
| Chef portal | 100% | 100% | 100% |
| Recipe titles (16,848) | 100% | 70% | 70% |
| Allergen warnings | 100% | 100% | 100% |
| Legal / PDPL | 100% | 100% | 100% |
| Reviews (user-generated) | auto-MT | auto-MT | 90% |
The canonical stack for the ECJ-UAE platform. Anything outside this list requires a written change-order.
| Layer | Technology | Purpose | Maturity |
|---|---|---|---|
| Frontend — Web | Next.js 14, React 18, TypeScript, Tailwind CSS, shadcn/ui | Public site, chef portal, admin | Prod |
| Frontend — Mobile | React Native + Expo, Reanimated, NativeWind | iOS + Android client app | Prod |
| Backend — API | Node.js 20 (NestJS) + FastAPI (Python) for AI services | REST + tRPC + GraphQL gateway | Prod |
| Database — OLTP | PostgreSQL 16 (RDS Multi-AZ) | Users, bookings, payments, audit | Prod |
| Database — Vector | pgvector + PGroonga | Recipe / chef / allergen embeddings | Prod |
| Cache / Queue | Redis 7 (ElastiCache), SQS, SNS | Session, rate-limit, event bus | Prod |
| AI / LLM | OpenAI GPT-4o, Anthropic Claude Sonnet 4.6, LangChain, LangGraph | Match engine, chatbot, summarisation | Prod |
| Embeddings | text-embedding-3-large, Cohere multilingual | AR/EN semantic search | Prod |
| Payments | Stripe Connect (escrow), Telr (local cards), Shariah-compliant escrow logic | Hold-release, payouts, VAT | Prod |
| Twilio Conversations + Meta Cloud API | Bookings, reminders, broadcasts | Prod | |
| Auth | AWS Cognito + WhatsApp OTP + Apple/Google sign-in | Identity, MFA | Prod |
| Hosting | AWS me-central-1 (Dubai), Cloudflare (edge + WAF) | Data residency, PDPL | Prod |
| Observability | Datadog, Sentry, OpenTelemetry, Logflare | Metrics, traces, errors | Prod |
| CI/CD | GitHub Actions, Terraform, Atlantis | IaC, deploy, rollback | Prod |
| Storage | S3 (Dubai), CloudFront signed URLs | Menus, photos, EID docs (encrypted) | Prod |
| Avatar | HeyGen, ElevenLabs, Cloudflare Stream | Noor avatar render | Beta |
All PII, allergen records, and payment metadata must remain in AWS me-central-1 (Dubai). Cross-border calls to OpenAI/Anthropic must redact PII before egress and log every prompt for PDPL audit.
5-step onboarding. Each step has an AI assist that compresses time-to-active.
Mobile OTP → EID + passport upload → AI OCR auto-fills, flags expired docs (~30s).
Chef picks cuisines + 5 dishes → AI tags allergens, suggests pricing band vs 16,848-recipe library.
Service radius on map → AI estimates ETA bands per emirate; vision model verifies kit photo.
Stripe Connect KYC, IBAN, UAE FTA VAT toggle, Shariah-compliant escrow opt-in.
Weekly AED target → AI suggests availability windows → Noor avatar welcomes the chef.
Choose Date & Time → Select Chef → Build Menu → Set Preferences → Confirm & Enjoy.
Pick session type and preferred slot. APP-05 booking wizard.
Browse profiles or let AI match. Halal-aware, allergen-aware.
From 16,848-recipe library or request custom dishes.
Allergies, dietary needs (11 profiles), portion sizes.
Stripe escrow hold, chef en route, post-service review.
| Stage | Surface | System Action | Drop-Off Target |
|---|---|---|---|
| 1. Vault Setup | APP-01 | Household + 10 allergen flags saved, encrypted | < 12% |
| 2. Browse | APP-02/03 | AI ranks chefs by vault match + ETA + rating | < 18% |
| 3. Booking | APP-05 | Allergen recap forced confirm, AED quote | < 8% |
| 4. Escrow | APP-06 | Stripe hold, Shariah-compliant note shown | < 5% |
| 5. Chef Match | System | Push offer → 80% first-offer accept rate target | > 80% accept |
| 6. Live Service | APP-07 | ETA, chat, allergen recap to chef phone | 0% incidents |
| 7. Review | APP-08 | 5-star + allergen-safe ✓ vote, optional tip | > 65% submit |
Brand line on WhatsApp: +971 55 649 2370. Both inbound concierge and outbound transactional templates.
| Trigger | Response (EN) | Response (AR) | Channel |
|---|---|---|---|
| "Book chef tonight" | Offers 3 matched chefs + AED price | يقترح ٣ طهاة + السعر بالدرهم | Inbound DM |
| Booking confirmed | Receipt + allergen recap + chef ETA | إيصال + ملخص الحساسية + الوقت المتوقع | Outbound |
| T-24h reminder | "Tomorrow 7pm — Chef, nut-safe" | «غداً ٧ مساءً — الشيف، خالٍ من المكسرات» | Outbound |
| Chef en route | Live location + 15 min ETA | الموقع المباشر + ١٥ دقيقة | Outbound |
| Post-service | Review link + tip option | رابط التقييم + خيار البقشيش | Outbound |
| Ramadan broadcast | Iftar menus + early-bird slots | قوائم الإفطار + الحجز المبكر | Broadcast |
| Allergen alert (incident) | Escalates to human ops in 60s | تحويل فوري لفريق الدعم خلال ٦٠ ثانية | Inbound |
| # | Capability | Why It Matters | % AI Effort |
|---|---|---|---|
| 1 | Allergen-Safe Matching | Cross-checks vault vs chef menu vector — zero-tolerance, 10-allergen taxonomy | 22% |
| 2 | Bilingual NLU (AR/EN) | Khaleeji, MSA, Levantine + English code-switch | 14% |
| 3 | Menu Auto-Tagging | Vision + LLM tags 16,848 recipes for cuisine, diet, fast/slow | 13% |
| 4 | Dynamic Pricing Suggestion | Suggests chef pricing band (AED) by demand, distance, season | 12% |
| 5 | Booking Concierge Chat | Multi-turn natural booking on web/app/WhatsApp | 12% |
| 6 | Review Summarisation | Distils 100s of reviews to 3-line chef summary | 9% |
| 7 | Fraud / Risk Scoring | Detects fake EID, duplicate menus, refund abuse | 9% |
| 8 | Ops Copilot | Admin natural-language queries over Postgres + Datadog | 9% |
| LLM Engine Effort | 100% | ||
Every operating KPI shown as a % against revenue or a hard ratio target.
| KPI | Target (Month 6) | Measured At | vs Revenue |
|---|---|---|---|
| AI Match Accuracy | ≥ 94% | ADM-04 | — |
| First-Offer Accept Rate | ≥ 80% | Chef API | — |
| Allergen Incidents | 0 (zero-tolerance) | ADM-02 | — |
| Chef Take-Rate (Commission) | 18% | Stripe ledger | 18.0% |
| Payment Processing Cost | — | Stripe + Telr | 2.8% |
| Cloud + AI Infrastructure | — | AWS + OpenAI bills | 6.0% |
| WhatsApp / Twilio | — | Twilio billing | 1.4% |
| Customer Support | < 2.5 min FRT | Intercom | 3.2% |
| Refunds / Disputes | — | Admin | 1.1% |
| Cost-of-revenue as % of GMV | 14.5% | ||
Halal-first sourcing is on by default. Kosher, vegan, keto and full allergen-filtering are one toggle away during booking. Tell us once — every chef on your account inherits it.
| Domain | Authority | Requirement | Owner |
|---|---|---|---|
| Halal Sourcing | ESMA / MOIAT | Halal-only ingredients, chef attestation, audit log | Ops |
| Food Safety | Dubai Municipality, MOH | Food-handler card, kitchen hygiene SOP | Ops |
| Health (Chefs) | DHA / MOH | Occupational health card upload | Engineering (OPS-02) |
| Data Protection | UAE PDPL | Dubai data residency, consent, DSR API | Engineering |
| Allergen Safety | Internal + GCC standards | 10-flag vault, forced confirm, audit chain | Engineering + Ops |
| Shariah Finance | HSA / internal scholar | Escrow structure, no riba in late fees | Finance |
| VAT | UAE FTA | 5% VAT on platform fee, e-invoicing | Finance |
| Marketing | NMC / TDRA | Opt-in for WA broadcasts, unsub link | Engineering |
12-week phased delivery with weekly demos. Hard go-live gate at week 12.
| Week | Milestone | Acceptance Criteria | % Complete |
|---|---|---|---|
| 1–2 | Foundation | AWS Dubai env, CI/CD, auth, Postgres, monorepo | 10% |
| 3–4 | Vault + Chef KYC | APP-01 vault, OPS-01→06 onboarding live | 25% |
| 5–6 | LLM Match v1 | pgvector match, 90%+ accuracy in staging | 45% |
| 7–8 | Booking + Escrow | APP-05/06, Stripe Connect, refunds | 62% |
| 9 | WhatsApp Bot | All triggers AR/EN, Twilio templates approved | 75% |
| 10 | Avatar Noor | HeyGen + ElevenLabs integrated, 10 scripts live | 85% |
| 11 | Admin + Reports | ADM-01→04, finance & allergen audit | 95% |
| 12 | Go-Live + Hypercare | Pen-test passed, PDPL sign-off, 0 P1 bugs | 100% |
Every milestone requires: (1) green CI, (2) Datadog dashboard live, (3) test coverage ≥ 80% on critical paths, (4) bilingual UI parity, (5) PDPL log entry verified, (6) sign-off by Aziz on Loom walkthrough.
Cost roll-up by workstream. All figures in AED — to be confirmed with engineering partner.
| Workstream | Effort (FTE-wks) | Cost (AED) | % of Total |
|---|---|---|---|
| LLM Engine + Vector Match | 32 | [TBC] | 28% |
| Client App (RN) | 22 | [TBC] | 18% |
| Chef Ops Portal | 16 | [TBC] | 14% |
| Public Web + CMS | 12 | [TBC] | 11% |
| WhatsApp Bot | 10 | [TBC] | 9% |
| Admin Console | 9 | [TBC] | 8% |
| AI Avatar Noor | 8 | [TBC] | 7% |
| Infra + Compliance | 6 | [TBC] | 5% |
| Phase 1 Total (12 weeks) | 115 FTE-wks | [TBC] | 100% |
This SOW becomes binding upon dual signature. Any change to scope, stack, or commercials requires a written change-order acknowledged by both parties.
Aziz Saif
Founder, EatCookJoy UAE
aziz@azizsaif.com
+971 55 649 2370
[Name]
Engineering Lead
[email]
[phone]