Blog
Practical write-ups on full-stack development, SaaS architecture, payments, DevOps, and AI — from building real production products.
11 articles
- 3 min read
Authorize at Booking, Capture at Weigh-In: Fair Marketplace Payments with Stripe
How to charge the exact final amount for an order whose price isn't known until later — using Stripe's manual capture — without ever overcharging the customer.
StripePaymentsNode.js - 5 min read
Running a Production SaaS on One VPS: Health-Checked Deploys and Backups You Actually Restore
You don't need Kubernetes to run a real paid product. Here's how I ran a full multi-tenant SaaS on a single VPS with Docker — including the deploy that rolls itself back and the backup I prove restorable every week.
DevOpsDockerSaaS - 5 min read
Proving Authorization Works: Executable Role and Scope Proof Suites
Reading the code and believing your access control is correct isn't good enough. Here's how I made data isolation demonstrable — tests that drive the real server and try to cross the boundary.
SecurityAuthorizationTesting - 5 min read
Agent-Native SaaS: Exposing Your Product to AI Assistants Over MCP
Most products bolt on a chatbot. I built one where an AI assistant is a first-class operator — driving the whole product through natural language over the Model Context Protocol.
MCPAI AgentsSaaS - 5 min read
Compiling a Drag-and-Drop Flow Builder Into a Deployed Chatbot
A visual flow builder isn't a form — it's a node graph on the front end and a compiler on the back end. Here's how I turned a user's drag-and-drop chatbot into a real deployed bot.
ChatbotsCompilersNode.js - 5 min read
Building a Real-Time Voice AI Agent with Barge-In (Streaming STT to LLM to TTS)
How I built a phone-call-feeling voice agent — streaming speech-to-text into an LLM into text-to-speech over WebSockets — where the caller can interrupt mid-sentence and the bot shuts up.
Voice AIWebSocketsReal-Time - 5 min read
A Two-Level Content-Moderation Pipeline: Fast L1 Gate, Async ML L2
How I moderated text, images, and video on a single CPU VPS — a millisecond in-process gate that catches the obvious stuff, and a Python ML worker that only runs when it has to.
Content ModerationMachine LearningPython - 5 min read
Microservices That Stay in Sync Without a Shared Database (Redis Streams + Local Replicas)
How I let independent services react to 'a new user signed up' without any of them ever touching the identity database — using Redis Streams consumer groups and per-service user replicas.
MicroservicesRedisArchitecture - 4 min read
Serving Paid Downloads Safely with Short-Lived Signed URLs (S3/R2)
How I delivered paid files and course videos on a creator platform so a buyer gets their content but nobody can hot-link or share a permanent link to it.
S3Object StorageSecurity - 4 min read
Custom Domains with Automated SSL for a Multi-Tenant SaaS (Cloudflare for SaaS)
How I let every creator on a platform publish their storefront on their own apex domain — with HTTPS that just works — without wrangling a single certificate by hand.
SaaSMulti-TenantCloudflare - 5 min read
Automated Marketplace Payouts with Stripe Connect: Idempotent Sweeps and Clawbacks
How I paid laundry suppliers automatically 48 hours after delivery — netting commissions, surviving retries, and clawing back money after a refund — without a payout ever going negative.
StripeStripe ConnectMarketplace