Blog
Writing about Laravel, backend architecture, and developer tools.
I got tired of janky nodemailer mocks on every project
Every Node.js project I joined had a broken email mock nobody wanted to touch. So I built Mail.fake() — zero-setup email testing for Node.js. No SMTP server, no jest.mock(), no console.log hunting.
I Got Tired of Rewriting My Email Code Every Time I Switched Providers
Every time I switched email providers in Node.js, I had to rewrite transport code, update configs, and pray nothing broke. So I built laramail — Laravel-style email for Node.js with one-env-var provider switching and Mail.fake() testing.
laramail v1.3.0 — Log Transport, Custom Providers & Always-To Redirect
Three new developer-experience features that make laramail stand out: a zero-config log driver for development, custom provider registration, and a staging safety net that redirects all emails to one inbox.
Automating Your Laravel Server on AWS with CloudFormation
Stop manually configuring servers for your Laravel projects. This guide teaches you how to use AWS CloudFormation to automatically provision a secure, production-ready VPS on AWS.
Laravel Wayfinder - Type-Safe API Calls Between Laravel and TypeScript
Explore Laravel Wayfinder, a tool that bridges your Laravel backend and TypeScript frontend with zero friction, automating the generation of fully-typed TypeScript functions
Exploring XState Store for State Management
Dive into the capabilities of XState Store, a state management solution combining the best of Redux Toolkit and Zustand.
Mastering Confirmation Dialogs in React and Next.js - A Hook-Based Approach
Learn how to create a reusable confirmation dialog in React and Next.js using a custom hook.
Introduction to NextJs
NextJs is a powerful React framework that makes it easy to build server-rendered React applications. This post will introduce you to the basics of NextJs.
Introduction to MDX
MDX is a powerful tool that allows you to write JSX in your Markdown files. This post will introduce you to the basics of MDX.