Tasting Assessments

If you are a Premium user, you can now add tasting assessment fields to your shots. This gives you a structured way to capture the sensory side of a shot instead of leaving everything buried in freeform notes.

I did not want to invent some random scoring system here, so this is based on the modern SCA CVA Descriptive direction, also known as the new SCA cupping form. Specifically, you can assess a shot across 7 dimensions: fragrance, aroma, flavor, aftertaste, acidity, sweetness, and mouthfeel. Each one is rated on a 0 to 15 intensity scale, based on the official descriptive assessment.

Those fields then show up visually on the shot page and comparison page, so you can get a quick feel for how two shots differ without having to read through everything line by line. I am quite excited about this one because I have wanted to render a taste “spider web chart” for a long time, but it took me quite a while to end up at a solution I actually liked.

There were some other nice improvements as well. I fixed a long standing annoyance where zoomed charts had broken hover behavior, so chart exploration should now feel smoother. I also fixed a few user reported issues: some GaggiMate files inconsistently using the wrong flow source, Loffee Labs bean search no longer returning results, and broken Gaggiuino timestamps sending shots back to 1970. If you run into bugs, or just have ideas for improvements, please keep opening GitHub issues. I really do read them all, and they most often end up shipped.

Behind the scenes, I also started self hosting the API docs and finished moving all storage away from Amazon to Cloudflare. I had already moved avatars away from Cloudinary a while back, and now everything else is on Cloudflare too. So Visualizer is now completely de-Amazoned. ☁️

As always, there were many smaller fixes and polish updates too, including some UI cleanup, better headings, sticky coffee bag edit titles, and a few Loffee Labs improvements.

Thanks for reading, and enjoy what’s left of the weekend! ☕


Metadata Comes to Coffee Bags

It has only been a little while since the last update, but there have already been a lot of changes.

The biggest one comes from a GitHub request: coffee bags now support custom metadata fields, just like shots.

If you use Coffee Management, you can now add your own bag fields and track whatever matters to your workflow: processing experiments, shelf notes, purchase context, green source details, whatever you want. This also makes metadata support much more consistent across Visualizer, instead of shots and bags behaving differently.

Another nice charting tweak: Water Dispensed now supports the same second Y-axis option as Weight. Small change, but very handy when values are far apart and you want cleaner multi-series charts.

As always, there were many smaller updates, cleanups, and bug fixes too, including fixes based on reports like #232 regarding Gaggiuino sometimes missing start times.

Thanks for all the ideas and bug reports, and please keep them coming! 🥰

Enjoy your weekend! ☕


Frozen Bags, Hot Shots

It’s been less than a week since the last update, but there were tons of changes anyway.

The biggest one is coffee bag freezing, based on a GitHub issue. You can now set frozen and defrosted dates for coffee bags, and Visualizer uses that to better organize coffee bags and display freezer info where it matters. Coffee bags are now ordered active, frozen, then archived, and frozen ones have a slight blue hue so they’re easy to spot. ❄️

Please keep sending ideas via GitHub issues or just email me. I don’t always ship things fast, but requests absolutely enter my thinking cycle and very often get done. To name just a few recent examples: 2nd y-axis for weight, community stats page, and date search.

Another big change on the API side: coffee bags and roasters now support full create/update/delete operations! Also, I’ve moved coffee bag endpoints to root level (/api/coffee_bags). Existing nested coffee bag routes still work via redirects, so older integrations don’t break. If you maintain an integration, please switch to the new endpoints because I might remove the redirects in the future. ⚠️

I also fixed a few UX rough edges: when creating a new coffee bag, the suggestions now refresh when you select a Loffee Labs linked roaster, the community trending page is better on phones, and PWA supports landscape too, thanks to another GitHub request.

Thanks for reading, enjoy the rest of your weekend! ☕