COFFEE BUZZ

2016-2020

This is the first piece of software I ever released publicly. Coffee Buzz is a macOS utility app with a relatively simple job: temporarily override the system's Energy Saver settings and prevent the screen from sleeping. It offered a number of features, including a timer to change its behavior, a safety mechanism to avoid leaving the screen on for so long that burn-in becomes a risk, and in later versions, a robust rules system that could automatically switch the mode under a variety of conditions chosen by the user.

I published the original version on the Mac App Store in April 2016 and actively maintained it for four years. I released several updates with bug fixes and some new features, culminating in a fairly major upgrade in early 2020 that would be the final public release of the software. It wasn't my intent at the time to stop there, but full-time employment, shifting priorities, and other work ended up permanently forcing this project to the back burner.

Development

My conceptual starting point was one of the original group of very simple apps I wrote while I was first learning to program as a teenager. From a technical standpoint, though, Coffee Buzz was entirely new. From my other project to write an image editing and graphic design tool, I had learned a lot about how to build a "real" application, and it took me a little less than two months to apply that knowledge and remix my old idea into something polished enough to release.

Under the hood, the core functionality was surprisingly simple. macOS provides a mechanism called "power assertions" that software can use to request temporary overrides of the system's sleep and Energy Saver settings. When you start watching a video, the app or browser you're using will open a power assertion to stop the screen from sleeping. And if you start playing music, software like iTunes or Spotify will open a slightly weaker power assertion that lets the screen go to sleep but prevents the system as a whole from dropping into its low-power state and suspending all software. Those two types of power assertions were used by Buzz Mode and Doze mode, respectively. The core of the app was just a few lines of code, but it took a lot of work to surround that and give the user a stable, reliable way to control these systems.

After publishing the first version, I quickly realized that I had completely failed to consider a crucial element: marketing. Searching the App Store for "prevent sleep" turned up dozens of results, several of which were well-established with a large number of favorable ratings. Oh, and they were basically all free. This was well before the modern era in which everything had to have some kind of recurring revenue stream, and to this day I wonder if everybody else was really just doing it for the love of the game. With my app in there among the others, I got a decent amount of interest and a small double-digit number of downloads per day. Fine, but I wanted the effort to be worth my time. I decided to start charging for my app...merely one dollar...and interest dropped off a cliff. Through the App Store analytics that were available to me, I could see people were still clicking on the app page, but the conversion rate of actual purchases was abysmal. I left it up for a few months to see what would happen, and I think I wound up making a grand total of something like $60 altogether. I changed it back to free, and the number of downloads shot back up. Years later, after my app had been up long enough to collect a large number of favorable ratings and reviews, I might have had better luck with another attempt, but this was an important lesson in just how much of a barrier cost is in consumer decision-making.

Over the next few years, I released a handful of patches and feature upgrades, including some that were requested by my users. That's actually how the rules system got its start—a user emailed me with a request to add special behavior based on the power adapter. There was also a particularly memorable incident with an indignant customer who claimed that his attempts to contact me weren't getting through. I don't even remember what his actual complaint was, and sadly, I can no longer find those old messages as I write this now.

In spring 2020, I released version 2.0 of the app. In it, I added the expanded rules system, completely redesigned the system that launched it at system startup, and refined the user interface in a number of places. That summer, macOS Big Sur was released, bringing a new visual style and introducing Apple Silicon as the new platform of choice. I began working on an update to match, including the enhanced visual style of the system items in the status bar, but a freelance web-development project I had recently taken on began to consume most of my free time and I wasn't able to finish this update. The previous version, designed for macOS Catalina, still worked just fine, so I had some wiggle room to let it slide for a bit.

And...I never picked it back up. The freelance project fizzled out, but by that point I had already found something new that I really wanted to focus on. Coffee Buzz stayed on the back burner as time went on, and even though I hadn't officially given up on the project, my interest in ever working on it again continued to wane. Yet I knew I had done good work. In the following years, positive reviews and ratings continued to accumulate, almost nobody contacted my support inbox, and I had no reason to take down something that was good and stable even though the paint was starting to fade. It continued to cost me money to maintain my Apple Developer Program membership and keep the app on the store, but I was willing to keep paying the fee to maintain the status quo.

It wasn't until 2025 that the first actual problem arose. Something changed in macOS Sequoia 15.4 that caused the app's status bar icon to suddenly start rendering off-center. Attention to detail is something I take pretty seriously, and it was a pretty huge blow for something like this to appear in perhaps the most noticeable place possible. I still had the project and source code, I could still compile and run the unfinished new update, but I hadn't paid attention to the macOS development ecosystem in five whole years. I could probably fix the cosmetic issues fairly easily, but all kinds of things change under the hood from year to year, and as soon as you recompile with the latest tools, a lot of grandfathered-in backwards compatibility can disappear. Resurrecting the project would have required me to exhaustively test every part of it, stem-to-stern, all over again, which was an amount of work I simply wasn't interested in undertaking. The easier solution by far was to simply decide to let it go and allow my developer account to finally expire. I was a little lazy in taking down the website after the app disappeared from the store, leading a handful of people to contact me wondering what had happened. I should have handled that more proactively.

Much has been written about the loss or degradation of software over time, and I know I'm contributing to that by choosing to end support for an app that many thousands of people have downloaded and use every day. But at the same time, I'm just one man, and I can only spread myself just so thin. In hindsight, I'm grateful that I never seriously sold this app for money, because if people had paid for it, I would have had a much greater moral obligation to my customers. I still don't feel great about it, but at the end of the day I feel justified in the choice I made. It's okay that a good thing can come to an end and we move on.

Product Website

In order to list an item on the App Store, you need to have a website and a support page. I was already planning to set up a personal webpage, but my first plan to use a dedicated domain name for Coffee Buzz fell through. The domain "coffeebuzzapp.com" was already registered but wasn't being used for anything by its owner. I looked up the WHOIS contact info, emailed them, and in my naivete I offered such a lowball amount of money that I was told "it wouldn't even be worth the time for the paperwork." Whatever, I didn't feel like trying to negotiate and wasn't that attached to that specific domain anyway. I had purchased my main domain by that point, and decided to build my product's site in a subdomain: coffeebuzz.aaronpantling.com.

Starting out, I barely knew what I was doing in web development, so I figured I'd need to rely on tools to create what I wanted. I started out with WordPress, hunting down the closest template I could find to my mental image. That wasn't enough, so I found a page-builder plugin to try to control the precise layout of my paragraphs and graphics. Even THAT wasn't enough. I wound up having to write some of my own markup and styles after all, using fairly awkward HTML tables with hard-coded proportions that weren't responsive at all. But it was good enough to provide info about my product and offer a way for customers to contact me for support.

A few years later, when I migrated my website from one hosting platform to another, I didn't bother trying to copy or migrate the WordPress installation to the new environment. I just rewrote the whole thing by hand, taking advantage of my now much stronger knowledge to create a more beautiful, responsive site. Even after I stopped releasing new builds of the application, I left this site up for several more years, only removing it after finally deciding that I would no longer support it at all. Visiting the URL today will redirect you to a simple end-of-support notice.

Original site via Wayback Machine (2019 snapshot)

Later site via Wayback Machine (2024 snapshot)

End of Support page