Spring Smooth Sailing

After the migration adventures and follow-up fixes, I’m happy to report that everything with Lemon Squeezy is now running smoothly! 🍋 Thank you to everyone who stayed patient during those initial hiccups - your understanding means the world to me. 🥰

I don’t think I say this nearly enough: I want to thank every single Visualizer user — your shots, shared links across Discord and forums, and general enthusiasm make this whole project worthwhile! A special, extra-deep thank you goes to all Premium users, past, present, and future. Your support is what keeps Visualizer growing, improving, and honestly, existing at all. You’re the reason I can dedicate so much of my free time to building this platform we all love. 💖

Welcome, Gaggiuino Users! 🎉

I’m thrilled to announce that Visualizer now has native support in Gaggiuino since v.6655d6d! A warm welcome to all new users coming from the Gaggiuino community.

There was a small hiccup with “Water Dispensed” being off by a factor of 10, which I’ve quickly fixed, including retroactively correcting existing shots. Since I don’t have a Gaggiuino myself, the initial parser was built based on sample files I found on GitHub. If you notice anything else that doesn’t look quite right, please don’t hesitate to let me know!

And to all Gaggiuino users: I’d love to hear your feedback and feature requests. What would make Visualizer even better for your workflow? And if you’re enjoying it, spread the word to your fellow enthusiasts! 🤝

Interface Improvements

I’ve unified the display of shots across all user and community pages, creating a more coherent and consistent experience throughout the site. This meant saying goodbye to the last of the .slim templates—a technical debt I’m thrilled to finally leave behind.

The recently introduced comparison selector has been improved too - now the page won’t jump around when you select a shot for comparison, keeping everything visually stable.

Behind the Scenes 🛠️

For the API users, I’ve added the updated_at field to both the index and shot show endpoints, which contains the timestamp (in seconds since Unix epoch) when a shot was last modified.

I’ve also fixed several Airtable syncing issues, making the entire process more stable - especially for roasters, coffee bags, and two-way syncing.

As always, there have been tons of tiny UI/UX improvements, performance enhancements, bugfixes, and dependency updates. For the technically curious, you can check out the full changelog since the last update.

Thanks again and enjoy the rest of the weekend! ☕


On Migration and Other Updates

Remember the migration I mentioned and then the sudden late night update? After three days of intense debugging and working directly with Lemon Squeezy’s lead developer (huge thanks! 🙏), I believe all issues have been resolved. While the relationship started rocky, I’m confident everything will be smoother from here on. 🤞

Lemon What? 🍋

The main difference you’ll notice is in your bank statements. Instead of seeing Visualizer, mr.si, or Miha Rekar, charges will now appear as Lemon Squeezy or LEMSQZY* STORE. This is because they’re acting as the merchant of record, handling all local taxes and regulations (you can read more about it on their website).

However, for any issues, refunds, or questions, please still contact me first at [email protected]. Nothing else is changing - I just needed help dealing with increasingly complex tax regulations, especially with the current political climate being about as predictable as a cat on espresso. 🎢

New Features

The biggest addition comes from Mark’s brilliant suggestion: you can now quickly compare shots by selecting them right from your shot list. Just click the checkbox in the top right corner of any shot, then click another shot, and boom - instant comparison!

I’ve also improved Airtable syncing by resolving tag syncing issue. Shot tags now sync both ways, and any changes to coffee bags on the Airtable side will now sync to Visualizer (previously it was one-way only).

There were also a bunch of small fixes like showing share buttons for Beanconqueror and profile download even when you’re logged out and the usual dependency updates. As always, you can find the complete details in the full changelog.

One Last Thing ❤️

If you notice any remaining issues from the migration (missing Premium status, double charges, etc.), please let me know immediately.

Thank you again for your patience and understanding during this transition! 🥰


Lemon Squeezy Migration

Remember last time when I mentioned the upcoming migration from Stripe? Well… it happened. Not exactly as planned. 😅

For the past month, I’ve been in contact with Lemon Squeezy to arrange a smooth transition. After 9 days of radio silence from their end, they suddenly dropped me an email at 8 PM (while I was at swimming practice!) announcing they had migrated everyone and started charging. Just like that. 😬

I’ve been glued to my screen since then, trying to untangle this mess. It’s midnight now, and my eyes are starting to cross, but I wanted to get this message out:

Not all data made it through correctly, and Lemon Squeezy has gone quiet again. I’m doing my best with the cards I’ve been dealt, but I can’t guarantee everything is working perfectly right now. If you notice any issues - double charges, lost Premium status, or anything else that seems off - please email me immediately. I’ll fix it as soon as humanly possible.

I’m waiting for Lemon Squeezy to respond (hopefully faster than 9 days this time). With any luck, these are just growing pains, and it’ll be smooth sailing from here on out.

Thank you for your patience and understanding! 🙏