Week 45 | Sauna Mode
Last Week Week 44 was sent from a rainy West Lake balcony where I promised to keep publishing even if the laptop stayed zipped up. I kept the Shokken alpha exactly where it was, let the CI pipeline recycle screenshots on its own, and mostly used my phone to confirm that tester messages were getting answered within a day. That check-in was really a travel postcard that said, 鈥渁ll systems nominal, founder temporarily offline....
Week 44 | Hangzhou Hold Pattern
A Quick Postcard From Hangzhou Week 44 is a short check-in from a borrowed desk overlooking West Lake. I kept the weekly promise, but the laptop stayed in the bag aside from making sure the Week 43 builds kept publishing and that tester feedback still lands in the inbox. The alpha release notes remain unchanged, shokken.rsvp keeps pointing people to the right install links, and the Play Console graphs look exactly like they did before I boarded the plane....
Week 43 | Jetlagged But Shipping
On The Road Week 43 found me bouncing between old haunts with my travel kit and a laptop that rarely left the bag. The wind hammered the camera, I forgot the microphone at home, and shipping time narrowed to minutes between family visits. Instead of forcing half-finished code, I treated the week as a checkpoint: the product is stable enough to hand to new people, the pipeline keeps publishing builds, and I get to absorb how the app feels after stepping away for a few days....
Week 42 | Android Tester Instructions
Android Test Mission Brief Thank you for lending your time to shape Shokken. This guide turns the Android testing session into a predictable checklist so every report lands with the details I need. Who Should Use This Guide Android devices only; the iOS flow lives in a separate briefing. You鈥檒l need a Google account that can join testing groups and access Google Play. Keep shokken.rsvp handy鈥攊t is the single source of truth for builds, FAQs, and issue tracking....
Week 41 | Bottom Sheets, Builds, And Beta Prep
Last Week Last week I recorded the update from a parking lot while the houseguests I was hosting rotated through the city. I used the downtime to map Google Play鈥檚 closed testing requirements, built a checklist for the fourteen testers I need to keep the track alive, and rewrote my dogfooding playbook so the first bug hunts have scripts instead of improvisation. Most of my energy went into people logistics: scheduling those friends and family members for thirty-minute screen-sharing sessions, documenting how to install from the Play Console instead of sideloading, and figuring out how to capture their feedback without asking them to learn SQL....
Week 40 | Recruiting The Beta Flight
Last Week Last week I finally coaxed the Supabase cron job into draining the email outbox without manual babysitting. I replayed 500 queued notifications, watched the Kotlin client hand them off to Postgres, and confirmed Resend responds within the same edge invocation. With that loop stabilized the admin dashboard now reflects message success within seconds, and I officially declared the infrastructure feature complete. I did try to finish the Resend webhook, but Supabase keeps rejecting the callback with a 401 even after I disabled JWT enforcement....
Week 39 | Feature Complete, Webhook Pending
Last Week Last week I finally pried open the Supabase email pipeline that had been stuck in limbo. I rewired the outbox drainer so it writes to a dedicated log table before and after each batch, captured the payload that Resend expects, and added defensive retries around the queue reader. Most of that effort went into proving the cron job could wake the Edge Function reliably; I ended up setting up a cron_debug_log table, replaying scheduled jobs, and verifying Supabase鈥檚 pg_cron extension was actually firing once a minute....
Week 38.5 | Switching from Claude Code to Codex CLI
The Great Migration After months of using Claude Code as my primary AI coding assistant, I鈥檓 switching to Codex CLI. This isn鈥檛 clickbait - it鈥檚 a fundamental shift in my development workflow driven by tangible differences in model behavior, cost efficiency, and most importantly, trust in the tool鈥檚 ability to follow instructions. The AI landscape changes rapidly. Until recently, Claude Code and Claude models dominated agentic programming tasks. If you could afford it, Claude was the obvious choice....
Week 38 | Debugging Cron Jobs and Email Queues
Last Week Successfully set up the email outbox infrastructure in the database - a queue table that holds all emails waiting to be sent. Connected the app to this outbox so guest notification emails now properly queue instead of attempting immediate delivery. The architecture is solid: emails queue, the drainer function works when manually invoked, but the cron job automation isn鈥檛 triggering. The Cron Job Mystery The email infrastructure is 90% complete....
Week 37 | Email Infrastructure: The Outbox Pattern
Last Week Recording outside as summer comes to an end! Last week was productive - I successfully set up Kermit the Log and used it to diagnose a phantom UI error. The database insert was succeeding, but the frontend was showing failure. Turns out the post-insert fetch operation had a parsing error that was masquerading as an insert failure. Fixed the error handling to report these separately and resolved the parsing issue itself....