Ortus Solutions today announces the general availability of cbGenesis 1.0, a production-ready ColdBox HMVC starter template for BoxLang, and the first one designed from day one to be built with an AI coding agent, not just by one.
Blog
ColdBox 8.2 Deep Dive, Part 3 of 5 : Server-Sent Events You Can Test
Part 2 was about sending as little as possible. Today is the opposite: keeping a connection open and pushing data the moment it exists.
ColdBox 8.2 Deep Dive, Part 2 of 5 : HTTP Caching
In Part 1 we moved security policy into the router. Today we do the same for caching, and we pick up one of the most underused performance wins on the web along the way.
Assert Like You Mean It, TestBox 7.1 Part 4 : Grouped Assertions and Collection Modes
A validation spec usually checks several fields at once: name is set, email looks right, total is positive, status is one of an allowed list. Written as separate it() assertions, TestBox stops at the first failure and you fix it, rerun, and find out about the second failure. Five fields, potentially five rounds of that.
Assert Like You Mean It, TestBox 7.1 Part 5 : The Rest of the 47
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.
Assert Like You Mean It, TestBox 7.1 Part 3: Data Navigator
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.
try.boxlang.io Now Runs Every BoxLang Version, With or Without CFML
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. ☁️
ColdBox 8.2 Deep Dive, Part 1 of 5: Route-Scoped Middleware
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.
Assert Like You Mean It, TestBox 7.1 Part 2: Range Expectations
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.
ColdBox 8.2.0: Middleware, Streaming, AI Gateways, and a Whole Lot More
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.