Blog

Assert Like You Mean It, TestBox 7.1 Part 5 : The Rest of the 47

Luis Majano |  September 30, 2026

The first four posts covered the headline features. This finale covers everything else in the release: eight new matchers, five new $assert methods, a class-level @skip, and a handful of fixes and behavior changes you should know about before you upgrade.

Read More

Assert Like You Mean It, TestBox 7.1 Part 3: Data Navigator

Luis Majano |  September 29, 2026

Almost every application eventually tests a nested piece of data: an API response, a JSON config file, a serialized object, module metadata. The data is a struct that contains an array that contains structs that contain more structs, and the thing you actually care about is one value buried at the bottom.

This post has two halves. First we look at BoxLang's Data Navigator, the language feature that makes nested data pleasant to work with. Then we look at the six TestBox 7.1 expectations built on top of it. If you have never used dataNavigate(), start at the top. If you already know it, skip to The six expectations.

Read More

try.boxlang.io Now Runs Every BoxLang Version, With or Without CFML

Luis Majano |  September 28, 2026

The BoxLang playground at try.boxlang.io just got a major upgrade. You can now choose any released version of BoxLang and toggle CFML Compat mode on or off, right from the editor toolbar. No installs, no Docker images, no servers. Open a browser, write code, hit Run.

And the best part? The whole thing is powered by BoxLang Serverless on AWS Lambda, built and deployed from a single repository. Keep reading, because if you have ever wondered what BoxLang can do in the cloud, this is your answer. ☁️

Read More

ColdBox 8.2 Deep Dive, Part 1 of 5: Route-Scoped Middleware

Luis Majano |  September 24, 2026

Welcome to the ColdBox 8.2 Deep Dive, a five-part series that takes each major feature of ColdBox 8.2.0 and goes well past the release notes: real code, real patterns, and the gotchas you only learn after shipping.

Read More

Assert Like You Mean It, TestBox 7.1 Part 2: Range Expectations

Luis Majano |  September 24, 2026

Before exploring the 14 range matchers, let’s take a closer look at the BoxLang Range itself. Ranges go well beyond the familiar .. syntax, providing a powerful and flexible foundation for working with sequences and boundaries. Understanding how ranges work makes the matcher API much easier to use and reason about. If you are coming from a CFML background, then this will be brand new to you as ranges have never existed until Boxlang.

Read More

ColdBox 8.2.0: Middleware, Streaming, AI Gateways, and a Whole Lot More

Luis Majano |  September 23, 2026

ColdBox 8.2.0 is the result of work we started in March. Several of its headline features, including route-scoped middleware and Server-Sent Events, were incubated for months before shipping. We held them back on purpose: we wanted the APIs settled, the edge cases covered, and the testing story complete before asking you to build on them. They're ready now.

Read More

Assert Like You Mean It, TestBox 7.1 Part 1: Set Expectations

Luis Majano |  September 23, 2026

If you have ever tested that two collections contain "the same stuff, order doesn't matter," you already know the workaround: sort both arrays, compare them element by element, and hope nobody adds a duplicate. It works, but it isn't what you meant to write. You meant "these are the same set."

Read More

Is Your QA Process Ready for Your Next ColdFusion or BoxLang Release?

Maria Jose Herrera |  September 21, 2026

As applications continue to evolve, QA can easily become reactive. Teams may test late in the development process, focus only on happy-path scenarios, repeat manual checks, or rely on AI-generated changes without fully validating the results. ​ These gaps can create risks that are not always visible until they affect users, disrupt operations, or require costly fixes in production.

Read More

Your Development Team Is at Capacity. Here’s How to Keep Critical Work Moving!

Maria Jose Herrera |  September 18, 2026

The problem is not that your team lacks priorities.It is that maintenance, delivery, and long-term improvement are competing for the same people.

For companies running business-critical CFML, ColdFusion, or BoxLang applications, that pressure can be especially difficult to solve. Experienced developers are not always easy to hire quickly, application knowledge may be concentrated in one or two people, and a generalist may need significant context before taking ownership of the work. A permanent hire can also require a significant investment in recruiting, compensation, onboarding, and long-term capacity even when the immediate need is a specific project, urgent maintenance, or a period of transition.

Read More

Copy of BoxLang AI 3.4 Blog Series Part 5 : Reasoning Without the Guesswork

Luis Majano |  September 15, 2026

Reasoning-capable models have been usable in BoxLang AI for a while. params passes straight through to the provider body, so params: { thinking: { type: "enabled", budget_tokens: 10000 } } for Claude, or params: { reasoning_effort: "high" } for OpenAI, already reached the API. What never worked was reading the reasoning back. It was parsed out on arrival and silently dropped. In 3.4.0, that's fixed, and it's fixed the same way for every provider.

Read More