DevCharms
DevCharms is my software development blog and portfolio—engineering notes, code snippets from challenges and experiments, and stories from shipping real work.
Read the blog posts or see README for setup and project details.
Featured
Reasons to set up a Cloudflare Tunnel
Posted on:June 20, 2026 at 10:00 AMWhy outbound-only Cloudflare Tunnels beat port forwarding for self-hosted apps, homelabs, and services you want online without opening your network to the internet.
Hunting Dictionary Bots: Inside a Sophisticated WordPress Membership Attack
Posted on:May 27, 2026 at 12:00 PMModern "dictionary bots" can bypass CAPTCHAs and WAFs to spam WordPress membership signups. Learn how the attack works—and how to block it in code.
@container: responsive layout that follows the component, not the viewport
Posted on:April 7, 2026 at 12:00 PMContainer queries and the @container rule let you style elements from their parent's width—so cards, sidebars, and embeds adapt inside columns and grids without viewport media queries.
How CSS cascade layers let you win with lower specificity
Posted on:March 30, 2026 at 12:00 PMUsing the @layer at-rule to order resets, components, and utilities so layer order does the heavy lifting—fewer chained selectors and less need for !important.
Why CSS logical properties are the efficient default
Posted on:March 27, 2026 at 02:00 PMHow margin-inline, padding-block, and friends replace left/right gymnastics with fewer declarations and better RTL and writing-mode behavior—without extra media queries.
The bug that taught me to read the docs
Posted on:March 5, 2025 at 02:30 PMA short story about chasing a "mystery" production issue that turned out to be documented behavior—and what I changed in how I work afterward.
A fresh start for DevCharms
Posted on:March 1, 2025 at 12:00 PMWhy this site got a clean slate, what you can expect from the blog from here on out, and how we are thinking about shipping useful stories—not theme demos.
Recent Posts
Reasons to set up a Cloudflare Tunnel
Posted on:June 20, 2026 at 10:00 AMWhy outbound-only Cloudflare Tunnels beat port forwarding for self-hosted apps, homelabs, and services you want online without opening your network to the internet.
Hunting Dictionary Bots: Inside a Sophisticated WordPress Membership Attack
Posted on:May 27, 2026 at 12:00 PMModern "dictionary bots" can bypass CAPTCHAs and WAFs to spam WordPress membership signups. Learn how the attack works—and how to block it in code.
Ditch the post-it notes: protect your business secrets with a password vault
Posted on:May 11, 2026 at 08:00 PMWhy every company—from two-person shops to enterprises—should stop scribbling credentials on sticky notes and start using a password vault like 1Password.
@container: responsive layout that follows the component, not the viewport
Posted on:April 7, 2026 at 12:00 PMContainer queries and the @container rule let you style elements from their parent's width—so cards, sidebars, and embeds adapt inside columns and grids without viewport media queries.