Built the quiz-to-checkout engine behind 10 personalized-diet brands selling in 180 countries
Built with PHP / Laravel 10 · Vue 3 / TypeScript · PostgreSQL · MongoDB · Google Vertex AI · Primer / Adyen
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.
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.