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! ☕


Better Charts, Clearer Bags, and Trending Tweaks

It’s been just over a week since the last update but there’s been lots of changes.

I’m very happy with the new payment processor Creem so far — it’s been super smooth for all new Premium subscribers. And, just a reminder: there is no migration path. So if you’re an existing Premium user paying more than €5/€50 because of VAT or other sales taxes and want to switch, just email me and we’ll find a way!

I managed to close a long‑open request from September 2024 about the weight curve squashing all the other lines. LLMs are really good at JavaScript, so I finally managed to tackle this! However, I don’t think everyone wants this, so I made it optional. If you want the weight curve on a secondary y-axis, you can enable it in your profile settings if you’re a Premium user.

2nd y-axis option

While I was in there, I also tightened up chart annotations/toggles and moved chart logic into a dedicated controller/helper setup to make it more resilient.

Since coffee bag archiving now exists, it felt silly to pick a roaster first and then a bag just to get to the one you want. In Coffee Management, the dropdown now lists all non‑archived bags directly, which makes editing much easier.

The community trending page experiment also got an update - it now shows the average ratio for each profile. I’m still super open to feedback on this.

Good news for Beanconqueror users as well: brew data is now editable. If you empty any of the fields, it no longer shows on the shot page, which makes it much clearer.

There have also been many improvements in Airtable syncing and Loffee Labs importing. I also managed to speed up the database backup from ~1.5h to ~20min — and yes, I tested a restore too, so it actually works. 😅

Thanks for reading, and I hope your weekend is filled with great coffee! ☕


New Year, New Payment Processor, Meticulous Support, and Much More

Happy New Year! 🥳

I realized I haven’t posted in over a month! That doesn’t mean things were quiet though as there have been lots of changes since the last update.

Every Christmas brings a new Ruby release, and as usual I couldn’t resist upgrading Visualizer immediately. There’s been 0 issues with it specifically, but some of you might have noticed other issues.

For several weeks Visualizer was a target of automated attacks, which caused a few brief interruptions. The service recovered on its own within ~30 seconds each time, but there were short windows of unavailability. I’ve applied several hardening fixes based on what these attempts revealed.

There’s a silver lining, though. Those attacks surfaced a nasty edge case: some shots were so badly malformed that simply viewing them could trigger an infinite loop and bring a web server down. That is now fixed, so this won’t happen again. And now Visualizer is better for everyone. 😅

New Payment Processor

The Lemon Squeezy road has been bumpy from the very beginning. The product often doesn’t work, and I’m getting errors I have no control over, which results in people being unable to subscribe or subscriptions expiring incorrectly. Their Stripe integration story has been even rougher. I’ve been in their preview programme since early August and the very basic things still aren’t resolved, and they’ve been ghosting my emails for over 5 months now.

As of today I’ve switched from Lemon Squeezy to Creem for all new subscribers. If you’re already on Lemon Squeezy, nothing changes - you’ll keep renewing there. Creem doesn’t offer migrations yet, so if you cancel and later resubscribe, you’ll go through Creem.

Exactly a year ago I promised that the prices will not increase, and today Premium is actually getting cheaper for EU customers because the VAT is now included in the price. I can do that because Creem is based in Europe. Which is also a nice plus with everything else going on in the world right now. 😬

Meticulous support

Thanks to Paul’s PR Visualizer now understands Meticulous files. There were some hiccups with profile support, but that should now be smooth too. Can’t wait to see how this community evolves. 🥰

API changes

There’s now an update shot endpoint, which allows you to edit all the fields on the shot, including custom fields, if you’re a Premium user.

I’ve also added a rate limit and when you exceed it, you’ll see 429 errors. It’s mainly there for script vibe kiddies, and AI crawlers, as the limits are quite high so I don’t think any real users will be affected.

Misc

I experimented with Codex and told it to write me a fun community stats page. It’s been improved somewhat by Discord suggestions already, but I’m still open for ideas on how to make it better, more valuable, and more interesting. At least I want it to be a bit more substantial before I expose it more publicly.

If you use Coffee Management, I’ve also re-added Roasters page in case you want to delete some roasters or just look at your entire collection for some reason.

Thanks for reading, and have a good remaining of the week! ☕