Articles

Sometimes, I write about ColdFusion.

ColdFusion has been a huge part of my career, so I occasionally write about the parts that interest me, confuse me, annoy me, or save me from yelling into the void. These articles cover real-world development, practical implementation notes, platform features, and the occasional hard-earned lesson from building things with CFML.

Sometimes, I write about ColdFusion.


Building a Guardrailed AI Translation Pipeline with ColdFusion’s Native AI APIs

Translate One Field

5 October 2026

Translate One Field

Before we build a translation pipeline, we need one reliable model call, and somewhere sensible to put it.

Deciding What Needs Translation
NEW

8 Oct 2026

Deciding What Needs Translation

The model can translate a field. Now I need to stop asking it to translate the same field every time somebody changes a comma.

Making the Model Return Data I Can Trust
NEW

12 Oct 2026

Making the Model Return Data I Can Trust

Use ColdFusion’s native schema guardrails to get structured translations, then check that every field and placeholder survived the trip.

Translating Long Content Without Losing the Plot
NEW

15 Oct 2026

Translating Long Content Without Losing the Plot

Split long content into manageable pieces, validate each translation, and keep incomplete results out of the database.

The Model Doesn’t Get a Publish Button

19 Oct 2026

The Model Doesn’t Get a Publish Button

Draft, review, and publish AI translations without letting the model decide what goes live.

Take the Translation Job Out of the Browser

22 Oct 2026

Take the Translation Job Out of the Browser

Run translation in the background, retry it without a stampede, and find failures without putting page content in a log.



Calling AWS SDK v2 Directly from CFML

Loading Java Without Setting Fire to the Classloader

21 Sep 2026

Loading Java Without Setting Fire to the Classloader

Load the AWS SDK for Java into ColdFusion and build the shared foundation for direct browser uploads, image moderation, and domain management.

Moving Files Through Amazon S3 Directly from CFML

24 Sep 2026

Moving Files Through Amazon S3 Directly from CFML

Let ColdFusion authorize the upload while the browser sends the file directly to a private Amazon S3 bucket without it touching your CF Server.

Moderating Uploaded Images with Amazon Rekognition
NEW

28 Sep 2026

Moderating Uploaded Images with Amazon Rekognition

Keep newly uploaded images private until Amazon Rekognition and our application agree that they should be published.

Managing DNS Records
NEW

1 Oct 2026

Managing DNS Records

Create, track, and remove application-owned domain records without giving visitors unrestricted control over the internet.



Native Passkeys in Adobe ColdFusion 2025 Series

Part 1: Registering Your First Passkey

4 September, 2026

Part 1: Registering Your First Passkey

Register your first passkey with Adobe ColdFusion 2025, connect it to an existing user, and avoid several security mistakes waiting patiently in the shadows.

Part 2: Authenticating Users with Passkeys

8 September 2026

Part 2: Authenticating Users with Passkeys

Turn a stored passkey into a real sign-in flow with safe session creation, useful failure handling, and a way for users to manage their credentials.

Part 3: Moving Passkeys to a Central Authentication Origin

11 September 2026

Part 3: Moving Passkeys to a Central Authentication Origin

Move passkeys to a central authentication origin without confusing browsers, breaking relying party rules, or accidentally building a phishing system.

Part 4: Running Behind a Load Balancer

15 September 2026

Part 4: Running Behind a Load Balancer

Make passkeys survive reverse proxies, multiple ColdFusion nodes, shared challenge storage, forwarded headers, and infrastructure decisions returning for revenge.



ColdFusion AI 101 Series

AI 101 for ColdFusion Developers: Before We Write the First Line of Code

June 22, 2026

AI 101 for ColdFusion Developers: Before We Write the First Line of Code

A practical, jargon-light introduction to what LLMs are, what they are not, and how ColdFusion developers can start using AI without mistaking the robot for the application.

ColdFusion AI Hello World: Making the Robot Say Something Useful

June 24, 2026

ColdFusion AI Hello World: Making the Robot Say Something Useful

A hands-on first step into ColdFusion AI, using ChatModel() to send a prompt, get a response, and understand where simple stateless AI calls fit before things get complicated.

Giving Your ColdFusion AI a Memory: Sessions, Preferences, Windows, and the Joy of Not Becoming a Gossip Appliance

June 26, 2026

Giving Your ColdFusion AI a Memory: Sessions, Preferences, Windows, and the Joy of Not Becoming a Gossip Appliance

How to move beyond stateless AI calls by giving your ColdFusion assistant short-term memory, user-specific context, and preferences without accidentally turning it into a cross-user gossip appliance.

Giving Your ColdFusion AI Tools: Letting the Robot Use Your CFCs Without Handing It a Flamethrower

June 28, 2026

Giving Your ColdFusion AI Tools: Letting the Robot Use Your CFCs Without Handing It a Flamethrower

Letting your AI assistant call real ColdFusion application logic through carefully constrained CFC tools, while keeping validation, authorization, and production safety exactly where they belong: in your code.

