Text-a-Mess: A one-day app build challenge

Text-a-Mess is a basic web app that does one thing: It messes up the text you enter by adding diacritical marks throughout to obscure it while keeping it somewhat readable visually.It does not encrypt the text in any way.A simple text search will still find the original text. However, it will severely mess up any text-to-speech software because it will use diacritical marks to alter text pronunciations. Please use it with that in mind.Why did I do… + read on
Create mathematically generated CSS color schemes with OKLCh.

The color scheme of SuperGeekery depends on the day you read this blog post. If you don’t like the colors you see today, return tomorrow, and they’ll be different. This post will show you how I generate each day’s color scheme. It’s based on a single color chosen based on the day of the year. I then use CSS’s relatively new OKLCh color function to generate 20 possible colors throughout the site. The Oklchroma site inspired me to make… + read on
Unlocking Real-Time Reactive Search in Craft CMS with Datastar

This post will show you how the search page on this site works and how you can build the same thing yourself in Craft CMS. Please note that the narrated version of this post does not contain a spoken version of the code samples, but you can view those on the original blog post.What makes the search page interesting enough for a long blog post? The short answer is that it functions like the… + read on
Reset the forge sudo password in Laravel Forge

Have you misplaced the sudo password for your user and need to reset it? In Laravel Forge, you can save reusable bash scripts in the control panel and run them as the root user. Save the following in a Recipe, updating NEW_SUDO_PASSWORD with your desired password each time. If you’re resetting a user other than forge, update the user. Run it on your server. Presto! You’ve got your sudo password back. The same script… + read on
Craft CMS and Chat-oriented Programming, CHOP

What is CHOP? A post on Sourcegraph titled The death of the stubborn developer defines it as “Chat-Oriented Programming,” meaning the developer is constantly conversing with an AI model, most likely ChatGPT, while programming. In short, LLMs are decent at executing small, well-defined tasks, leaving “the more difficult planning and coordination” to the human developer. According to the post, the chop methodology “gives enterprise engineers a minimum boost of 30% in productivity across the… + read on
End of the Twitter party

I’ve mentioned on my blog previously that I used to be a heavy Twitter user. I joined in 2007, and it became one of my favorite places to spend time online. Twitter gave me a feeling of community. From nerds to news to real-life friends, my feed was fantastic. That began to change after Musk bought it. Over time, Twitter became increasingly unrecognizable, and I wanted to leave but didn’t know where to go.Musk’s… + read on
Set Up Redis Caching in Craft CMS with DDEV: A Step-by-Step Guide
Starting a Craft CMS project is easy if you follow the Quick Start Guide in the documentation. You’ll quickly be up and running with a basic server setup for local development with DDEV.In this post, I’ll expand on this starter setup by including Redis to handle your cache.Why Would You Want Redis in Your Local Dev Environment?Redis does caching in memory and reduces the load on your database. While this might not significantly impact… + read on
Never mistake your production, staging and local environments with Craft CMS
Have you ever accidentally changed something in your staging environment when you meant to make the change in production? Let’s make sure that never happens again. In this post, I’ll share how I use Control Panel CSS, a free Craft 5 plugin, and some garish design choices to make it blatantly obvious which Craft CMS environment I am working in.Just how distressing can these designs be? Take a look at the screenshots below. The… + read on
Customizing the CKEditor in Craft CMS

When I create a new rich text field in Craft CMS, I use the first-party CKEditor plugin. My nest task is to configure the field with some standard updates which is what we’ll cover in this post. Before diving in to my customizations, check out the plugin’s official documentation to understand the basic usage of the field type and learn about one of its superpowers, nested entries, which I won’t cover here. You’re not… + read on
Fixing a SQL database to have only one type of collation, a Craft CMS story

I’m in the process of updating a site from Craft CMS 4 to Craft CMS 5. As I read through the detailed upgrade guide, I noticed some database related items that deserved close attention. The character set and collation of the database will change during the upgrade. Before I did the upgrade, I discovered an issue with the collation type issue in my existing database. I had a mixture of two different collations and… + read on