Posts
Thoughts, tutorials, and insights from my journey in software development.
Stop putting JWTs in localStorage: a fun, practical guide for frontend apps
A hands-on, example-packed guide to storing and refreshing JWTs safely in frontend apps: in-memory access tokens, HttpOnly refresh cookies, rotation, CORS/CSRF, and real code you can ship.
Closures in JavaScript: From Pizza Shops to Caching Superpowers
A fun and practical guide to understanding closures in JavaScript, with real-world use cases like caching, rate limiting, event handling, and more.
Imperative vs Declarative in JavaScript/TypeScript
A fun and practical guide to understanding when to use imperative vs declarative approaches in JS/TS, with lots of real-world examples.
Promise Methods Playbook
A fun, practical guide to JavaScript promise methods — all, allSettled, race, any, resolve/reject, and finally — with examples you'll actually use.
Implementing Web3 Wallet Authentication in Express.js
A comprehensive guide to implementing secure wallet-based authentication using Ethereum signatures in Express.js applications, with real-world use cases and security considerations
Domain-Driven Design in Next.js
Learn how to implement Domain-Driven Design in a Next.js application using TypeScript.
Stop Using GET Inside Server Actions
Learn why using GET inside Next.js Server Actions creates unnecessary round trips, how to fetch data efficiently with React Server Components, and when to use Server Actions the right way — with fun analogies and diagrams.
Custom Authentication in Next.js Using External Backend
Learn how to implement custom authentication in Next.js with access tokens, refresh tokens, and token renewal using an external backend. Achieve full control and flexibility in your authentication flow.
Deleting Local Stale Branches in Git
Learn how to clean up your Git repository by deleting local stale branches with a simple command. Keep your workspace organized and in sync with the remote repository.