Skip to content

grzonka/BeanBay

Repository files navigation

BeanBay

🌐 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


How It Works

Brew page — select setup and bean, then get a recommendation Recipe recommendation — optimized grind, temp, dose, yield and more Rate your shot — taste score, extraction time, flavor profile

1. Choose your setup and bean2. Get a BayBE-optimized recipe3. 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.

Insights — optimization status, progress chart, parameter map Equipment management — brew setups, grinders, brewers, filters, water Navigation sidebar

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.


Quick Start (Docker)

docker run -d \
  --name beanbay \
  -p 8000:8000 \
  -v beanbay-data:/data \
  ghcr.io/grzonka/beanbay:latest

Then open http://localhost:8000 in your browser (or phone).

Or with docker-compose:

docker compose up -d

Development Setup

git clone https://github.com/grzonka/beanbay.git
cd beanbay
uv sync
alembic upgrade head
uvicorn app.main:app --reload

App runs at http://localhost:8000.

Run tests:

pytest

License

Apache 2.0 — see LICENSE.

About

Coffee optimization powered by Bayesian learning. Track beans, brew, taste, optimize — for espresso, filter, and beyond.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors