About the Author

Robert Zehnder

admin

I am just this guy, you know?

I'm a senior ColdFusion developer who's been in the CFML trenches long enough to have opinions about all of it — from crusty tag-based components to whatever comes next. Most of my day job is stitching e-commerce platforms together (Shopify, Amazon, eBay, Walmart, and a few you've probably never had to integrate with) so that inventory and orders don't lie to each other.

Outside work I build things nobody asked for. I wrote my own Express.js-style module for BoxLang because there were no alternatives, then used it to rebuild my own blog. I ported Zork. When I'm not writing code, I'm reading Dungeon Crawler Carl, James S.A. Corey, or Rothfuss, min-maxing a City of Heroes build, or doing calisthenics because apparently that's a thing now.

I like systems with real rules and earned progression — in games, in code, in most things. If it's held together with duct tape, I probably built the duct tape myself and documented why.

cfml

Shopify API 2026-10 Changes

Shopify's 2026-10 API is stable. Breaking changes: address edits on unfulfilled orders now recalculate taxes, draft order PriceRule is gone, invalid metafield filters now error instead of being ignored, carrier services no longer auto-join the General profile, and FULFILLMENT_NOT_REQUIRED joins the status enum. ProductVariant.barcode gives way to barcodes. Additions include multi-tracking order imports, Shopify Payments fee details, and a new subscription calculation flow.

cfml

Shopify GraphQL: Order Ingestion & Updates

A reference for Shopify GraphQL order work in CFML. Covers GIDs, cost-based rate limits, and why HTTP 200 means nothing without checking userErrors. Ingestion: webhooks, paginated queries, bulk operations. Updates: orderUpdate, order edits, fulfillmentCreate, orderCreate for marketplace imports. Includes a CFC harness using script-based cfhttp, with one retry on THROTTLED. Notes the 2026-10 address-triggers-tax-recalc change.

boxlang

My blog joined the fediverse

This blog is now on the fediverse as @blog@kisdigital.com. Follow it from Mastodon and new posts, edits and deletions reach your timeline within minutes; replies come back here as comments, and likes and boosts are counted. It's all powered by bx-activitypub, a new BoxLang module on ForgeBox and GitHub: your app answers four questions about its data and the module handles WebFinger, HTTP Signatures and delivery. Here's how it works, what I learned, and what's next.

boxlang

What's in BoxExpress Today

BoxExpress is an Express.js-style web framework for BoxLang, running on Undertow with a virtual thread per request — no servlet container needed. It covers routing, middleware, sessions, views, file serving, WebSockets, a full STOMP broker, and a scheduler. New: cross-process cluster support, with leader-elected scheduled jobs and STOMP pub/sub relayed across instances, backed by a durable shared cache. Real example apps: bxThreads (forum) and bx-graphql-demo.

boxlang

bxThreads: a bx-express port of DismalThreads

Ported my forum app (DismalThreads) from ColdBox/CBWIRE to BoxLang/boxlang-express as bxThreads — swapping CBWIRE's component reactivity for hand-rolled fetch()/websockets. Porting a real app with existing opinions (auth, rate limiting, realtime fan-out) is a better BoxLang stress test than starting fresh, since a blank project lets you dodge every hard problem by never hitting it.

coh

Spines / Fire Brute — AE Fire Farm Build Guide

Spines/Fire is one of Homecoming's premier farming Brutes. Spines delivers relentless AoE via Quills, Spine Burst, and Throw Spines, while Fiery Aura brings strong resists, Healing Flames for sustain, and Fiery Embrace for burst damage. Cap fire defense at 45% (Weave, Maneuvers, Fire/Plasma Shield, set bonuses) and you're nearly untouchable on fire-only farm maps. Fast Fury generation, minimal downtime, and huge influence-per-hour make it the classic "bootstrap" alt to fund your other toons.