🌐 Try the demo: demo.beanbay.coffee
The demo is hosted for feedback purposes only — to evaluate interest in BeanBay as an online offering. Data is not stored long-term and will be purged periodically.
⚠️ Work in Progress — This project is under active development and not yet ready for general use.
Self-hosted coffee optimization powered by Bayesian learning.
BeanBay is a phone-first web app for dialing in coffee recipes. It uses BayBE (Bayesian optimization) to learn from each brew and recommend better recipes over time. The loop: get a recommendation → brew → taste → rate → repeat. BayBE improves its suggestions with every shot.
Supports 7 brew methods — espresso, pour-over, french press, AeroPress, Turkish, moka pot, and cold brew — with equipment-aware parameters that adapt to your specific gear.
Runs as a single Docker container. No cloud, no accounts — just your setup and a browser.
Stack: FastAPI · Jinja2/htmx · Tailwind CSS/daisyUI · SQLite · BayBE · Docker
1. Choose your setup and bean → 2. Get a BayBE-optimized recipe → 3. Brew, taste, and rate
The optimizer starts with random exploration to map the parameter space, then progressively narrows in on your best recipe. Every shot — even failed ones — teaches it something.
Track your progress with optimization status, score charts, and parameter maps. Manage your equipment — grinders, brewers, filters, water recipes — organized into brew setups that define which parameters the optimizer tunes. Transfer learning across similar beans gives smarter first recommendations.
docker run -d \
--name beanbay \
-p 8000:8000 \
-v beanbay-data:/data \
ghcr.io/grzonka/beanbay:latestThen open http://localhost:8000 in your browser (or phone).
Or with docker-compose:
docker compose up -dgit clone https://github.com/grzonka/beanbay.git
cd beanbay
uv sync
alembic upgrade head
uvicorn app.main:app --reloadApp runs at http://localhost:8000.
Run tests:
pytestApache 2.0 — see LICENSE.





