Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From CFML to BoxLang: Lessons from the Masa CMS...

From CFML to BoxLang: Lessons from the Masa CMS v8 Evolution

How do you move an enterprise CMS to a brand-new engine? Join us as we explore the migration of Masa CMS to BoxLang. We’ll share the "gotchas," the wins, and a practical guide to getting Masa v8 running in your environment today.

Masa CMS v8 isn’t just an update; it’s a case study in modernizing CFML applications. This session explores the journey of introducing BoxLang support into a mature, complex codebase.

We will explore the specific technical hurdles encountered during the v8 development cycle—the "unfiltered" version of what works, what didn't, and how we optimized the platform for the BoxLang runtime. You don’t need to be a Masa expert to attend; this session is designed for any developer looking for a real-world example of migrating a professional application to the BoxLang ecosystem.

What you’ll learn:
- How to bridge the gap between traditional CFML and BoxLang.
- The "Hurdles & Heroes": Real-life fixes for migration challenges.
- How to spin up your first Masa v8 instance on BoxLang.

Avatar for Guust Nieuwenhuis

Guust Nieuwenhuis

May 05, 2026

More Decks by Guust Nieuwenhuis

Other Decks in Technology

Transcript

  1. ABOUT ME Guust Nieuwenhuis Managing Partner @ We Are North

    Full Stack Web Wizard Lead Dev for Masa CMS Born in The Netherlands Living in Belgium Drums/Percussion Mountainbiker
  2. • Enterprise Content Management • Open Source Software • Fork

    of Mura CMS • Security and Privacy First • Used by companies & organizations worldwide • Highly customizable • Integrates easily into other systems What is Masa CMS?
  3. • Adobe ColdFusion 2025 support • Lucee 7 support •

    Boxlang support • Improved security • Bug fi xes • Removals Currently in Alpha Version 8.0
  4. Feature audit tool • boxlang featureAudit -- source ./MasaCMS/ --

    missing --reportFile ./ feature-audit-report.csv • https://boxlang.ortusbooks.com/ getting-started/ide-tooling/cfml- feature-audit Day 1: where do you even start?
  5. Test Environments Day 1: where do you even start? •

    Hosted on Github • masacms/test-environments • Docker based • Supported engines: • Adobe ColdFusion, Lucee, Boxlang • Supported databases: • MySQL, MariaDB, MSSQL, PostgreSQL, Oracle
  6. First run Day 1: where do you even start? •

    “Procession of Echternach” • Three steps forward, two steps back • Goal #1: get to the Masa CMS administrator Procession of Echternach
  7. Numeric dates The exotic CFML tour • Content interval manager

    • Using fi x(), min(), max() on dates • Not supported by Boxlang: “Boxlang FWIW will refuse to implicitly convert numbers to dates outside of 0” - Brad
  8. Engine speci fi c code The exotic CFML tour •

    Backport.cfm • Allowed fi le operation extensions this.allowedFileOperationExtensions = [ "cfm", ".ini.cfm", "cfc", "xml", "xml.cfm" ]; • Very minimal thanks to bx-compat-cfml
  9. The overlap The exotic CFML tour • cfscript support for

    script-based CFCs • S3 ACL "Modernizing for ACF 2025 paid for a chunk of the BoxLang work for free."
  10. The opportunities The exotic CFML tour • Redevelop fi le

    storage (in development) • Remove old code like <c fl ogin> • No support support for database creation in setup wizard (on Boxlang)
  11. The engine-inconsistency reality • Blockfactor • Attribute on <cfquery> •

    Range: 1 - 100 • Strict implementation in Boxlang • ACF and Lucee don’t follow their own documentation • getPro fi leSections() • ACF & Lucee: struct of lists • Boxlang: struct of struct
  12. Tests as hero • ~625 TestBox tests • Written years

    before BoxLang existed • Lots of issues discovered: • cache trap • date refactor regressions • query attribute drift
  13. Spin it up yourself • Try Masa CMS v8 on

    Boxlang • File issues upstream (BoxLang and/or Masa CMS) • Contribute fi xes • Port your own CFML app?
  14. Q&A