OAuth, OIDC, SAML, SSO, and JWT: A Beginner’s Guide to How Login Actually Works
If you have clicked “Sign in with Google,” connected Spotify to a third-party app, or opened your work laptop and found every internal tool already logged…
Read moreLoading
Writing on data systems, software engineering, and building for the web.
If you have clicked “Sign in with Google,” connected Spotify to a third-party app, or opened your work laptop and found every internal tool already logged…
Read moreSomewhere in every retail supply chain, there is a person typing.A vendor fills out a paper order form by hand. Vendor name, GSTIN, then a table of rows:…
Read moreHow we added Cloudflare Turnstile to every public form on our website, and the four small details that actually decided whether it workedThe problem: a…
Read moreShipping pdfGenerationan HTML→PDF rendering service, as a container-image Lambda, fronted by API Gateway and an SQS FIFO queue. What we built, what broke,…
Read moreYou push to a branch, wait two minutes, and your site is live. But what happened in between?Most people who use AWS Amplify never think about the…
Read moreI recently moved a Next.js app onto AWS Amplify Hosting, and a few things tripped me up along the way - the build spec, the size limit, and how ISR…
Read moreA step-by-step walkthrough of installing Payload, defining your content, rendering it, and deploying - based on setting it up on a real production Next.js…
Read moreOur app lets warehouse managers download barcode label PDFs, one label per box, up to 1,000 boxes in a single shipment. Small shipments were fine. Big…
Read moreA few weeks ago, a user told me “the bot logged the wrong calories,” and I had absolutely nothing to debug it with except one console.log line that only…
Read moreWhen I first started with Next.js, these four acronyms were everywhere and nowhere explained simply. Every article assumed I already knew what “hydration”…
Read moreHere’s a mistake I almost made: I was building the onboarding flow for my app NutriCal, and right before returning a success response to the user, I was…
Read moreA practical guide to giving your LLM a working memory — using tools you probably already haveThere’s a specific kind of frustration that comes from…
Read moreHow code-splitting turned my 664 KB monster bundle into something I’m not embarrassed bySo last night I was wrapping up a build of my calorie-tracking PWA, it has an AI chat feature, a Razorpay subscr...
Read moreSo You Want to Turn Your Web App Into a PWA?A while back, I went down the PWA rabbit hole for a side project, a little calorie tracker I’d built with React and Vite. I kept seeing the term “PWA” throw...
Read moreHow I Deploy My Next.js App on AWS Amplify (Simple Guide + One Bug I Hit)A beginner-friendly walkthrough: why I picked Amplify, how I deploy, what it costs, and a sneaky bug I ran into.When my Next.js...
Read moreRunning an Express app locally is simple node index.js, done. Deploying it to AWS Lambda is a different story - not because it's hard, but because Lambda works nothing like a traditional server.Th...
Read morePayments look simple from the outside. Show a button, collect money, unlock the feature.I wired up Razorpay into a subscription-based React + Node.js app recently and spent more time than I’d like to ...
Read moreLLM GeneratedWe generate barcode PDFs using Puppeteer. One day, a client reported that barcodes aren’t scanning properly after printing. We checked the PDF - looked fine. Opened it on screen - sharp a...
Read moreBefore New Relic, debugging a slow API in production meant one thing, staring at console.log output and guessing.Someone reports “the order page is slow.” You have no idea if it’s a slow query, a slow...
Read moreDebezium was going down 3–4 times a month. Its only job in our system was publishing events to Kafka — order created, PO created, that kind of thing. Every time it went down, events were lost.So I rep...
Read more