← All work
Multi-brand platformPHP / LaravelConversion funnelDDD

Built the quiz-to-checkout engine behind 10 personalized-diet brands selling in 180 countries

Role
CTO / Lead Engineer
When
Jan 2020 - present
Read
6 min read
Impact
180

Built with PHP / Laravel 10 · Vue 3 / TypeScript · PostgreSQL · MongoDB · Google Vertex AI · Primer / Adyen

Quiz to checkout, in one sessioncold ad traffic → paying subscriberQuizanswers kept in-browser1Personalized plancalories · recipes · workout2Checkoutmulti-currency · wallets3Subscriberplan unlocked4one domain-driven core, configured per brand~10 diet & fitness brands · 180 countries · multi-currency
The funnel: one quiz-to-checkout core, configured into ~10 brands across 180 countries

Overview

YourKeto is a personalized-diet subscription. You answer a short quiz about your goals, body, and eating habits, and it builds a plan around them: calorie and macro targets, a keto meal plan with recipes and shopping lists, and a workout to match. It is not a single website. The same platform powers a family of around 10 diet and fitness brands, each on its own domain, language, and currency, from keto and intermittent fasting to vegan and low-carb.

I have led its engineering as CTO and lead engineer since January 2020. It is a Laravel and Vue 3 platform built with domain-driven design, so one core (the quiz, the plan generator, the checkout) serves every brand instead of a separate codebase per site. It runs on PostgreSQL with read replicas alongside MongoDB, and every brand shares the same funnel, plan engine, and multi-currency checkout.

The problem

The business runs on paid traffic: cold visitors from ads have to turn into paying subscribers inside a single session. That funnel has to personalize a real plan for each person, sell across many countries with the right currency and payment methods, and do all of it for around 10 brands at once, without maintaining 10 separate codebases. And because every visitor is bought, speed and uptime are money, since a slow or broken funnel is paid traffic set on fire. The job was to build one platform that does all of this and stays up.

What I built

The funnel opens with a multi-step quiz. To keep it fast under ad-scale traffic, the answers live in the browser as the visitor moves through it, so the early steps make no server round-trips and the backend only gets involved once there is a real lead. When the quiz finishes, a plan generator turns those answers (goals, body measurements, food preferences) into a personalized plan: calorie and macro targets, a keto meal plan with recipes and shopping lists, and a matching workout, generated per person rather than chosen from a fixed set.

From the plan, the visitor moves into checkout, and this is where the international side lives. Prices show in the visitor's own currency, converted from live exchange rates, and the checkout offers the payment methods that actually work in their country: cards, PayPal, Apple Pay, and Google Pay, orchestrated through Primer and Adyen so a single flow clears payments across 180 countries. Upsells and downsells run inside that same flow, and each brand gets its own pricing, copy, and offers without a checkout of its own.

Underneath, it is one domain-driven codebase. Each brand is configuration: its own domain, language and translations, currency, tracking pixels, and payment descriptors, over a shared core of quiz, plan generator, and checkout, so launching a brand is not a new application. The same core runs the growth machinery too: content generated and translated with GPT, and a machine-learning model on Google Vertex AI that predicts each customer's lifetime value to steer how much the business spends to acquire them.

Demo: the quiz, a personalized plan, and checkout
~10 brands · own domainsYourKetoIntermittent fastingVegan · Low-carb+ 7 more brandsOne Laravel + Vue core (DDD)Quiz + funnelPlan generatorCheckout · Primer / AdyenAdmin + resellersper-brand config: domain · language · currency · pixelsPostgreSQLread replicasMongoDBcache + sessionsVertex AIpredicted LTVGCS + Cloudflaremedia + CDNnightly
One domain-driven core, configured into every brand, on PostgreSQL, MongoDB, Vertex AI and a CDN

The results

The platform sells in 180 countries across around 10 brands, all from one domain-driven codebase rather than a fork per brand. In more than six years of running it, we have had effectively zero unplanned downtime, on a stack built for it: PostgreSQL read replicas, MongoDB-backed caching and sessions, and centralized logging and error tracking that catch problems before they surface. Reaching a new market or adding a brand is a configuration change, not a rebuild, and a Vertex AI model keeps paid acquisition spending where it earns its money back.

180countries served, across ~10 diet & fitness brands10brands on one codebase0unplanned outages since 2020PostgreSQL read replicasMulti-currency checkoutVertex AI predicted LTV
What the platform delivers: global reach, many brands, and years of uptime