Adding MCP to ColdFusion AI: Giving the Robot a Passport

June 30, 2026

Adding MCP to ColdFusion AI: Giving the Robot a Passport

MCP lets your ColdFusion AI assistant connect to external tools, prompts, and resources through a standard protocol, without pretending the robot should be trusted with every system it can reach.

Adding RAG to ColdFusion AI: Giving the Robot an Open-Book Test

July 2, 2026

Adding RAG to ColdFusion AI: Giving the Robot an Open-Book Test

RAG lets your ColdFusion AI assistant answer from your own documents instead of guessing, while still respecting permissions, freshness, source quality, and the basic rule that the robot only reads what ColdFusion allows.

Adding Guardrails to ColdFusion AI: Keeping the Robot Out of Trouble

July 6, 2026

Adding Guardrails to ColdFusion AI: Keeping the Robot Out of Trouble

How to validate, block, redact, and safely fail AI inputs and outputs before your helpful assistant becomes a compliance incident with a loading spinner.

ColdFusion AI Cheat Sheet

JULY 8, 2026

ColdFusion AI Cheat Sheet

A quick reference for the core ColdFusion AI concepts, when to use them, and what to watch for.



Building a Slack-Backed Support Chat in ColdFusion

Why I Let My Users Talk to Slack Instead of Building an Admin Console

Part 1

Why I Let My Users Talk to Slack Instead of Building an Admin Console

Stop building admin consoles your support team will never use. Here’s how Slack became the UI for our ColdFusion support chat instead.

Why I Used Server-Sent Events Instead of WebSockets

PART 2

Why I Used Server-Sent Events Instead of WebSockets

Think every realtime app needs WebSockets? Mine didn’t. Here’s why Server-Sent Events were the simpler, more reliable choice for ColdFusion.

Designing the Conversation Data Model

PART 3

Designing the Conversation Data Model

A good chat starts with a great data model. Design conversations, messages, and Slack threads that won’t haunt Future You in production.

Getting Slack Ready Before You Write Any Code

PART 4

Getting Slack Ready Before You Write Any Code

Before writing a single line of CFML, get Slack configured the right way. Bots, permissions, threads, secrets, and the setup tutorials usually skip.

Posting ColdFusion Messages into Slack Threads

PART 5

Posting ColdFusion Messages into Slack Threads

Build a reusable Slack integration in ColdFusion. Post messages, create threads, store thread IDs, and lay the foundation for production-ready chat.

Receiving Slack Events and Verifying Requests

PART 6

Receiving Slack Events and Verifying Requests

Securely receive Slack events in ColdFusion by verifying signatures, rejecting replay attacks, handling duplicate deliveries, and queueing webhooks for reliable processing.

Turning Slack Events into Customer Conversations

PART 7

Turning Slack Events into Customer Conversations

Slack received the reply. Your customer did not. Part 7 turns queued Slack events into support messages, maps threads and users, prevents duplicates, and pushes replies live to the customer’s browser.

Building for Failure

PART 8

Building for Failure

Production will fail. Part 8 shows how queues, idempotency, retries, dead-letter tables, logging, and recovery keep a ColdFusion Slack integration working when the real world gets involved.

The Complete Reference Implementation

PART 9

The Complete Reference Implementation

A complete, production-ready Slack support chat for ColdFusion. Download the reference implementation, add your Slack credentials, run the SQL, and have a working Page-to-Slack system in minutes.



In My Not-So-Humble Opinion

AI Can Write the Code. Can You Solve the Problem?
NEW
AI Can Write the Code. Can You Solve the Problem?

AI is changing what makes a developer valuable. It’s time our hiring process evolved beyond a trivia contest with health benefits.

Four Things Adobe Could Do Tomorrow That Would Make ColdFusion Stronger
Four Things Adobe Could Do Tomorrow That Would Make ColdFusion Stronger

Adobe has done a commendable job modernizing ColdFusion. The next challenge isn’t the language... it’s growing the community around it.

AI Is a Pencil. Learn How to Hold It.
AI Is a Pencil. Learn How to Hold It.

AI didn’t invent incompetence. It just gave incompetence a faster keyboard. Let’s talk about why AI makes people cringe, and why they’re only half right.

Why “Welcome to the Modern World.” Might Be the Most Unhelpful Thing You Can Say to a Developer
Why “Welcome to the Modern World.” Might Be the Most Unhelpful Thing You Can Say to a Developer

So you were just welcomed to “the modern world.” Before you smile and nod, let’s unpack why “it’s old” isn’t an engineering argument, and how to respond without flipping a desk.



Code Monkey Chronicles

Running Adobe ColdFusion on ARM: An Adventure in Unsupported Territory

August 7, 2026

Running Adobe ColdFusion on ARM: An Adventure in Unsupported Territory

I tried to move Adobe ColdFusion to AWS Graviton. ColdFusion worked. The connector didn’t. Then CommandBox made the whole problem disappear.