Espresso Journal
Log Shot
Journal
01Bean Info
02Grinder Used
⚙️ K-Ultra Manual — 1Zpresso
DF54 Electric — MiiCoffee
🇻🇳 Phin Filter Vietnamese drip
03Shot Parameters
04Taste & Rating
Sour
Bitter
Balanced
Sweet
Fruity
Nutty
Chocolatey
Flat / dull
Harsh
Smooth
Your shots
No entries yet
No shots logged yet — pull one and log it!
Google Sheets Integration
Every time you save a shot, it can be sent automatically to a Google Sheet. Here's how to set it up in about 5 minutes.

Status

Not connected — enter your Web App URL below to connect

Step-by-step setup
Follow these steps once — takes about 5 minutes.

1. Go to sheets.google.com and create a new spreadsheet.
2. Name the first sheet tab: Shots
3. In the spreadsheet, go to Extensions → Apps Script
4. Delete any existing code and paste in the script below:

function doGet(e) { var sheet = SpreadsheetApp .getActiveSpreadsheet() .getSheetByName('Shots'); if (sheet.getLastRow() === 0) { sheet.appendRow([ 'Date','Bean','Roast','Grinder', 'Grind Size','Dose (g)','Yield (g)', 'Time (s)','Ratio','Taste Notes', 'Rating','Notes' ]); } var p = e.parameter; sheet.appendRow([ p.date, p.bean, p.roast, p.grinder, p.grindSize, p.dose, p.yield_g, p.time, p.ratio, p.taste, p.rating, p.notes ]); return ContentService .createTextOutput('ok') .setMimeType(ContentService.MimeType.TEXT); } function doPost(e) { return doGet(e); }

5. Click Deploy → New deployment
6. Type: Web app
7. Execute as: Me · Who has access: Anyone
8. Click Deploy → copy the Web App URL and paste it above.