Author: KJ Roelke
How to symlink your plugins
When building plugins, it’s a huge pain to drill into a site’s plugins folder and install a plugin, especially if it’s meant to live on multiple sites. The answer is to symlink a plugin folder! I’ll use my setup as a...
Read MoreAll about the Environmental Protection Service site
By: KJ Roelke
Last Updated: July 16, 2026 @ 4:12pm
This is a work in progress and general brain-dump of everything about the site. It will eventually get sorted into a more logical collection of posts. Architecture Overview The BIG overview The Code Overview The Deploys Generally, the deplo...
Read MoreUpdating Services on the CNO Site
In July of 2026 we updated how we build services on the main site from ACF to blocks. Here is a list of topics and a video tutorial on what’s new and how to do things. Topics: The following list is mostly for search visibility and not...
Read MoreUsing The Interactivity API instead of React (part 3): The Javascript
In part 1 we talked about why, in part 2 we talked about the markup, and now we’re finally getting into the interactivity bit (aka the Javascript-but-technically-it’s-Typescript). Init Interactivity First off, let’s look a...
Read MoreUsing The Interactivity API instead of React (part 2): The markup
In part 1, we talked about the why and getting set up. In Part 2, we’ll examine the markup between the PHP and React code. The Archive Structure Originally, I had a pretty bare-bones PHP file for the archive page (note the comments al...
Read MoreUsing The Interactivity API instead of React (part 1)
When I first built the Veterans Archive, I was very proud of it—it was a whole React app. Years later, I’m wiser, regret my decisions and a better alternative has arrived: the interactivity API + the interactivity router. You will s...
Read MoreEditing the “Waiver Release” form on the Labor Day Site
Given the latest ask to add some additional sporting events to the Labor Day “Waiver of Release and Liability and Authorization of Likeness” form (Workfront #3618700), I wanted to note how these updates are made because it’...
Read More