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

Into the Box Sessions Round 2 is now Out!

Into the Box Sessions Round 2 is now Out!

Into the Box 2026 is shaping up to be our most dynamic event yet! Building on the momentum of our first release, we are thrilled to announce the second round of sessions for this year's conference.

As the ecosystem continues to evolve, teams are balancing the realities of maintaining critical legacy applications while adopting modern tools, architectures, and practices. Into the Box has always been about meeting developers where they are and giving them practical paths to what’s next.

Victor Campos
Victor Campos
February 24, 2026
Why UK Financial Institutions are reassessing ColdFusion Licensing

Why UK Financial Institutions are reassessing ColdFusion Licensing

Rising ColdFusion Licensing Costs, Oracle JVM Risk and Financial Exposure in the United Kingdom

Across the United Kingdom, many financial institutions continue to rely on legacy Adobe ColdFusion (ACF) platforms to power internal banking systems, insurance portals, reporting tools, and regulatory workflows.

For years, these systems were stable and cost-effective.

Today, however, Adobe ColdFusion licensing costs

Cristobal Escobar
Cristobal Escobar
February 24, 2026