Say it. Or drop it in.
A sentence, your slides, the handbook PDF, a YouTube lecture, a stack of links. Type it, paste it, or say it out loud.
I want to learn
Slides, PDFs, links, a voice note — or one plain sentence. Whatever you have.
Four steps, and the first three cost nothing. You go all the way to a complete path — the whole shape of the subject, every lesson in order — before anything is written or charged for.
For example: espresso at home, sql for analysts, public speaking, balance sheets, watercolour washes, spanish for june, anatomy in six weeks, beekeeping, postgres performance, sourdough science.
Starting is one sentence. The questions take a minute. Then the part nobody else built: it keeps teaching you for four months.
A sentence, your slides, the handbook PDF, a YouTube lecture, a stack of links. Type it, paste it, or say it out loud.
I want to learn
Slides, PDFs, links, a voice note — or one plain sentence. Whatever you have.
Your level, your goal, your deadline, the hours you actually have. The questions a tutor asks in the first five minutes — one tap each.
How much do you already know?
What’s the goal?
Time each week?
The path draws itself, topic by topic. Lessons get written in the format their knowledge needs, land on your calendar, and come back for review before you forget.
Live, topic by topic — no spinner. Lime means do it, cobalt means “this or that”, grey means anytime. Click any box and the lesson opens right there.
Extraction fundamentals
Puck preparation
Dialling in espresso at home
A course roadmap: 4 topics in order. You are on step 2, “Recognising sour, sweet & bitter in a shot”.
A chat tells you “great answer!” every time. Here a written answer is marked against a rubric written first, code runs against real tests, and a speaking drill hears what actually came out of your mouth.
Your shot tastes sharp and sour. What went wrong, and what would you change?
You tied the sourness to the water leaving too soon and named the right lever. You didn’t say why a finer grind slows it down.
total() must refuse a negative price. Make all three cases pass.
1def total(prices):2 """Sum a cart."""3 if any(p < 0 for p in prices):4 raise ValueError("negative")5 return sum(prices)
At the ticket desk in Madrid. Say each one out loud.
¿Dónde está la estación de tren?
Where is the train station?
/ˈdon.de esˈta la es.taˈθjon de tren/
That’s the one: es-TÁ, “is”. Next phrase.
Life happens. Miss three days and the plan just… slides — no red, no backlog, no guilt. And review lands right before you’d forget, so what you learned in week one is still there in week four.
Italian by June
Vorrei softens the ask — “I would like”. Voglio is the blunt “I want” a child says at the counter.
Open the lessonHow well did you remember this?
Italian by June
Ciao for friends, buongiorno for the barista — and the five vowels that never change their sound.
Open the lessonHow well did you remember this?