Lees is an open source cider and mead batch tracker built for homebrewers.
It helps you manage fermentation batches, track gravity and temperature logs, and monitor dashboard metrics from a single web app.
- Frontend: React 19, Vite, React Router, Tailwind CSS 4
- Backend: FastAPI, SQLAlchemy, Pydantic
- Database: SQLite
Lees/
backend/ # FastAPI API + SQLAlchemy models + SQLite database file
frontend/ # React/Vite single-page app
DESIGN.md # Product/design system notes
- Create, view, update, and delete fermentation batches
- Record batch logs (specific gravity, temperature, notes, ratings, honey additions)
- Filter batches by status
- Dashboard metrics endpoint for active gallons and average fermentation temperature
- CORS-enabled local dev setup between frontend and backend
- Python 3.11+
- Node.js 20+
- npm 10+
From the repository root:
cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install fastapi uvicorn sqlalchemy pydantic
uvicorn main:app --reloadBackend is available at:
- API root: http://127.0.0.1:8000
- Interactive docs (Swagger UI): http://127.0.0.1:8000/docs
In a second terminal:
cd frontend
npm install
npm run devFrontend is available at:
Base URL: http://127.0.0.1:8000
GET /api/dashboard/metrics- dashboard summary metricsPOST /api/batches- create a new batchGET /api/batches- list all batches (optional?status=ACTIVEfilter)GET /api/batches/{batch_id}- get one batchPATCH /api/batches/{batch_id}- partially update a batchDELETE /api/batches/{batch_id}- delete a batchPOST /api/batches/{batch_id}/logs- add a log entry to a batch
- SQLite DB file is stored at
backend/lees_tracker.db. - Tables are created automatically when the backend starts.
- Local CORS is preconfigured for
http://localhost:5173andhttp://127.0.0.1:5173.
- Fork the repository.a
- Create a feature branch.
- To populate with sample batches, run
npm run seed - Make changes with tests or manual verification notes.
- Open a pull request with a clear summary and screenshots for UI changes.
MIT License