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.


Code Monkey Chronicles

Running Adobe ColdFusion on ARM: An Adventure in Unsupported Territory
NEW

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.



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

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.