ColdBox Platform

ColdBox is an open-source, conventions-based, modular web application framework intended for building enterprise applications with CFML using a Hierarchical MVC approach. ColdBox uses Convention over configuration and aims for simplicity, rapid development. It makes use of Model-view-controller, Dependency injection, Unit testing, Aspect-oriented programming architectural patterns. ColdBox allows for development of stand-alone modules which can be shared across apps. ColdBox is an active and heavily documented CFML framework.
Platforms.
ColdBox is supported on Lucee (A popular open source CFML engine) and Adobe's ColdFusion application servers.
It has supported IDE plugins for, Visual Studio Code, Sublime Text, Eclipse IDE, and Adobe ColdFusion Builder.
Usage.
Below is a list of some notable users of the Coldbox Platform.
Overview.
High-level attributes of ColdBox:
Internal Frameworks.
The ColdBox Platform comprises three independent frameworks:
Controllers.
ColdBox is conventions-based framework that is programmed in CFML, differing from other CFML MVC frameworks that use XML declarative logic for their controllers.
Below is an example of a controller:
component{
 // Use Dependency injection for hibernate based virtual services
 property name="userService" inject="entityservice:User";
 /**
 * Return immediate HTML
 function sayHello(event){
 return "hello";
 * Return immediate JSON from an ORM object's memento
 function sayHello(event){
 return userService.get( rc.id ).getMemento();
 
 * Return content in multiple formats
 function list(event){
 prc.data = userService.list();
 // render out all users in json format
 event.renderData( data=prc.data, formats="json,xml,pdf,html" );
URL Mappings.
ColdBox supports URL mappings and routing Rails style but adapted for ColdFusion. It also supports the creation of RESTful routing:
// Resources 
resource( "photos" );
// Nested Resources
resources(
 resource = "agents",
 pattern = "/sites/:id/agents"
// Redirects
route( "/oldRoute" )
 .toRedirect( "/main/redirectTest" );
// Direct Routing
route( "/render/:format" ).to( "actionRendering.index" );
// With Regex
route( "post/:postID-regex:([a-zA-Z]+?)/:userID-alpha/regex:(xml|json)" )
 .to( "ehGeneral.dumpRC" );
// subdomain routing
route( "/" )
 .withDomain( ":username.forgebox.dev" )
 .to( "subdomain.show" );
// Responses + Conditions
route( "/ff" )
 .withCondition( function(){
 return ( findnocase( "Firefox", cgi.HTTP_USER_AGENT ) ? true : false );
 .toResponse( "Hello FireFox" );
route( "/luis/:lname" )
 .toResponse( "<h1>Hi Luis {lname}, how are {you}</h1>", 200, "What up dude!" );
// Inline Closure Responses
route( "/luis2/:lname" )
 .toResponse( function( event, rc, prc ){
 return "<h1>Hello from closure land: #arguments.rc.lname#</h1>";
// Views No Events
route( "contactus" )
 .as( "contactUs")
 .toView( "simpleView" );
// Named routes
route( pattern="/routeRunner/:id/:name", name="routeRunner" )
 .to( "main.returnTest" );
// Grouped Routing
group( { pattern="/runAWNsync", handler="utilities.AWNsync" }, function( options ){
 route( '/:user_id' )
 .withAction( { get = "runAWNsync", options = "returnOptions" } )
 .end();
// RESTFul Actions
route( "/health_check" )
 .withAction( { get = "runCheck", options = "returnOptions" } )
 .to( "utilities.HealthCheck" );
RESTful URLs.
ColdBox allows for easy creation of RESTful URLs via URL mappings and extension detection. Natively ColdBox can detect any extension when supplied to an URI resource:
It allows for the detection of such extensions, security around them and the ability to customize the extensions.
Ajax support.
ColdBox supports all JavaScript frameworks that provide Ajax capabilities. It also provides an auto-marshalling function to render any object to the following formats natively: XML, WDDX, JSON, JSONP, TEXT, PDF, CUSTOM.
SOAP-Adobe Flex/Air Support.
ColdBox offers support for creating, monitoring and developing SOAP web services and Flex/Air remote components. It allows for having one development paradigm for multiple GUI interfaces.