Week 56 | Building the Front Door
Last Week Last week was about turning “this app exists” into “this product exists”. I got my Google developer account converted from an individual account to an organization account (Apple is still in review), and I started doing the early work on a real product website: figuring out what a landing page needs to communicate, what trust signals matter, and what the next step should be for someone who’s curious enough to try Shokken....
Week 55 | Marketing Website and Organization Accounts
Last Week Last week was about clearing the biggest blocker to real-world testing: guest notifications. I formed an LLC, got an EIN, and provisioned a toll-free number so Shokken can send SMS reliably without depending on a host device. That got the project out of “email deliverability limbo” and back into a place where the app can actually be evaluated by restaurants in the way it’s meant to be used....
Week 54 | Toll-Free SMS and Throughput Constraints
Last Week Last week was about getting unblocked on a problem that ended up being bigger than “just swap email for SMS”. Shokken’s guest notifications were reliably landing in spam, which makes a waitlist product feel broken at exactly the moment it needs to feel dependable. Switching to SMS meant walking into telecom compliance, and compliance meant I needed to be a verifiable organization. The two concrete goals were: form an LLC, and use that newly formed LLC to apply for toll-free SMS access with my upstream provider....
Week 53 | SMS Compliance and Business Formation
Last Week Week 52 was mostly about removing friction for testers: automated TestFlight distribution, and federated login so onboarding didn’t depend on email OTP deliverability. The plan for the follow-up was polishing—tightening the UX and smoothing out the rough edges now that both Android and iOS builds were broadly installable. Instead, I ran into a different kind of deliverability problem: not “can users log in?”, but “can guests actually receive the waitlist notifications?...
Week 52 | Federated Login and CI Debugging From Linux
Last Week Week 51 ended with two competing realities: iOS testing finally went live, but the very first step in the funnel (logging in) was brittle because email OTP deliverability is not something you can “design your way out of” with better copy. I also had too much iOS release work that required sitting down at a Mac and clicking through App Store Connect. This week was about reducing those two sources of friction: automate iOS distribution so I can ship without ceremony, and give testers a login path that doesn’t depend on a brand new sending domain being trusted by Gmail....
Week 51 | iOS Alpha Approved, OTP Reality Check
Last Week Last week was about getting iOS out of the “it builds on my machine” phase. I moved the CI/CD pipeline off expensive hosted macOS runners, set up a self-hosted runner that can reliably archive the Compose Multiplatform iOS app, and worked through App Store Connect’s metadata and policy checklist so TestFlight wouldn’t be blocked on paperwork. The big open question was whether Apple would force Sign in with Apple even for an early testing build....
Week 50 | Self-Hosted Runners vs. TestFlight Red Tape
Last Week Week 49 ended with two unfinished promises. I picked Codex as the long-term Kotlin Multiplatform copilot and got the first iOS archive to upload through GitHub Actions, but that victory came with a warning label: hosted macOS runners eat ten times as many minutes, and I only had 2,000 free credits to burn. I also committed to finishing the App Store Connect onboarding so TestFlight could mirror the Android alpha track....
Week 49 | Codex Wins, TestFlight Comes Alive
Last Week Week 48 was the long-postponed reset after a month of travel. I dusted off the Kotlin Multiplatform repo, replayed the Android alpha build, and made a very public promise: stop treating the weekly vlog as postcards and start shipping again. That entry ended with two concrete goals for this week. First, I needed to pick a long-term coding copilot so I could lean on the same assistant every day instead of juggling trials....
Week 48 | Android Alpha Live, iOS On Deck
Last Week Week 47 was recorded at the gate, squeezed in between boarding calls on the final leg of the trip home. I didn’t open the Shokken repo, didn’t touch the feature list, and didn’t change a single line of code. Instead, I used that short update as a promise: once I was back at a real desk, I would stop issuing travel postcards and start delivering actual progress again....
Week 47 | Wheels Up Toward Home
Travel Day Check-In I am squeezing in this entry between boarding calls. The camera only captured a few sentences because there is still nothing meaningful to report on Shokken itself—I’m wrapping up the last leg of travel and staying disciplined about keeping the weekly commitment alive even when the laptop stays zipped. Last week you heard about the international leg; this time I am pointing back toward the States....