Tagged: architecture
12 posts tagged with "architecture". View all posts →
No LLM in My Kids App's Mascot: Pre-Generated Dialogue Instead
Why Penny, the mascot in my kids' money board game, never calls an LLM at runtime: a pre-generated dialogue bank, a fallback chain, and a one-time batch job.
Supabase generateLink Doesn't Send Email: My Pastor Invites Never Arrived
Supabase invite link not working? auth.admin.generateLink returns the link and sends nothing. My SaaS threw it away, so new pastors never got access.
My Stripe Webhooks Were Failing 96% of the Time
FastPass moves money through Stripe webhooks. 96 percent of them were silently failing the signature check. The culprit was not Stripe. It was crypto in the edge runtime.
1,791 Pages, Zero Indexed
A canonical mistake collapsed my tool site from ~1,800 indexed pages to 2. The code was fine. The real fix was not more pages, it was authority.
My Sitemap Advertised 11 Pages. The Site Had 56.
My prerendered SPA shipped around 50 indexable pages, but the sitemap listed only 11. The prerender step and the sitemap had quietly drifted into two lists.
The Soft 404 That Hid My Multi-Tenant SaaS From Google
Search Console flagged Soft 404s across all three domains of my church-website SaaS. The culprit was a tenant page that returned 200 with a 'not found' message. The fix was one line in the right file.
No Budget Cap on a Third-Party API
RapidAPI emailed me that my Amazon data plan was at 100% of its monthly quota. The plan has overage fees and no way to say 'stop at my budget,' so I put the cap in my own code: a Redis counter, a guard before every call, and a cache TTL bumped from 6 hours to 7 days.
My Sidekiq Worker OOM'd Four Times. I Fought It Four Ways Before Buying RAM.
A closet-dump upload burst kept OOM-killing OutfitMaker's Sidekiq worker. I answered with four escalating memory defenses over five days — a semaphore, a downscale, a malloc flag, a concurrency cut — before admitting the real fix was a bigger box. Here's which defenses I kept and which I undid.
I Added Circuit Breakers to a Rails App and Had to Patch the Gem Twice
Wrapping OutfitMaker's six external API calls in circuit breakers was the easy part. Making breaker_machines actually trip — and actually survive a worker restart — took two monkey patches and a lot of reading the gem's internals.
PWA Over Native for a Fashion App
Why I chose a Progressive Web App over native iOS/Android for OutfitMaker. Camera access works, installation works, and I don't need Apple's permission.
Rails 8 Migration on a Live Product
Upgrading from Rails 7.1.5 to 8.1 with paying users. The strategy, the gotchas, and why I fixed 103 test failures before touching the Gemfile.
My First State Machine in Rails
How OutfitMaker's outfit suggestion flow evolved from nested if/else into a proper state machine. The gem, the gotchas, and why it clarified everything.