Blog

 Introducing CBWIRE v5.0!

Maria Jose Herrera December 10, 2025

Spread the word

Maria Jose Herrera

December 10, 2025

Spread the word


Share your thoughts

🚀 Introducing CBWIRE v5.0, Faster, Smarter, BoxLang-Powered Reactive Development

We are thrilled to announce the release of CBWIRE v5.0, the most powerful, stable, and developer-friendly version of CBWIRE ever shipped.

This major upgrade introduces deep BoxLang support, upgraded Livewire v3.6.4 features, enhanced security, improved error handling, performance gains, and long-requested developer experience improvements across the board.

Whether you're building full applications, dashboards, or reactive components inside ColdBox, CBWIRE v5.0 gives you more power with less friction.


🌟 What’s New in CBWIRE 5.0

⚡ Upgraded to Livewire v3.6.4

CBWIRE now bundles Livewire v3.6.4, unlocking several new directives and front-end capabilities:

  • wire:current – Automatically detect and style the active navigation link
  • wire:cloak – Hide elements until Livewire initializes
  • wire:show – Show/hide elements with CSS instead of DOM removal
  • wire:text – Update text content instantly without network roundtrips
  • wire:replace – Force full re-renders for complex DOM scenarios

🔥 Full BoxLang Support

CBWIRE v5 ships with full native BoxLang support, including:

  • .bx components (logic)
  • .bxm templates (markup)
  • Updated documentation with side-by-side BoxLang + CFML examples
  • Performance improvements and modern language features
// wires/UserDashboard.bx
class extends="cbwire.models.Component" {
    data = {
        "users": [],
        "searchTerm": ""
    };

    function onMount() {
        data.users = getUserService().getAllUsers();
    }

		@computed
    function filteredUsers() {
        return data.users.filter(function(user) {
            return !data.searchTerm.len() || user.name.findNoCase(data.searchTerm);
        });
    }
}

📤 Improved File Upload Error Handling

Uploads now provide graceful, component-level error handling through the new onUploadError() lifecycle hook.

function onUploadError( property, errors, multiple ) {
    data.uploadFailed = true;
    data.errorMessage = "Failed to upload " & ( multiple ? "files" : "file" );
}

🔗 Access the Event Object in Templates

You can now use the ColdBox event (request context) directly inside your component templates:

<a href="#event.buildLink('dashboard')#">Dashboard</a>

Background requests to /cbwire/update may not always have interceptor-provided values—store them in onMount() to ensure persistence.


🧩 Dot Notation for Nested Data

CBWIRE v5 supports deep nested structures using dot notation in both templates and code:

<input type="text" wire:model="user.name.first">

You can structure your data properties like this:

    data = {
        user: {
            name: {
                first: "Jane",
                last: "Doe"
            }
        }
    };

📄 Single-File Components

CBWIRE now supports single-file components with both template and logic in the same .bxm file using:

  • <bx:output> – for markup
  • <bx:script> – for component logic (// @startWire / // @endWire)

🛡️ Flexible CSRF Protection

CBWIRE 5 introduces session-based Cross-Site Request Forgery protection, enabled out of the box.

Highlights:

  • Default: Session-based storage (OWASP-recommended)
  • Eliminates "Page Expired" errors
  • Token generation + validation works automatically
  • Option to switch to Cache storage for distributed systems
  • Fully customizable storage engine support
moduleSettings = {
    cbwire = {
        csrfEnabled = true,
        csrfStorage = "SessionCSRFStorage@cbwire"
    }
};

Security is now completely built-in—no extra configuration required.


🔧 Breaking Changes You Should Know

1. Secure Upload Storage

Uploads no longer write files inside CBWIRE’s internal directory.

Files now default to the system temporary directory.

Use the new store() method for moving files permanently:

data.photo.store("/uploads/photos");

It’s faster, safer, and auto-creates directories.


2. onMount() No Longer Auto-Sets Params

If your component defines onMount(), you now must explicitly assign parameters:

function onMount( params ) {
    data.title = params.title;
    data.author = params.author;
}

This prevents unintended overwriting and makes parameter handling predictable.


3. Engine + ColdBox Support Updates

Added:

  • BoxLang 1+
  • Lucee 6.0+
  • ColdBox 7+ and 8+

Removed:

  • Adobe ColdFusion 2018 (EOL)
  • Adobe ColdFusion 2021 (EOL)

Supported engines:

  • BoxLang
  • Lucee 5.3+/6.0+
  • Adobe CF 2023+/2025+

🐞 Bug Fixes

CBWIRE 5 includes a wide set of stability fixes:

  • Uploads now respect the correct updateEndpoint setting
  • Fixed incorrect upload directory path resolution
  • Fixed race conditions during temporary directory creation
  • Fixed lazy-loading calling missing onMount() functions
  • Custom wiresLocation now works correctly
  • Improved reliability across background requests

🎥 Watch the CBWIRE v5 Live Launch


We hosted a full Live Launch Event on YouTube, walking through the entire release, showcasing demos, and answering community questions.

In the video we cover:

  • Full feature overview of CBWIRE 5
  • Live coding demos
  • BoxLang component examples
  • Migration guidance
  • What’s coming next
  • Q&A with the Ortus team

📌 Watch the full replay:

https://www.youtube.com/watch?v=Hy-LkTg7XDU


🚀 CBWIRE v5.0 Is Available Now

You can start using CBWIRE v5 today with:

install cbwire@5

Or upgrade with:

update cbwire@5

Check out the full documentation and Release notes at:

https://cbwire.ortusbooks.com/releases/whats-new-with-5.0

Join the BoxLang Community

Stay connected with the latest updates, BoxLang announcements, Into the Box 2026 news, tutorials, tools, and more.

Subscribe to our newsletter for exclusive updates and early access.

Follow Us

Add Your Comment

Recent Entries

First Round of the Into the Box 2026 Agenda Is Live

First Round of the Into the Box 2026 Agenda Is Live

Into the Box 2026 marks an important moment for the CFML and BoxLang community not just because of what’s on the agenda, but because of what it represents: 20 years of Ortus Solutions helping teams move forward, modernize, and build with confidence.

Victor Campos
Victor Campos
January 21, 2026
BoxLang AI v2: Enterprise AI Development Without the Complexity

BoxLang AI v2: Enterprise AI Development Without the Complexity

One Year. 100+ Features. Unlimited Possibilities.

Just one year ago, in March 2024, we launched BoxLang AI 1.0. Today, we're thrilled to announce BoxLang AI v2—a massive leap forward that positions BoxLang as the most powerful and versatile AI framework on the JVM.

Luis Majano
Luis Majano
January 19, 2026
CommandBox: A Smarter Foundation for BoxLang and CFML Workflows

CommandBox: A Smarter Foundation for BoxLang and CFML Workflows

In day-to-day development, some tools simply do their job… and others quietly change the way you work. CommandBox falls into the second category.

It doesn’t replace your editor, framework, or existing applications. Instead, it becomes the common ground where CFML and BoxLang development meet ,giving teams a consistent, reliable way to build, run, and evolve their projects.

Victor Campos
Victor Campos
January 16, 2026