Back to projects

Qahwa Lab (قهوة لاب)

Qahwa Lab is an Arabic-first learning platform that takes beginners from a first espresso machine to confident home barista through a six-stage journey.

Year
2026
Type
Web app
Status
Private

Private build — shown as a case study, not a public product.

The problem. Someone in Jordan buys their first espresso machine and immediately hits a wall: every guide is in English, assumes gear they don't have, and hands them recipes without ever explaining why. Qahwa Lab takes an absolute beginner from "I just bought a machine" to a confident home barista — Arabic-first, and priced for the local market.

The hard part. The easy product is a recipe list. The valuable product teaches judgment — so a learner can adapt when the recipe doesn't work on their beans. That meant designing a real pedagogy, not content: a six-stage journey where each stage builds on the last, a gear encyclopedia organized by the purpose of each tool rather than by product, and interactive dial-in tools where changing dose or yield moves a live brew-ratio dial so cause and effect are visible. Getting the sequencing right — never referencing a concept before it's taught — was the core of the work.

The approach. A Turborepo monorepo with a Nuxt web app and a NestJS API sharing typed types and ui packages, backed by PostgreSQL/Prisma, Redis, and MinIO, and a Docker Compose stack that stands the whole thing up with one command. Arabic/English parity isn't left to discipline — an automated i18n checker fails on missing keys or hardcoded strings, and Playwright drives E2E across three breakpoints in both locales. Strict TypeScript throughout: no any, no @ts-ignore.

The outcome. A structured learning platform that treats a beginner's confusion as the actual problem to solve — with the engineering rigor (typed monorepo, enforced i18n, real E2E) usually reserved for products far less playful.

My Role

Founder & Full-Stack Developer — designed and built the full monorepo end-to-end: the learning pedagogy and content model, the Nuxt web app (journey, dial-in tools, gear encyclopedia, infographic studio), the NestJS + Prisma + Redis + MinIO API, and the Dockerized stack, all gated by strict typing, enforced i18n parity, and dual-locale Playwright E2E.
  • Nuxt
  • Vue 3
  • TypeScript
  • NestJS
  • Prisma
  • PostgreSQL
  • Redis
  • MinIO
  • Turborepo
  • pnpm
  • Playwright
  • Docker
Qahwa Lab (قهوة لاب) — screenshot 1 of 2Qahwa Lab (قهوة لاب) — screenshot 2 of 2