Auto-crossposting sounds simple until you deal with duplicates, stale dates, and race conditions. Here's how we made it bulletproof.
Three days to get a 'simple' OAuth integration working with Zapier. Here's what I learned about filter chains, race conditions, and PKCE.
Writing blog posts is easy. Publishing them consistently is hard. Here's how we built a homebrewed CMS that handles the classic producer-consumer problem.
Your API is getting hammered. Same endpoints, same responses, thousands of requests. Here's how I used Cloudflare Cache Rules to serve API responses from the edge.
Production bug report: 'Why does the webhook error say Executing an update/delete query?' Here's how an innocent-looking @Async method broke everything.
Adding team plans to a SaaS is tricky. You need per-seat pricing, plan upgrades/downgrades, webhook handling, and graceful degradation when payments fail.
Spent an hour debugging why verified users were getting blocked. The culprit? Auth0 doesn't include email_verified in access tokens by default.
After solving all the code issues with Zapier OAuth, I hit one more wall: Cloudflare's Bot Fight Mode. Here's the fix.
A senior dev once told me: 'Every side project is born from spite.' He was right. Here's the story of building jo4.io.
When to use synchronous vs asynchronous audit logging in your application. A practical guide with real examples from production.
A practical decision guide for choosing between ElastiCache and MemoryDB. TL;DR: If your data is ephemeral, use ElastiCache.
Using PreToolUse hooks to block dangerous git commands and cd in Claude Code. Keep your AI assistant productive without losing control.
OAuth2 with PKCE, REST hooks, a spam filter disaster, and a near-closed ticket. The full story of building and shipping our Zapier integration.
How I built jo4.io - a developer-friendly URL shortener with full API access and white-label support. Why Bit.ly pricing made me do it.
Learn how to use Jo4 for URL shortening, QR codes, and link analytics. A complete guide to managing your links effectively.
48 days ago, I launched jo4.io - a URL shortener with analytics, bio pages, and custom domains....
The tech world is currently split into two camps: the "AI-first" enthusiasts who believe prompt...
TL;DR: I spent 12+ hours fighting Ubuntu 24.04's layered squashfs, hidden welcome wizards, and Chrome...
At 6 AM this morning, my SaaS was running on AWS. By 10 AM, it was fully migrated to DigitalOcean...
Your API is getting hammered. Same endpoints, same responses, thousands of requests. Your origin...
Adding team plans to a SaaS is tricky. You need per-seat pricing, plan upgrades/downgrades, webhook...
Production bug report: "Why does the webhook error say 'Executing an update/delete query'?" That's a...
Spent an hour debugging why verified users were getting blocked. The culprit? Auth0 doesn't include...
This is a follow-up to my previous article on 5 Hard Lessons from Implementing Zapier OAuth in Spring...
Three days. That's how long it took to get a "simple" OAuth integration working with Zapier. The docs...
A senior dev once told me: "Every side project is born from spite." He was right. 🙃 The...
When building audit logging for your application, one of the first decisions is whether to log...
Your Stripe webhook handler suddenly returns null objects. No errors. No warnings. Just... nothing....
I set up hooks to prevent Claude Code from committing without my approval. It bypassed them using git...
"The URL shortener market is saturated." I've heard this a hundred times. Bitly, TinyURL, Rebrandly,...