Skip to main content

Env Menu started with a familiar kind of developer friction: switching between local projects and having to remember which environment was running, where its URL lived, and which tools went with it. Here’s what the app does, how it works, and why I rebuilt it natively for macOS.

I needed to serve a separate frontend app, a Vite build, at /editor on the same domain as a Drupal site.

A simple lo-fi stream player embedded on a site — no third-party widget, no branding, no <iframe> from a service that might go away or plaster ads over it.

There’s a particular kind of frustration that only developers who do lots of client work understand: the moment you switch from one project to another and realize you can’t remember where anything lives.

My wife has a lot of essential oils. Like, a lot. Shelves of them. A dedicated cabinet. More arriving in the mail with some regularity. However, she has always had an issue about which oils she has and how much she has left.

If you've ever placed the same reusable block in multiple regions of a Layout Builder page and found that only the first instance renders while every subsequent placement shows nothing. You've hit a known Drupal core issue.

You've installed the robotstxt module, made your changes in the Drupal admin at /admin/config/search/robotstxt, cleared cache, run cron — and the live robots.txt file still showing old content.

In April 2015, I wrote a post called “Get It Done” about two dreams I was chasing: writing a book and going freelance.

Every year there are the same round of movies that appear in my holiday rotation and you probably have been playing some of these movies in the background while the arguments ensue about whether "Die Hard" counts as a Christmas movie.

After years of using VS Code for PHP development, I decided to explore Neovim as a lightweight alternative that could handle my Laravel and Drupal workflows.