<?xml version="1.0" encoding="UTF-8"?><rss version="2.0">
<channel>
<description>ContentBox RSS Feed</description>
<link>https://www.ortussolutions.com</link>
<title>Blog RSS Feed by ContentBox</title>
<copyright>Ortus Solutions, Corp (www.ortussolutions.com)</copyright>
<docs>http://www.rssboard.org/rss-specification</docs>
<generator>FeedGenerator</generator>
<lastBuildDate>Thu, 08 Oct 2026 22:25:33 GMT</lastBuildDate>
<pubDate>Thu, 08 Oct 2026 22:25:33 GMT</pubDate>
<item>
<title>Sentry 2.2.0 Released!</title>
<description>Sentry 2.2.0 Released!
Sentry 2.2.0 brings tracing, structured logs, metrics, browser feedback, and a handful of welcome fixes to your CFML and BoxLang applications. There’s quite a bit packed into this minor release!
And yes, it is a minor release. Your existing error reporting continues to work, and all of the new integrations are opt-in. You can upgrade for the bug fixes without turning on anything else.
Let’s get to the changes.
What’s New?
See where the time goes
Getting an exception into Sentry is helpful. But sometimes the problem is a request that takes five seconds and doesn’t throw an exception at all. Which query was slow? Did we miss the cache? Were we waiting on another service?
This release adds tracing for requests, queries, background jobs, CacheBox operations, and outbound HTTP calls. These spans give you a breakdown of the work happening inside a transaction.
You can enable request tracing in your ColdBox configuration:
moduleSettings.sentry = {
DSN: getSystemSetting( &amp;quot;SENTRY_DSN&amp;quot;, &amp;quot;&amp;quot; ),
environment: &amp;quot;production&amp;quot;,
release: &amp;quot;my-app@1.0.0&amp;quot;,
enableRequestTracing: true,
tracesSampleRate: 0.1
};
This example samples 10% of requests. Adjust that rate for your application’s traffic and your Sentry usage.
You can also wrap your own application code in a span:
sentry.withSpan( &amp;quot;load inventory&amp;quot;, function( span ) {
return loadInventory();
} );
Now that operation has a name and a duration in the trace. Much easier to investigate than “something in this handler is slow.”
Query tracing
Database queries are often a good place to start when tracking down a slow request. Sentry 2.2.0 adds query instrumentation through runtime listeners and compatible qb hooks, depending on your engine and installed versions.
For direct queries, you can use withQuerySpan:
result = sentry.withQuerySpan(
sql,
function( span ) {
return queryExecute( sql, parameters, options );
},
&amp;quot;postgresql&amp;quot;
);
The wrapper records the query’s duration and status while preserving the callback’s result or exception. SQL literals are scrubbed, and bindings and result data aren’t collected.
The automatic integrations have some runtime requirements, so check the documentation before enabling them. The manual wrapper is useful wherever you need explicit coverage.
Background jobs, caches, and external calls
The work doesn’t always end when the request does.
Queue tracing can connect a job back to the request that scheduled it, with separate measurements for waiting and processing. Cache instrumentation records hits and misses without collecting the cached values. HTTP wrappers let you measure calls to other services and propagate trace headers to configured destinations.
These integrations help answer some very practical questions: are jobs spending their time waiting or working? Is the cache helping? Is our application slow, or is the service it calls slow?
Structured logs, metrics, and check-ins
There are also new APIs for structured logs and metrics:
captureLog sends structured diagnostic messages.
counter, gauge, and distribution record measurements.
withMonitor reports check-ins for scheduled work.
For example, you can wrap an hourly task like this:
sentry.withMonitor(
&amp;quot;hourly-work&amp;quot;,
function() {
return performWork();
},
{
schedule: {
type: &amp;quot;interval&amp;quot;,
value: 1,
unit: &amp;quot;hour&amp;quot;
},
checkin_margin: 2,
max_runtime: 10
}
);
This gives Sentry the schedule and matching check-ins for the work. Logs, metrics, and monitors have separate enablement settings, so you can choose which ones to add. Available monitor features depend on your Sentry plan.
Browser Feedback, Screenshots, and Replay
A bug report that says “it didn’t work” can leave you with a lot of questions. What page was the user on? What had they entered? What happened just before the problem?
The new browser companion adds a feedback widget with screenshots and session replay, along with browser tracing and supported Web Vitals.
The release includes built browser assets, so a plain CFML or BoxLang layout can use them without adding a Node build to the application. Bundler-based applications can use the included browser sources instead.
The widget supports keyboard and touch interaction, screenshot review and removal, and retries when delivery fails. Your application decides who is eligible to use it, which makes it possible to start with a small group of users.
There’s an important detail here: opening the feedback widget uploads the recent replay buffer. The message and screenshot are uploaded when the user submits the report. The widget explains that behavior to the user.
Capture uses conservative masking by default. If you want ordinary page content and form values to be readable, that requires an explicit capture policy. Review that policy for your application before enabling it.
Bug Fixes
There are several fixes for existing error reporting as well:
Fixed a race where concurrent exception capture could access the Sentry singleton before initialization finished.
Fixed timestamp generation so UTC ISO timestamps and epoch timestamps agree on CFML and native BoxLang.
Improved stack-trace handling when a source file can’t be found.
Made rewritten index.bxm URLs behave consistently with index.cfm URLs.
That last one came from a real report. The module already removed /index.cfm from rewritten request URLs, but it didn’t do the same for /index.bxm. A request for /foo/bar could therefore appear in Sentry as /index.bxm/foo/bar.
Now both root front controllers are handled consistently.
The release candidate also passed all 13 engine/framework CI combinations, browser tests and builds, and formatting checks.
Getting Started
Install Sentry 2.2.0 with CommandBox:
box install sentry@2.2.0
If you already use the module, your existing configuration can stay in place. Pick an integration that would help you understand your application and start there. There’s no need to turn everything on at once.
You can find configuration examples and integration requirements in the observability guide. As always, issues and pull requests are welcome. I’d love to hear what you’re using it for!</description>
<link>https://www.ortussolutions.com/blog/sentry-220-released</link>
<pubDate>Thu, 08 Oct 2026 19:59:00 GMT</pubDate>
<author>vcampos@ortussolutions.com (Victor Campos)</author>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/sentry-220-released</guid>
</item>
<item>
<title>BoxLang for Sublime Text Released</title>
<description>Ortus Solutions today announces the official release of the BoxLang package for Sublime Text 4, the newest member of the BoxLang productivity tool suite.</description>
<link>https://www.ortussolutions.com/blog/boxlang-for-sublime-text-released</link>
<pubDate>Thu, 08 Oct 2026 14:20:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>Community</category>
<category>Into The Box</category>
<category>News</category>
<category>Releases</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/boxlang-for-sublime-text-released</guid>
</item>
<item>
<title>RuleBox 2.0 : a natural-language rules engine for BoxLang and ColdBox</title>
<description>Ortus Solutions today announces the general availability of RuleBox 2.0.0, a modern, natural-language rules engine for BoxLang and ColdBox applications. It is a BoxLang-only rewrite, and it ships with rules as data, declared rulebooks, dry runs, an audit trail, and a built-in Rule Visualizer.</description>
<link>https://www.ortussolutions.com/blog/rulebox-20-a-natural-language-rules-engine-for-boxlang-and-coldbox</link>
<pubDate>Wed, 07 Oct 2026 11:01:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>CacheBox</category>
<category>ColdBox MVC</category>
<category>CommandBox</category>
<category>ContentBox CMS</category>
<category>LogBox</category>
<category>WireBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/rulebox-20-a-natural-language-rules-engine-for-boxlang-and-coldbox</guid>
</item>
<item>
<title>Modernizing Legacy ColdFusion Doesn't Have to Mean Rewriting It</title>
<description>Your CFML application may be old, large, and business critical. That doesn't mean modernization has to start with a rewrite.
When organizations talk about modernizing a legacy ColdFusion application, the conversation can quickly become much bigger than it needs to be.
Do we need a new frontend?
Should we rebuild the APIs?
Do we need React or Vue?
Should we replace the application entirely?
How many developers will that require?
How long will it take?
And perhaps the most important question: what could we break along the way?
For many organizations, the application they're discussing isn't some abandoned piece of software. It's a production system with years of accumulated business logic, integrations, workflows, and knowledge embedded in it.
Michael Rigsby described this reality very well during his Into the Box 2026 session, From Legacy to Modern, CBWIRE Gets You There Faster and Projects Finished Under the Wire.
Most development teams, he pointed out, don't get a brand new greenfield project every quarter. They have existing applications, tight deadlines, small teams, stakeholders asking for more modern experiences, and sometimes hundreds of thousands of lines of CFML that have been running successfully for years.
That's the environment in which modernization actually happens.
And it leads to an important idea:
Modernization doesn't have to mean starting over.
Start With the Problem, Not the Rewrite
Imagine a ColdFusion application with a traditional customer search.
The user enters a term, submits the form, the server processes the request, and the entire page reloads with the results.
It works.
Maybe it has worked for fifteen years.
But users now expect something smoother and more responsive. The obvious temptation is to start thinking about rebuilding the frontend using a modern JavaScript framework.
That may be appropriate in some situations.
But what if the existing business logic is perfectly good?
What if the application already has the services, validation, security, and database interactions you need?
Why replace all of that simply to improve the user experience?
This is where Rigsby's demonstration with CBWIRE becomes interesting from a modernization perspective.
He took an existing ColdBox application and converted its traditional customer search into a reactive experience. Instead of rebuilding the application, he reused the existing architecture and business logic.
In fact, Rigsby estimated that about 95% of the code in the new CBWIRE component was reused from the existing view.
That's a very different definition of modernization.
Use a Surgical Tool, Not a Sledgehammer
One of the best lines from Rigsby's presentation was his description of CBWIRE as:
"the surgical tool, not the sledgehammer."
That's also a useful way to think about legacy modernization in general.
You don't necessarily need to modernize an entire application at once.
You can modernize it component by component.
A traditional form can become reactive.
A search can stop requiring full page reloads.
A dashboard can update automatically.
Sorting, filtering, pagination, inline validation, loading indicators, and other modern interactions can be introduced where users will actually notice the difference.
Meanwhile, the rest of the application can continue doing exactly what it was doing before.
That changes the economics and risk of modernization considerably.
Start Where Users Are Feeling the Pain
Rigsby offered another piece of advice that we strongly agree with:
Start with your most painful forms, the ones users complain about.
This sounds simple, but it's an important shift in thinking.
Legacy modernization projects often begin with technology:
"We need to replace X."
"We need to migrate to Y."
"We need to rewrite this application."
A better starting point is often:
Where is the existing application creating the most friction for users or the business?
Then find a change that creates visible value without introducing unnecessary risk.
Rigsby's recommendation is to choose high impact, low risk targets rather than trying to convert everything at once.
That first success matters.
Users see an improvement.
Stakeholders see progress.
Developers learn how the new approach fits into the existing system.
And the organization gets evidence that modernization can deliver value before committing to something much larger.
Keep the Business Logic That Already Works
This may be the most important lesson.
Old doesn't automatically mean bad.
A CFML application that has been running in production for fifteen years may contain a tremendous amount of proven business logic.
Replacing that logic introduces risk.
In Rigsby's examples, CBWIRE could sit alongside existing ColdBox handlers and views while continuing to use the same business logic and validation rules.
The interface improved without requiring the organization to throw away everything underneath it.
That's exactly the kind of decision we look for when approaching a legacy CFML application.
What should we replace?
What should we refactor?
What should we isolate?
And equally important:
What should we leave alone because it already works?
Good modernization isn't measured by how much code you replace.
It's measured by how much business value you create while controlling cost and risk.
Think in Steps, Not One Giant Project
Rigsby summarized his modernization roadmap with another useful principle:
Each step is incremental. Each step delivers value.
That's how we prefer to approach legacy CFML modernization at Ortus as well.
The first phase might address a handful of painful user workflows.
The next might introduce better testing around critical functionality.
Another could improve application architecture, deployments, integrations, security, or performance.
Over time, parts of the application can be refactored or moved where there is a clear reason to do so.
The roadmap is driven by the needs of the application and the business, rather than by an arbitrary requirement to replace everything.
Sometimes a larger migration really is necessary.
But it should be the result of an assessment, not the assumption you start with.
Your Legacy ColdFusion Application May Have More Life in It Than You Think
If your organization has a mature ColdFusion or CFML application, don't assume your choices are limited to "leave it alone" or "rewrite it."
There's a lot of room between those two extremes.
Modernization can mean making the application easier to use.
It can mean improving architecture.
It can mean adding automated testing so developers can make changes with confidence.
It can mean fixing performance or security issues.
It can mean improving deployments and CI/CD.
It can mean gradually replacing the parts of the application that are genuinely holding the business back while preserving the parts that continue to work well.
CBWIRE is one example of how that incremental approach can work at the user interface level.
The broader principle applies across the application:
Modernize where modernization creates value.
Want to See It in Action?
Michael Rigsby's full Into the Box 2026 session goes much deeper into this approach and includes practical CBWIRE examples and demonstrations.
Watch "From Legacy to Modern, CBWIRE Gets You There Faster and Projects Finished Under the Wire" on CFCasts
If you're interested in seeing how an existing CFML application can gain modern, reactive functionality without replacing the application underneath it, the session is well worth watching.
Not Sure Where to Start With Your Own Application?
That's often the hardest part.
Ortus Solutions has been working with ColdFusion and CFML applications for two decades. Our consulting team can review your existing application, identify the areas creating the most cost, risk, or user friction, and help you determine where modernization will actually produce a return.
That might mean a phased modernization roadmap, architecture improvements, ColdBox or CBWIRE adoption, testing, CI/CD, performance work, security improvements, an engine migration, or simply fixing a few high impact areas while leaving the rest alone.
We can provide the assessment and roadmap, work alongside your existing developers, augment your team with experienced CFML engineers, or take responsibility for specific parts of the implementation.
You don't have to rewrite your ColdFusion application to start modernizing it.
If you're maintaining a legacy CFML application and wondering what you should modernize, what you should keep, and where to start, let's talk.
Contact our CFML consulting team and tell us what you're working with. We'll help you figure out a practical next step.
Talk to a CFML Expert</description>
<link>https://www.ortussolutions.com/blog/modernizing-legacy-coldfusion-doesnt-have-to-mean-rewriting-it</link>
<pubDate>Mon, 05 Oct 2026 12:06:00 GMT</pubDate>
<author>cristobal@ortussolutions.com (Cristobal Escobar)</author>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/modernizing-legacy-coldfusion-doesnt-have-to-mean-rewriting-it</guid>
</item>
<item>
<title>BoxLang 1.18.0 Released :  Every Cloud, Every Node, Every Agent</title>
<description>Azure joins the serverless family. Scheduled tasks become cluster-safe. And the whole platform gets documentation and skills built for developers and AI agents working side by side.
If you run a technology organization, you are being asked to do three things at once: ship faster, keep the estate you already have running, and make AI part of how your teams work. Most stacks make you choose. BoxLang 1.18 is another step toward not having to.</description>
<link>https://www.ortussolutions.com/blog/boxlang-1180-released-every-cloud-every-node-every-agent</link>
<pubDate>Fri, 02 Oct 2026 15:36:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>Community</category>
<category>Into The Box</category>
<category>News</category>
<category>Releases</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/boxlang-1180-released-every-cloud-every-node-every-agent</guid>
</item>
<item>
<title>September 2026 Roundup: What's New in BoxLang, BoxLang AI, and the Ecosystem</title>
<description>September 2026 Roundup: What's New in BoxLang, BoxLang AI, and the Ecosystem
September brought exciting developments across the BoxLang ecosystem! From the release of BoxLang 1.17.0 and major advancements in BoxLang AI 3.4 to new developer tools, modernization resources, and community initiatives, there's plenty to explore.
Whether you're building new applications, modernizing existing CFML systems, or exploring AI-powered development, here's a recap of the latest updates, technical insights, and resources published this month.
BoxLang Releases &amp;amp; Innovations
Explore the latest BoxLang releases and enhancements designed to improve performance, security, developer productivity, and application modernization.
BoxLang 1.17.0 Released: Module Inception, CLI Checker, JAR Loading and Much More!
BoxLang 1.17.0 expands the language with nested modules, JAR-based module packaging, and the new boxlang check syntax validator, alongside security, memory, hot-reload, and debugging improvements designed to make development and deployment more flexible and reliable.
BoxLang 1.17 Series Part 1: Module Inception
A deeper look at BoxLang 1.17's new Module Inception capabilities, including nested modules, isolated class loaders, JAR-based modules, and hierarchical dependency management for building more flexible and self-contained applications.
BoxLang 1.17 Series Part 2: BoxLang Check — Syntax Validation Your AI Agent Can Read
Discover the new boxlang check command in BoxLang 1.17, designed to validate BoxLang and CFML syntax without executing code. With machine-readable JSON output, it gives AI agents, CI pipelines, and developers a fast way to catch and correct syntax errors before they reach runtime.
BoxLang 1.17 Series Part 3: Encrypted Config Secrets
Explore how BoxLang 1.17 improves configuration security with encrypted secrets, helping teams protect sensitive values like API keys, credentials, and tokens while keeping application configuration easier to manage across environments.
BoxLang AI: What's New in Agentic Development
Discover the latest capabilities in BoxLang AI 3.4, including AI agent security, Human-in-the-Loop workflows, gateway integrations, and advanced reasoning.
BoxLang AI 3.4.0: Gateways, Human-in-the-Loop, and a Full Security Stack
BoxLang AI 3.4.0 introduces major upgrades focused on trust, control, and security, including the new Gateway SPI, Human-in-the-Loop workflows, durable approvals, layered AI guardrails, normalized reasoning, and expanded AWS Bedrock support.
BoxLang 3.4 Blog Series Part I: Gateways, One Interface, Any Platform
Explore BoxLang AI 3.4's new Gateway SPI, which provides a single interface for connecting AI agents to different platforms and approval workflows. Developers can build Human-in-the-Loop experiences across the CLI, HTTP, chat platforms, and custom integrations without changing the core agent logic.
BoxLang 3.4 Blog Series Part 2: Revamped Human in The Loop HITL
BoxLang AI 3.4 revamps Human-in-the-Loop workflows with flexible approval policies, durable decision storage, and clearer separation between approval logic and interaction gateways, giving teams more control over how AI agents request and remember human approvals.
BoxLang AI 3.4 Blog Series Part 3: Batched Approvals
Learn how BoxLang AI 3.4 improves Human-in-the-Loop workflows with batched approvals, allowing multiple pending actions to be reviewed and approved together for a smoother, more efficient agent experience.
BoxLang AI 3.4 Blog Series Part 4: Locking Down Prompt Injection
See how BoxLang AI 3.4 strengthens agent security with new protections against prompt injection, helping developers reduce risk, validate inputs, and build safer AI-powered applications with stronger guardrails around model interactions.
BoxLang AI 3.4 Blog Series Part 5: Reasoning Without the Guesswork
Learn how BoxLang AI 3.4 improves reasoning workflows with more consistent, structured outputs across providers, helping developers work with AI reasoning more reliably while reducing provider-specific differences and guesswork.
Modernizing with BoxLang: Guides &amp;amp; Resources
Explore practical resources to help developers evaluate BoxLang, understand its CFML compatibility, and modernize existing applications.
Why Migrate from ColdFusion to BoxLang? 10 Reasons to Modernize Your CFML Applications
Discover 10 key reasons teams are moving from ColdFusion to BoxLang, from modern architecture and stronger performance to greater flexibility, cloud readiness, and a more future-focused development experience.
Getting Started with BoxLang as an Alternative CFML Engine
Learn how to get started with BoxLang as an alternative CFML engine, including the core setup steps, compatibility considerations, and what teams should know when evaluating BoxLang for existing CFML applications.
TryBoxLang.io Now Runs Every BoxLang Version, With or Without CFML
TryBoxLang.io now gives developers more flexibility to test and explore BoxLang across multiple versions, with the option to run examples with or without CFML compatibility for easier experimentation and migration testing.
BoxLang in the Community
See how BoxLang is connecting with developers, students, and the next generation of software innovators through educational initiatives and hands-on learning.
BoxLang at Florida International University: Building the Next Generation of Modern Developers!
Ortus Solutions brought BoxLang, BoxLang AI, career guidance, and real-world software experience to Florida International University, helping students explore modern development while preparing for upcoming hands-on workshops and a hackathon.
Stay Connected with the BoxLang Ecosystem
September brought exciting advancements in BoxLang, from new language capabilities and AI-powered development to modernization resources and community initiatives. And there's much more to come!
Whether you're exploring BoxLang for the first time or already building with it, there's a growing ecosystem of tools, resources, and developers ready to help you take the next step.
Subscribe to Our Newsletter
Get the latest BoxLang releases, tutorials, AI innovations, community stories, upcoming events, and exclusive content delivered straight to your inbox.
Subscribe
Join the BoxLang Community
Connect with developers around the world, ask questions, exchange ideas, and contribute to the growing BoxLang ecosystem.
BoxTeam Slack — Connect directly with the BoxLang team and fellow developers.
Community Forum — Ask questions, share knowledge, and explore community discussions.
Start Exploring BoxLang
Ready to dive deeper? Explore our official resources, documentation, and development tools:
BoxLang — Discover the language, its capabilities, and the latest updates.
BoxLang AI — Explore AI-powered development, agents, and integrations.
Documentation — Access guides, references, and technical documentation.
Try BoxLang — Experiment with BoxLang directly in your browser.
GitHub — Explore the source code, contribute, and follow ongoing development.
BoxLang Around the World. Building the Next Generation of Developers.
Thanks for being part of our growing community. See you in the next roundup!</description>
<link>https://www.ortussolutions.com/blog/september-2026-roundup-whats-new-in-boxlang-boxlang-ai-and-the-ecosystem</link>
<pubDate>Fri, 02 Oct 2026 15:27:00 GMT</pubDate>
<author>vcampos@ortussolutions.com (Victor Campos)</author>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/september-2026-roundup-whats-new-in-boxlang-boxlang-ai-and-the-ecosystem</guid>
</item>
<item>
<title>ColdBox 8.2 Deep Dive, Part 4 of 5 : AI Routing and Gateways</title>
<description>We've been building AI into the core of ColdBox since 8.0, because the applications teams are asked to build have changed. They talk to models, stream answers, expose tools to other AI systems, and increasingly host agents that act on behalf of users. None of that should require bespoke plumbing in every project.</description>
<link>https://www.ortussolutions.com/blog/coldbox-82-deep-dive-part-4-of-5-ai-routing-and-gateways</link>
<pubDate>Fri, 02 Oct 2026 15:21:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>CacheBox</category>
<category>ColdBox MVC</category>
<category>CommandBox</category>
<category>ContentBox CMS</category>
<category>LogBox</category>
<category>WireBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/coldbox-82-deep-dive-part-4-of-5-ai-routing-and-gateways</guid>
</item>
<item>
<title>Ortus Solutions August Recap 2026</title>
<description>September 2026 Roundup: What's New Across the Ortus Solutions Ecosystem
September brought new releases, technical insights, and practical resources across the Ortus Solutions ecosystem. From ColdBox 8.2 and TestBox 7.1 enhancements to software modernization strategies, quality assurance, and development team solutions, there's plenty to catch up on.
Whether you're building enterprise applications, improving your testing workflows, or looking for ways to keep development projects moving, here's a recap of the latest news, tutorials, and resources published this month.
Frameworks &amp;amp; Product Updates
Explore the latest framework releases and technical enhancements designed to help developers build, maintain, and scale modern applications.
ColdBox 8.2.0: Middleware, Streaming, AI Gateways, and a Whole Lot More
ColdBox 8.2.0 introduces enhanced middleware support, streaming capabilities, AI gateway integrations, and additional developer-focused improvements, bringing greater flexibility to modern application development.
ColdBox 8.2 Deep Dive Part 1 of 5: Route-Scoped Middleware
Take a closer look at route-scoped middleware in ColdBox 8.2 and discover how it gives developers more precise control over request handling, allowing middleware to be applied to specific routes.
Be a Rebel, but Trust Us on This: Use ColdBox. You’ll Thank Us Later!
Discover how ColdBox helps CFML teams bring structure, consistency, and maintainability to growing applications, making them easier to test, scale, onboard, and evolve without requiring a complete rewrite.
Testing &amp;amp; Developer Tools
From new assertion capabilities to more expressive testing workflows, explore how TestBox helps developers improve code quality and build more reliable applications.
Assert Like You Mean It: TestBox 7.1 Part 1 — Set Expectations
Explore TestBox 7.1's new set expectations, designed to make collection comparisons clearer and more expressive while simplifying how developers validate data in their tests.
Assert Like You Mean It: TestBox 7.1 Part 2 — Range Expectations
Dive into TestBox 7.1's range expectations and discover how they make it easier to validate numeric values, limits, and boundaries with more readable and maintainable tests.
Assert Like You Mean It: TestBox 7.1 Part 3 — Data Navigator
Learn how TestBox 7.1 leverages BoxLang's Data Navigator to simplify the inspection and validation of complex, nested data structures through more intuitive and expressive assertions.
Assert Like You Mean It: TestBox 7.1 Part 4 — Grouped Assertions and Collection Modes
Discover how grouped assertions and collection modes in TestBox 7.1 provide greater flexibility when evaluating multiple expectations, helping developers write more organized and effective tests.
Software Development &amp;amp; Modernization Insights
Explore practical strategies for addressing development challenges, improving delivery processes, and supporting the long-term evolution of business-critical applications.
Your Development Team Is at Capacity. Here’s How to Keep Critical Work Moving
Discover practical strategies to keep high-priority development work moving when internal teams are stretched thin, including how staff augmentation and specialized technical support can help address capacity gaps, reduce bottlenecks, and maintain delivery momentum.
Is Your QA Process Ready for Your Next ColdFusion or BoxLang Release?
Explore why quality assurance is essential for protecting critical business workflows, reducing release risks, and improving confidence when deploying or modernizing ColdFusion, CFML, and BoxLang applications.
Upcoming Events: Learn with Ortus
Continue learning with our upcoming technical sessions, designed to share practical knowledge, real-world experience, and strategies you can apply to your development projects.
Quality That Pays Off: Find the Gaps in Your QA Process
October 9, 2026 | 11:00 AM CDT | Free Online Webinar
Is your QA process protecting the workflows that matter most?
Join Tom Buettell, Senior Quality Assurance Specialist at Ortus Solutions, for a practical session on identifying testing gaps, reducing production risks, and building repeatable QA practices.
Learn how to prioritize testing based on business impact, determine what should be automated, and evaluate whether your application is ready for its next release, upgrade, or migration.
Register for the Free QA Webinar
Get your Ticket
Stay Connected with the Ortus Solutions Ecosystem
September brought exciting updates across ColdBox, TestBox, and the broader Ortus ecosystem, but there's always more on the way!
From new product releases and technical deep dives to expert-led webinars, community events, and practical development resources, we want to make sure you don't miss what's next.
Stay connected with Ortus Solutions and get the latest updates delivered to you.
Subscribe to Our Newsletter
Get the latest product releases, technical articles, tutorials, upcoming events, and exclusive content delivered straight to your inbox.
Subscribe
Join Our Developer Community
Connect with fellow developers, ask questions, share ideas, and engage directly with the Ortus team. Join our community to stay involved in the conversations shaping the ecosystem.
Join the BoxTeam Community on Slack
Follow Us on Social Media
Stay up to date with our latest announcements, releases, educational content, and community news. Follow Ortus Solutions on your favorite platforms:
X (Twitter)
Facebook
LinkedIn
YouTube
GitHub
And whenever you're looking for more technical insights, you can always explore the latest articles on the Ortus Solutions Blog.
Thanks for being part of our community. See you in the next roundup!</description>
<link>https://www.ortussolutions.com/blog/ortus-solutions-august-recap-2026</link>
<pubDate>Thu, 01 Oct 2026 22:49:00 GMT</pubDate>
<author>vcampos@ortussolutions.com (Victor Campos)</author>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/ortus-solutions-august-recap-2026</guid>
</item>
<item>
<title>Introducing CBGenesis : AI-native ColdBox starter for BoxLang</title>
<description>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.</description>
<link>https://www.ortussolutions.com/blog/introducing-cbgenesis-ai-native-coldbox-starter-for-boxlang</link>
<pubDate>Thu, 01 Oct 2026 11:13:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>CacheBox</category>
<category>ColdBox MVC</category>
<category>CommandBox</category>
<category>ContentBox CMS</category>
<category>LogBox</category>
<category>WireBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/introducing-cbgenesis-ai-native-coldbox-starter-for-boxlang</guid>
</item>
<item>
<title>ColdBox 8.2 Deep Dive, Part 3 of 5 : Server-Sent Events You Can Test</title>
<description>Part 2 was about sending as little as possible. Today is the opposite: keeping a connection open and pushing data the moment it exists.</description>
<link>https://www.ortussolutions.com/blog/coldbox-82-deep-dive-part-3-of-5-server-sent-events-you-can-test</link>
<pubDate>Thu, 01 Oct 2026 10:35:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>CacheBox</category>
<category>ColdBox MVC</category>
<category>CommandBox</category>
<category>ContentBox CMS</category>
<category>LogBox</category>
<category>WireBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/coldbox-82-deep-dive-part-3-of-5-server-sent-events-you-can-test</guid>
</item>
<item>
<title>Does Your Next ColdFusion Project Need a Specialist?</title>
<description>A migration can address an infrastructure limitation and still create a delivery challenge:
who will do the work while your team continues supporting customers and shipping planned features?
The developers who understand your application may already be responsible for production support, integrations, and important business commitments. Moving them onto modernization creates tradeoffs. Leaving the project untouched keeps the existing limitations in place.
For business and technology leaders, the next step is to define what needs to change, how to evaluate the result, and which responsibilities the team can realistically absorb.
The SignUpGenius migration illustrates how those decisions can connect business priorities with specialized technical expertise. Its experience also provides a starting point for evaluating your own project.
Claim free 30-min consultation
Planning a migration or modernization initiative?
Schedule a free 30-minute consultation to discuss your application, delivery priorities, and the expertise your team may need.
1. Define the operational improvement before choosing the technology
Migration and modernization often overlap, but they describe different kinds of change.
A migration moves an application or workload to another environment, platform, or runtime. Modernization improves how the application is built, operated, maintained, or extended. Moving to a new environment may support modernization, but the move alone does not establish that the business problem has been solved.
Start with the limitation you want to address:
Does the application take too long to scale when demand increases?
Is deployment difficult to repeat or recover from?
Are environment dependencies restricting your options?
Is maintenance consuming time intended for new development?
In the SignUpGenius case study, the customer described scaling delays, licensing costs, and Windows-related dependencies among the reasons for exploring a different approach. Ortus supported the transition from Adobe ColdFusion and Windows to Lucee and Linux, including containerization.
The project connected technical changes to operational needs.
Apply this to your project: complete the statement, “We are making this change so that ______ improves, and we will evaluate it by ______.”
That gives leadership a reason to invest and the technical team a basis for evaluating options.
2. Separate application knowledge from migration experience
Your internal developers may know the application exceptionally well without having performed the particular migration you are planning.
Application knowledge includes business rules, unusual workflows, integration behavior, and the reasons behind earlier decisions. Migration expertise might include compatibility analysis, environment configuration, containerization, or rollout planning.
A project may need both.
In the SignUpGenius interview, Jojo Serquina, CTO at Lumaverse, described a small engineering team that wanted to maintain its roadmap focus rather than absorb the application conversion.
“We want to continue with our roadmap.”
Ortus brought specialized migration and infrastructure experience to the work. The case also describes how an Ortus engineer recommended containerization as part of the approach.
Apply this to your project: identify what your team knows, what it needs to learn, and where relevant outside experience could reduce uncertainty.
This does not automatically mean adding a permanent role. It creates a clearer basis for deciding whether to develop the skill internally, hire for an ongoing need, or bring in specialized support.
3. Validate the result against the original problem
A successful move to a new environment is one milestone. Demonstrating that the change addresses the original limitation is another.
The SignUpGenius interview describes load and scaling testing during the project. The customer reported that scaling time decreased from approximately 20 minutes to probably less than a minute following containerization.
That is a reported result from this particular migration, not an expected outcome for every application. Its value as a lesson is the connection between the initial concern—scaling—and the behavior evaluated after the change.
For your own project, agree on evidence before implementation begins. Depending on the objective, that could include:
Results from agreed load scenarios.
Verification of critical application workflows.
A demonstrated deployment and rollback procedure.
Confirmation that essential integrations behave as expected.
Documentation of unresolved issues and their owners.
Apply this to your project: choose measures that reflect the business reason for the change. Establish a baseline where possible, and distinguish measured improvements from assumptions.
Case study
See the project behind these lessons.
Read the full SignUpGenius migration case study
Source: SignUpGenius migration case study, interview with Jojo Serquina, pages 2–4. The case documents migration work and is not identified as a Staff Augmentation engagement. The planning recommendations in this article are broader takeaways, not a reconstruction of every step in that project.
4. Plan the internal effort that outside support will still require
Specialized support needs context and decisions from your organization.
Someone must explain expected application behavior, clarify business rules, review proposed changes, and accept completed work. If these responsibilities remain undefined, questions can repeatedly interrupt the same senior developers whose time you wanted to protect.
Before the project begins, agree on:
The internal application owner. Who can explain the system and coordinate answers?
Decision responsibilities. Which choices can the specialist make, and which require internal approval?
Review time. When will the team evaluate work and resolve questions?
Protected commitments. Which roadmap priorities must the internal team continue delivering?
Apply this to your project: include internal collaboration time in the plan. Outside support adds expertise and capacity, but it still needs a workable relationship with the people accountable for the application.
5. Treat maintainability and knowledge transfer as deliverables
The project should leave your team able to operate what has changed.
Define what the internal team will need to understand about configuration, dependencies, deployment, troubleshooting, and future updates. Include walkthroughs and documentation in the work rather than leaving them until the final handoff.
Ask:
When the external support ends, who will own this—and what will they need to maintain it?
That question helps prevent a completed technical change from becoming a new concentration of knowledge outside your organization.
Apply this to your project: include an internal owner, useful documentation, and demonstrated understanding in the acceptance criteria for the relevant work.
What these insights reveal about the support your team needs
Once the work is defined, the expertise gap becomes more specific.
You may need someone to investigate compatibility, implement a migration stage, improve the deployment process, or provide technical direction. You may also need experienced development capacity to keep existing commitments moving while internal specialists focus on the change.
These are different responsibilities. They should shape the support model.
Your project needsSupport to evaluate
Additional implementation capacity within your existing delivery process.An embedded specialist with defined responsibilities.
Experienced guidance for architecture or migration decisions.Technical leadership with agreed decision and review responsibilities.
A bounded piece of work with clear deliverables and acceptance criteria.A focused workstream with explicit delivery ownership.
Expertise that will be needed continuously across future projects.Internal skill development or a permanent hire, potentially supported during the transition.
Staff Augmentation can fit when you need specialized expertise or additional capacity working within your team’s priorities and processes. A separately owned project or workstream may fit a different need.
The decision should follow the work, its duration, and the ownership your organization requires.
Explore Ortus Staff Augmentation and Engagement Options
Use the Capacity Gap Guide to prepare the conversation
Before deciding which role to add, bring the business and technical owners together around one initiative.
Identify the work that is waiting, the consequence of delay, the expertise required, and the responsibilities your team will retain.
FREE LEAD MAGNET
Turn your modernization priorities into a clearer capacity brief.
Use our free Capacity Gap Guide to organize delayed work, missing expertise, and ownership needs before your next planning conversation.
Get the Free Capacity Gap Guide
Discuss the project and the expertise it requires
You do not need a complete migration plan to begin evaluating support. Bring the application context, the limitation you want to address, and the roadmap commitments you need to protect.
Find the right support for your next migration or modernization initiative.
Schedule a free 30-minute consultation with Ortus Solutions. We’ll discuss your project, assess the capacity and expertise needs, and help identify the type of specialist or engagement that could fit.
Claim free 30-min consultation
Select Staff Augmentation in the contact form and describe the initiative you want to discuss.
Join the Ortus Community
Be part of the movement shaping the future of web development. Stay connected and receive the latest updates on, product launches, tool updates, promo services and much more.
Subscribe to our newsletter for exclusive content.
Subscribe
Follow Us on Social media and don’t miss any news and updates:
https://twitter.com/ortussolutions
https://www.facebook.com/OrtusSolutions
https://www.linkedin.com/company/ortus-solutions-corp
https://www.youtube.com/OrtusSolutions
https://github.com/Ortus-Solutions</description>
<link>https://www.ortussolutions.com/blog/does-your-next-coldfusion-project-need-a-specialist</link>
<pubDate>Wed, 30 Sep 2026 19:34:00 GMT</pubDate>
<author>vcampos@ortussolutions.com (Victor Campos)</author>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/does-your-next-coldfusion-project-need-a-specialist</guid>
</item>
<item>
<title>ColdBox 8.2 Deep Dive, Part 2 of 5 : HTTP Caching</title>
<description>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.</description>
<link>https://www.ortussolutions.com/blog/coldbox-82-deep-dive-part-2-of-5-http-caching</link>
<pubDate>Wed, 30 Sep 2026 17:15:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>CacheBox</category>
<category>ColdBox MVC</category>
<category>CommandBox</category>
<category>ContentBox CMS</category>
<category>LogBox</category>
<category>WireBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/coldbox-82-deep-dive-part-2-of-5-http-caching</guid>
</item>
<item>
<title>Assert Like You Mean It, TestBox 7.1 Part 4 : Grouped Assertions and Collection Modes</title>
<description>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.</description>
<link>https://www.ortussolutions.com/blog/assert-like-you-mean-it-testbox-71-part-4-grouped-assertions-and-collection-modes</link>
<pubDate>Wed, 30 Sep 2026 17:01:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>IDE</category>
<category>OpenSource</category>
<category>Releases</category>
<category>TestBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/assert-like-you-mean-it-testbox-71-part-4-grouped-assertions-and-collection-modes</guid>
</item>
<item>
<title>Assert Like You Mean It, TestBox 7.1 Part 5 : The Rest of the 47</title>
<description>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.</description>
<link>https://www.ortussolutions.com/blog/assert-like-you-mean-it-testbox-71-part-5-the-rest-of-the-47</link>
<pubDate>Wed, 30 Sep 2026 16:56:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>IDE</category>
<category>OpenSource</category>
<category>Releases</category>
<category>TestBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/assert-like-you-mean-it-testbox-71-part-5-the-rest-of-the-47</guid>
</item>
<item>
<title>Assert Like You Mean It, TestBox 7.1 Part 3: Data Navigator</title>
<description>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.</description>
<link>https://www.ortussolutions.com/blog/assert-like-you-mean-it-testbox-71-part-3-data-navigator</link>
<pubDate>Tue, 29 Sep 2026 12:21:00 GMT</pubDate>
<author>lmajano@ortussolutions.com (Luis Majano)</author>
<category>BoxLang</category>
<category>IDE</category>
<category>OpenSource</category>
<category>Releases</category>
<category>TestBox</category>
<guid isPermaLink="false">https://www.ortussolutions.com/blog/assert-like-you-mean-it-testbox-71-part-3-data-navigator</guid>
</item>
</channel>
</rss>