Blog
Writing about code, design, and everything in between.
Building a Desktop YouTube Downloader: Cookies, the n-Challenge, and Zero-Install
- Published on
Private Image Compression in the Browser: WebAssembly Codecs, and the AVIF That Wouldn't Ship
- Published on
Giving a Portfolio Assistant Real Tools (and Five Models So It Never Goes Down)
- Published on
Giving AI Agents Real Tools: Building MCP Servers for Commerce Data
- Published on
Payload + Next.js: The Content Layer I Pair with Medusa Now
- Published on
How I Ship Faster with Claude Code, Cursor, and Codex
- Published on
Row Level Security in Practice: Multi-Tenant Isolation on Supabase
- Published on
Semantic Search for E-Commerce: Replacing Keyword Search with pgvector + OpenAI Embeddings
- Published on
Building a Multi-Vendor Marketplace That Grew AOV by 18%
- Published on
I Jumped on Medusa.js v1 in Week One, and Here's What the v2 Migration Really Looks Like
- Published on
Streaming AI Chat UIs with the Vercel AI SDK and Provider Switching
- Published on
Building a Multi-Step LangGraph Agent That Handles Orders Autonomously
- Published on
Stripe Usage-Based Billing for AI Products: Metered Tokens, Tiers, and Connect Payouts
- Published on
Cutting Irrelevant Retrieval by 50% in a Legal RAG Pipeline
- Published on
Building a RAG Chatbot That Cut Support Tickets by 40%
- Published on
Shipping an ERC-20 Launchpad: Vesting, KYC Gating, and a Slither Audit
- Published on
Launching a 10K NFT Collection: Gas-Optimised Minting at Scale
- Published on
Go Microservices: Lessons from a High-Throughput Backend
- Published on