Handcrafting a coffee app with love and AI
SubscribeSign in
How I'm handcrafting a coffee app with love and AI<br>Handcrafting with AI is not an oxymoron. In this dev log, I'm sharing why the key to efficiently designing a joyful app is trusting AI to execute your vision, not curate it.
Anastasia Laczko<br>May 19, 2026
Share
The app I’m building is Bean, a brewing journal for pour over coffee. My vision of Bean is for it to be your cheerful “Good morning!”. To embody the happy feeling I get each morning when I open my curtains to blue sunny skies or smell freshly ground coffee beans. However, the last two months with Claude have taught me that AI is great at cooking up working code, but terrible at brewing good UX.<br>Recently, my Instagram has been flooded with videos sponsored by Cursor and Claude about vibe-coding apps. Long gone are the days where app development was gatekept by software engineers. Now, anyone and everyone can take their ideas from a shower thought to reality with a sufficiently tiered AI subscription.<br>Thanks for reading! Subscribe for free to receive new posts and support my work.
Subscribe
On the flip side, many of my fellow software engineers now complain that the days where “writing code was fun” are also long gone. Companies are pushing engineers to use more and more AI, and we all cynically joke over lunch about how AI is coming for our jobs. I even had an experience at a friend’s party where someone said “I’m sorry, but after months and months of it, I just can’t bear to talk about AI anymore”.<br>I myself have found it embarrassingly easy to outsource my coding grunt work to Claude as I develop Bean. Why would I spend time fiddling with CSS when I can just ask Claude to do it for me. In saying that, without human intervention, Claude’s idea of app aesthetics is far from the vision I described. I’ve tirelessly put in hours upon hours of work into researching coffee and tailoring the UX to the point where I believe that Bean is undeniably a handcrafted project.<br>That brings me to the point of this article:<br>In this new age where everyone is outsourcing development to AI, how can we still make handcrafted experiences?
Bean was created as an answer to my own pain points while learning to brew pour over coffee at home. Finding it hard to track all the steps and settings, I made a note card that turned into an app idea that turned into an obsession.<br>Over the last month, Bean has been all I could think about. Every time I passed a bag of coffee beans or a nice color I’d take a photo for color palette reference. Every time I caught up with a friend, I’d ask them if they drank coffee and what their routine was. I even spent many Saturday mornings folding clothes while bingeing videos on pour over coffee.
Bean app's color palette and inspiration<br>Hours were spent on Bean before AI even came into the picture. And I did it because I wanted it to be more than just a collection of coffee-related functions. The first step I took towards creating Bean was writing a one-pager summarizing the goal of the app, the app’s screens, the vibe and aesthetic I’m aiming for, and aspirational features that may be included later.<br>This is the introductory paragraph from it:<br>Bean is a pour-over coffee tracking app focused on specialty coffee, designed to make brews repeatable and intentional. The tagline is: ”Make good coffee, every day.” The app is built to feel ritualistic and deeply tied to the physical sensation of brewing — not just a utility, but something that enhances the ritual itself. It starts with pour-over and will expand to espresso in the future.
It wasn’t until after I had set this vision that I was ready to code. I started by feeding this one-pager into ChatGPT to plan out the app infrastructure and then fed the output into Claude to start building out the frontend.<br>I was very hands-on in the beginning: designing the database tables and API framework, organizing the component directory structure, and setting up a rudimentary design system for colors and spacing. Slowly but surely I felt my trust in Claude grow until it eventually had free rein over the technical implementation aside from major decisions like package imports.<br>Despite feeling like I could do a better job of writing the code, I instead decided to focus my time on micromanaging the UX. My reasoning was that the user doesn’t know whether I have beautiful code or not until it breaks, but they will feel the difference of beautiful design.<br>During one of my Saturday morning YouTube and clothes folding sessions, I learned about the James Hoffmann V60 recipe. This seemingly simple recipe heavily influenced how recipes are added in my app. The beginner recipe I was using previously only incrementally added water, but many other recipes like the James Hoffmann V60 recipe have other actions like waiting and swirling.<br>In response, I asked Claude to add wait and swirl options to the recipe form page. As expected, Claude diligently obliged by...