Building Coffeeist, Part 2: I broke Coffeeist, fixed it, and shipped the first engagement levers.
Bug fixes before sunrise, a tighter build process, and a fully working notification system that brings people back. The start of a community.
Previously on Coffeeist:
In Post 0 I shared why I am building Coffeeist in public. In Post 1 I walked through the early stack with Lovable and Supabase, first features, and the alpha launch.
This update at a glance
Fixed a production bug that took public profiles down
Built strictly within a 5-credits-per-day limit and tightened my prompts
Shipped the full notification system: Likes, Comments, New Follower
Added a Notifications page so people can opt out
Kicked off the Coffee and Gear catalog and a scraping workflow for products
Spotlight an early power user uploading consistently great videos
🐛 The bug that knocked profiles offline
I was tweaking SEO. Sitemaps and robots.txt live at root, and public profiles also live at root with the @username structure. I changed routing, did not validate fast enough, and wiped public profiles like coffeeist.app/@Juan.
I also ran out of Lovable credits that night.
I fixed it at 8am when credits refilled. First attempt was lazy, typed directly in Lovable, burned credits, and did not fix it. Second attempt followed my process: wrote the prompt in my ChatGPT project, pasted into Lovable, and it worked. With the leftover 0.5 credits I added Edit capabilities for collection items. Lesson learned: stick to the process.
(image placeholder: before/after of profile route)
The 5-credit rule changed how I build
Five credits a day forces clarity. I write one sharp prompt per change and stop.
It sounds small, but shipping precisely with a budget feels like popping champagne.
🗞 Shipping a notification system that actually works
I upgraded Resend’s transactional plan and wired a Supabase Edge Function that fires on key events. The first one was Likes. Local worked, production did not. My original structure functions/notify-like/templates/like.html did not play nicely with deploys.
What finally worked
Moved templates into TypeScript files
Kept them at the same directory level as
index.tsso the function could import them cleanlyDeployed, validated in Supabase UI, and iterated with Lovable prompts
Once the Like notification pipeline was solid, I reused the same function pattern and created the templates in a ChatGPT chat dedicated to Coffeeist email buildouts. Within my daily 5 credits, I shipped:
Like notifications
Comment notifications
New Follower notifications
We also have a Notifications settings page, so you can opt out by type. No spam. Just a nudge when your coffee gets love.
What is next here
'Routine' emails to go along with your morning/afternoon coffees, gentle reminders for unfinished drafts, and maybe a “welcome back” highlight if you have not posted in a while.
🛍 Building a Coffee and Gear catalog that brands benefit from
I want creators to pick verified products instead of typing them every time. It helps with consistency and gives roasters visibility where it matters.
Step one was research. I built a starter list of roasters and checked their sites. Roughly 73.5% are on Shopify or WordPress. The workflow is simple: open /robots.txt, find the sitemap, then look for patterns in the sitemap URLs and page markup that reveal the CMS.
This informs ingestion rules, link hygiene, and tracking.
🤯 A breakthrough with Claude Code for product ingestion
I found a prompt-engineering overview from Anthropic via a LinkedIn post by Charly Wargnier and used Claude’s Prompt Generator in the Console as a starting point. The preview uses dummy data, so I took the structure into Claude Code, iterated twice, then hit a one-shot result.
What the tool now does
Accepts a product sitemap URL
Crawls live product pages
Extracts normalized fields like product name, description, price, images, and brand
Outputs a clean CSV or JSON I can upload to Coffeeist
Bulk mode works, but Claude Pro sessions cap quickly. My very high-tech workaround is to resume between baby feeds. A fun surprise: if a sitemap returns many 404s, Claude Code pivots to a category page and continues with in-stock items it has not seen yet.
What this unlocks
Users can select known coffees and gear instead of retyping
Brands get exposure inside real content, not just a directory
I can track what products trend inside preparations
Are you a roaster or gear brand? Send me an email to get on the early list: info@afloatai.com
⭐ Community spotlight
Shoutout to @amigocesar for consistently posting high-quality videos. The content is teaching me what the feed should feel like.
💭 What I am pushing to Part 3
To keep this post focused and shippable, I am moving these into the next chapter:
Native app progress and the mobile web to app bridge
Final catalog counts and the first brand outreach experiments
A deeper look at activation and early retention, plus the impact of notifications and emails
New profile types (local shops + online brands)
Product-led growth initiatives
📊 Transparency Log
I am sharing the numbers so you can follow along. I will update these right before publishing.
Coffeeist launch date: October 20th, 2025.
Metrics as of 2025-10-27 at Month 1, day 27:
Usage
Registered users: 35 🎉
Weekly active posters: 9 🎉
New Posts this period: 36 (end of month 1) 🎉
Emails sent, Like/Comment/New Follower: 72
Emails sent, Click-rate: 28%
Opt-out rate: 0%
Build costs to date
Lovable (Pro Plan) → $107/mo.
Consumed 400 credits in 21 days
Messages count (prompts): 284
AI Edits count: 215
Plus Free 5 credits per day
Supabase: $25/mo, $25 to date
ChatGPT Plus: $20/mo, $20
Claude Pro: $21.16/mo, $21.16
Resend transactional upgrade: $20/mo, $20 to date
Domains: $13.06
Total for current month: $206.22
Total so far: $206.22
Want to help?
Join Coffeeist for free if you brew at home and want to log your preparations.
And lastly… Leave a comment with your favorite roaster so I can add them to the catalog!





I resonate with how you learn from those production bugs, it's so real. Do you think the strict credit limit might sometimes stifle exploring wilder ideas, even if it forces clariy?