Visualizer v4

I’ve been working on this for a while. Several ideas that I’ve implemented have been in my TODO list for more than a year. It was a very busy year, so I kept postponing, and doing bit by bit here and there, but the progress was super slow. A couple of months ago I even deactivated my Instagram account, so I could have a bit more time to focus on this. And since mid-September, I was all in. The Pull Request is massive: 104 commits, 174 files and 4,140 lines changed. 🙈

So what’s new?

Logo and UI

As you’ve probably already noticed, Visualizer finally has a logo. 🥳

Visualizer logo

Another thing you’ve undoubtedly noticed is the change in color scheme and UI. I took inspiration from my favorite designer, but in general I just wanted the interface to feel lighter.

From a completely new menu, fancy overlaying notifications, improvements in responsive design, new heading fonts, to nicer error pages, and countless tiny fixes, there aren’t many lines of display code that weren’t touched.

I’m a software developer, so there are still many places where it screams designed by an engineer, and I do hope to tackle those in the future. And, if anyone out there wants to help out with UI/UX, my email is always open.

Infinite loading

A massive UX change: pagination is gone. Everywhere. In its place is continuous loading, which makes it so much faster to scroll to the thing you are looking for.

Infinite loading

Instant Filters

For sure my favorite feature of this update. I usually have several coffee bags open at the same time, and I also like to re-order coffees I’ve liked in the past. And I always keep a decaf in the fridge, because you never know when the espresso martini kind of evening shows up. And in all those cases I want to quickly find the last shots I made with a specific coffee, and which settings I used.

I first took a stab at this problem with Recent Grinder Settings, but I was never super happy about it. More often than not, the coffee I was looking for, was no longer on the list.

Then in October I took a deep dive into grouping shots by coffee, and that took a ton of time and work, and it looked great. But when I actually tried to use it, I was not happy at all. It was too cumbersome, and it didn’t much improve the speed of finding a coffee. Back to the drawing board.

Then one day it hit me: why not just make the search instant?

Instant Filters

Despite the name, Instant Filters have nothing to do with either instant or filter coffee. It’s all about filtering your own shots by any parameter you want instantly. And, of course, it comes with infinite loading as well. So regardless if you’re on your computer, phone, tablet, or however else you’re accessing Visualizer, finding the exact settings you used in the past is now just a couple of keystrokes away. I couldn’t be happier by how well this works in practice. 🥰

Like Recent Grinder Settings before, this feature is only available to Premium members. But, of course, you can still search including your own shots, and with the aforementioned infinite loading, that also got much faster and nicer.


Decent People was a great thing when there were only tens / hundreds of us here. But since this community has grown so much, that page became nearly useless. A list of public people ordered alphabetically simply isn’t that useful anymore. I took a couple of stabs at reworking it, but in the end I decided to cut it. You don’t care about people’s names, you care about their shots. And since Search is such a vague term, and that page is all about shots from other people, that page got rebranded into Community.

Real-time updates

With the new UI, I made several changes in how I display shots. This allowed me to enable real-time updates. So if you create, delete, or even edit a shot, it’s immediately reflected in all of your browser windows/tabs. That also works with Airtable changes. As soon as they notify me about a change, it gets reflected in the shot list. ✨

Real-time shot sync

Performance improvements

There are also a bunch of small optimizations and improvements all over the codebase, with the most work done on speeding up the parsers, which drastically improved upload speeds. Importing Beanconqueror files, for example, is now 20-300x faster. And no, the second 0 after 3 isn’t a typo. 🚀

In closing

And now, I’d love to hear from you. What do you think about these changes? What do you like, what should be improved? Especially if something doesn’t work quite as expected, please let me know immediately!

Thank you for reading, and I hope you enjoy all these changes and improvements. ☕️