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

Close the Year Strong: Secure Your 2026 CFML Consulting plan or Professional Support at a Special Rate

Close the Year Strong: Secure Your 2026 CFML Consulting plan or Professional Support at a Special Rate

As we approach the end of the year, many engineering teams face the same challenge: unused budget that must be spent before December 31 or a new 2026 budget that should be allocated strategically from the start.

If your organization relies on ColdFusion or Lucee, this is the ideal moment to secure expert support and ensure a stable, high-performing foundation for next year.

To help te...

Cristobal Escobar
Cristobal Escobar
December 10, 2025
The CFML Talent Crunch in 2025: Why Modernization Can’t Wait

The CFML Talent Crunch in 2025: Why Modernization Can’t Wait

How organizations can stay competitive when CFML expertise is harder to find than ever?

1. The Silent Crisis: CFML Talent Is Disappearing

For many organizations, ColdFusion and CFML applications still power critical business processes.

But there’s a growing challenge that leaders can no longer ignore:

The number of experienced CFML developers is shrinking—and it’s happening fast.

Why?

  • Few new devel...

Cristobal Escobar
Cristobal Escobar
December 09, 2025
HTTP Superpowers: BoxLang's New Fluent HTTP API

HTTP Superpowers: BoxLang's New Fluent HTTP API

New in BoxLang 1.8.0 - Say goodbye to verbose HTTP request building. BoxLang introduces a powerful fluent HTTP API that makes working with HTTP/S requests not just easier, but actually enjoyable.

Luis Majano
Luis Majano
December 09, 2025