Compare
WDDNG vs Makunike.com AI Twin vs Multichoice installer payments
The problem, what was built, the stack and the outcome, next to each other.
Clear · Up to 3 at a time
In common
- Shared stack: none in common
- Order: WDDNG (Jan 2026 – present) → Makunike.com AI Twin (Oct 2026)
Swipe sideways to compare ›
WDDNG ›
South Africa's wedding marketplace, with two apps on Google Play
Makunike.com AI Twin ›
This website: a portfolio you can interview by phone call or chat
Multichoice installer payments ›
R5M+ paid to installers in the first six months
At a glance
- Role
- Founder / Full-stack & Mobile Engineer
- When
- Jan 2026 – present
- Length
- 10 mo so far
- Status
- Live
- Type
- AI, Mobile, Web
- Role
- Designer & Engineer
- When
- Oct 2026
- Length
- 1 mo
- Status
- Live
- Type
- AI, Web
- Role
- Integration engineer
- When
- Delivered
- Length
- —
- Status
- Delivered
- Type
- Platform
The problem
South African couples plan across fragmented directories, WhatsApp messages and opaque “price on request” listings, while many international tools don't support local multi-ceremony wedding journeys.
Portfolios are static, but hiring conversations aren't. A recruiter wants to know whether I've shipped mobile apps, a hiring manager wants a production story in STAR form, and a sourcing agent wants structured answers it can compare. A PDF CV can't do any of that.
Integrated the installer management system into Multichoice's payment process so installers are paid accurately and on time.
What was built
A Next.js and Supabase marketplace with two Kotlin / Jetpack Compose Android apps on Google Play: one for couples, one for vendors. Thuli, the AI planner, is a LangGraph supervisor coordinating 16 specialist agents.
A digital version of me that holds a real interview by phone-style voice call or text, grounded only in material I curated. It changes what's on screen as it answers, logs what it can't answer so I can teach it, records and QA-scores every call, and is reachable by other AI agents over MCP and A2A.
—
Stack
- Next.js
- Supabase
- PostgreSQL
- Kotlin
- Jetpack Compose
- LangGraph
- Zod
- Paystack
- Azure
- LangSmith
- Next.js 15
- React 19
- Tailwind CSS v4
- GPT-6.1 (Azure, Responses API)
- gpt-realtime-2.1
- WebRTC
- text-embedding-3-small
- Supabase pgvector
- TypeSafe Jev
- MCP
- A2A
- Azure Blob
- LangSmith
- Vercel
- Payments integration
Highlights
- Two Kotlin / Jetpack Compose Android apps published on Google Play
- Thuli: a LangGraph supervisor coordinating 16 specialist agents through Zod-typed handoff tools
- Per-agent model selection, token metering and LangSmith tracing
- SSE streaming that renders vendor cards and progress during an answer
- Generative UI: the model calls typed navigate and show_panel tools, streamed to the browser as NDJSON events
- Phone-call voice on gpt-realtime-2.1 over WebRTC, with every call recorded, transcribed and QA-scored
- TypeSafe Jev in ten places: routing, tool selection, interview mode, guards, lead scoring, grounding, triage, FAQ review, agent vetting and call QA
- Self-improving RAG: weak or ungrounded answers land in a ranked CMS inbox and become FAQs
- MCP and A2A servers with request vetting and rate limits for agent-to-agent interviews
- Processed over R5 million in installer payments within six months
Infrastructure choices
- Supabase with PostgreSQL RLS
- Vercel serverless (Next.js route handlers)
- Azure OpenAI
- Supabase Postgres + pgvector (HNSW)
- TypeSafe Jev
- Azure Blob Storage
—
Outcome
The marketplace runs across web and two production Android apps, giving couples structured planning tools and vendors better-qualified enquiries with date, budget and guest-count context.
The twin never invents a fact about my career: when it doesn't know, it says so and I'm notified. Intent-matched navigation fires within about a second, before the first answer token. Every call is recorded, transcribed and scored so review starts with the calls that need it, and one knowledge base serves text, voice, MCP and A2A.
Over R5 million in installer payments processed within six months.