Skip to main content

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.

I've talked about it long enough. I've had two dreams over the last year to write a book and to go freelance in my career. Both are steadily getting closer to becoming a reality as opportunities align.