Managing Multiple Git Configurations

If you’re like most developers, you probably work on multiple projects across different contexts. Maybe you contribute to open source projects with your personal email, work on company projects with your work email, and maintain client projects with yet another identity. Manually switching git configurations between projects is tedious and error-prone. Fortunately, Git has a powerful feature that solves this problem elegantly: conditional includes with includeIf. The Problem Consider this common scenario: You’ve just finished committing some personal project code, then switch to your work repository and make a commit. Hours later, you realize with horror that your personal email is now in your company’s git history. This can happen especially as development setups and projects increase in complexity over time. On-call all nighters don’t help either and it’s an easy mistake to make. ...

January 5, 2026 · 6 min

wlgif - A lightweight screen recorder for Wayland that captures regions as GIFs

Some of the best projects stem from real frustrations. I’ve personally struggled with creating small GIFs for project documentation on Wayland - no existing solution worked well. My workaround? Screen record with OBS, manually convert with ffmpeg. Time-consuming, janky, and frustrating. wlgif demo showcasing rs-cube and minecraft_tunnel So I built wlgif - a lightweight screen recorder for Wayland that captures regions as GIFs. What used to take several minutes now takes less than 10 seconds. ...

January 4, 2026 · 2 min

CVE-2025-55182 (React2Shell): Remote Code Execution in React Server Components (10.0 CRITICAL)

React Server Components introduced a powerful paradigm for building web applications—server-side logic that seamlessly integrates with client-side React. Unfortunately, a critical vulnerability in how React serializes and deserializes data between client and server has exposed applications to unauthenticated remote code execution. In this blog post, I’ll break down CVE-2025-55182 and demonstrate how an attacker can achieve arbitrary command execution on a vulnerable Next.js server. What’s Affected Any application using React Server Functions (commonly called Server Actions in Next.js) prior to the patch is vulnerable. This includes the majority of modern Next.js applications that use the "use server" directive. ...

December 9, 2025 · 4 min

Best Development Environment/Workflow

People often ask me: “What’s the best tech stack?” or “Why Neovim over VSCode?” The truth is, there’s no universal “best” - only what works best for you. My journey: Windows with Notepad++ → Sublime → VSCode (where I was comfortable for years) → Linux + Neovim(best decision I made). Then the real exploration began. I’ve tried Debian-based distros, RHEL/Fedora, CentOS/Rocky, Arch, Void, OpenSUSE, BSDs, macOS, and NixOS. Window managers and DEs: i3, awesomewm, bspwm, dwm, Hyprland, niri, GNOME, KDE, Cinnamon, MATE, XFCE. ...

December 1, 2025 · 2 min

Boost Your Productivity With These Essential Vim Keymaps

After years of modifying my Neovim configuration, I’ve settled on a set of keymaps that I simply can’t live without. These aren’t flashy or complex but they’re practical quality-of-life (qol) improvements that fix some of Vim’s rough edges and make daily editing smoother. Note: These keymaps are written in Lua. If you’re using Vim with vimscript, you can easily convert these using the equivalent nnoremap, inoremap, vnoremap, and xnoremap commands. ...

December 1, 2025 · 4 min