Upgrading Your Local Gemma Setup
In Part 1, I set up Google’s Gemma 4 running locally on macOS with Ollama and created a simple gemma shell function. It worked, but it was bare-bones — no auto-start, no markdown rendering, and the interactive mode was just a pass-through to ollama run. Here’s how I turned that basic shortcut into something that feels like a polished chat interface, all within a single shell function. The Problem with Plain Text Gemma’s responses… + read on
Running Google’s Gemma 4 Locally on macOS with Ollama
Large language models don’t have to live in the cloud. With Ollama and a recent Mac, you can run Google’s Gemma 4 models entirely on your own machine. No API keys. No usage limits. No data leaving your laptop. Here’s how I set it up. Installing Ollama Ollama is the easiest way to run open-weight LLMs locally. On macOS, it’s a single Homebrew command: brew install ollama Once installed, start the Ollama service: brew… + read on
LLM Ready: The Craft CMS plugin I never imagined I’d make
I’ll be honest: when AI companies started scraping the web to train their models, my first reaction was frustration. Years of carefully written content, hoovered up without so much as a heads-up. But over the past year, my POV has shifted. Conversations with developer friends, articles popping up in my feed daily, the emergence of the llms.txt specification — it all pointed in one direction. This isn’t a passing trend. People are increasingly skipping… + read on
Bespoken 5.3.0: Long-Form Audio, Credit Tracking, and Multisite Support
When I shipped Bespoken 5.2.0 earlier this month, the focus was on refining pronunciation rules, making it easier to strip unwanted characters from narration scripts and giving you visual feedback in the settings UI. That release laid important groundwork, but I knew the plugin still had a hard ceiling: if your entry text was too long, ElevenLabs would reject it outright. And if you were running a multisite install, things could break in subtle,… + read on
What happens when the “Good, Fast, Cheap” rule breaks?
When I first started in advertising, I worked with an art buyer and producer named Karen Meenaghan at Ammirati & Puris. (I loved hanging out in her office.) She introduced me to an idea that has stayed with me ever since: Good. Fast. Cheap. Pick any two. It was framed as a fundamental constraint of the universe. It wasn’t advice. It was more like the laws of physics. If something was good and fast,… + read on
Login Lockdown: an AI-created Craft CMS plugin
I recently published a new plugin for Craft CMS called Login Lockdown. It monitors login attempts on your Craft CMS site and, if failed login attempts surpass a threshold you define, the login process from that IP address is locked down for a specified amount of time. You can configure the plugin to notify you about lockouts (via email and/or Pushover notifications) or let the system run silently on its own. The control panel… + 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. What makes the search page interesting enough for a long blog post? The short answer is that it functions like the search you’d expect to be built with a big frontend framework like React, Vue, or Svelte. Instead, it’s built with a tiny 10.7kb javascript library called Datastar. The… + read on
Tips on getting great voice clones from ElevenLabs
Today, I finally made a voice clone of my own voice to use on this blog. I had actually done this process once before using the professional voice cloning option from ElevenLabs. But I didn’t end up using that version — it just didn’t sound quite right to me. The mistake I made was my own fault. To create a professional voice clone you need at least 30 minutes of clean audio. I discovered that without… + read on
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… + 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… + read on