A single-page brewing guide tuned to my exact kit. Pick a machine, pick a drink — it gives you the Varia VS3 grind number, the dose/yield/time readout, every step, a built-in brew timer, and the gear that actually helps.
No build, no dependencies. Just open index.html (or the live page) on your phone in the kitchen.
| Device | Role | Notes |
|---|---|---|
| Varia VS3 | Grinder | Grind shown as the dial number (~0–20 scale, finer = lower). Espresso 0.2–3.3, moka 3.1–7.8, cold brew 10.1–19.6 per the Honest Coffee Guide Gen 2 chart. |
| DeLonghi Dedica | Espresso | 51 mm pressurized basket — grind runs a touch coarser than a true espresso machine. |
| Moka pot (makineta) | Stovetop | Medium-fine, salt-like grind; no pressure needed. |
| Cold brew | Immersion | No machine — very coarse grind, 14–16 h fridge steep, then strain. |
| Filter | V60 / French press | Manual brews off the grinder — medium (V60) to coarse (press). |
| Drink | Machine | Grind | Dose → Yield | Time |
|---|---|---|---|---|
| Espresso / milk drinks | Dedica | 2.5 | 14 g → 28 g | 25–30 s |
| Flat white (tighter) | Dedica | 2.3 | 14 g → 26 g | 25–30 s |
| Moka coffee | Moka pot | 4.8 | fill basket → full pot | ~4–5 min |
| Cold brew concentrate | Immersion | 13 | 100 g → 500 ml | 16 h steep |
| Smooth cold brew | Immersion | 15 | 80 g → 650 ml | 14 h steep |
| V60 pour-over | Filter | 6.5 | 20 g → 320 g | ~3 min |
| French press | Filter | 11 | 30 g → 450 g | ~8 min |
These are starting points within the VS3's per-method ranges. Taste, then nudge: sour & fast → finer (lower number); bitter, slow or choking → coarser (higher). The Dedica's pressurized basket likes espresso a touch coarser (~2.5) than a bare basket would.
- Machine → drink picker with a machine-readout recipe card (grind / dose / yield / time).
- Illustrated animated step player — each step plays a hand-drawn SVG scene; prev/next, dot progress, auto-play.
- Built-in timer with a target marker (shot time / moka time).
- ★ Favorites — star any drink; a quick-access strip pins them at the top (kept in local storage).
- Your dial-in — save your own grind number + notes per drink (e.g. bean, ratio, tweaks).
- Rate this cup — a 1–5 star quality rating plus a one-tap taste log (sour / just right / bitter) per shot. Tracks avg/best over all cups; after a couple it spots the pattern and suggests a grind change with a one-tap Apply (sour→finer, bitter→coarser, step scaled to the brew method), or tells you it's dialed in.
- 🎲 Surprise me — jumps to a random drink.
- Share / deep links — every drink has its own URL (
…/#dedica/cappuccino); the share button uses the native share sheet on mobile or copies the link. Opening a shared link lands right on that recipe. - Gear that helps per drink — with the why, and the 51 mm tamper flagged as essential.
- Installable PWA — add to your home screen, runs fullscreen and offline (service worker + app icons).
- Bilingual EN / עברית with full RTL — every drink, step, and gear item translated; toggle in the header.
- QR code on the page — scan from desktop to open it on your phone (
make_qr.pyregenerates it). - Cloud sync — pick a sync code and save your favorites, notes & ratings to the server, then load them on any device or share the code. Auto-saves on change; works from the GitHub Pages copy too (CORS). Runs on the server build (
server.py), which also serves the static app. - Light / dark coffee theme, remembers your last pick + language.
Open https://adbitrush.github.io/espresso/, then:
- iPhone (Safari): Share → Add to Home Screen.
- Android (Chrome): tap the Install banner, or menu → Install app.
It then opens like a native app and works with no signal. Icons are generated by make_icons.py (run it to rebuild them).
# just open the file
open index.html # macOS
start index.html # WindowsOr serve it and hit it from your phone on the same Wi-Fi:
python -m http.server 8080Settings → Pages → Deploy from branch → main / root. Then it's live at
https://adbitrush.github.io/espresso/.
Grind numbers are opinions, not gospel — dial them to your beans.