SlideShare a Scribd company logo
INTO THE BOX 2023
Nolan Erck
REAL WORLD COLDBOX
APP ARCHITECTURE
Owner @ South of Shasta
Organizer @ Sac Interactive Tech Meetup (formerly
Sacramento CFUG)
Recovering Video Game Developer (Grim Fandango,
SimPark, Star Wars Phantom Menace, etc)
Music Junkie
About Me
ITB 2023 Real World ColdBox App Architecture - Nolan Erck.pdf
ITB 2023 Real World ColdBox App Architecture - Nolan Erck.pdf
Also VP of Engineering for e-Mission Control
SaaS startup in Sacramento
Building the FuSE web app
About Me
Streamlines using your local Clean Fuel Program / LCFS
Free to use
SaaS Platform
Tech stack at a glance:
Lucee, MySQL, Alpine.js, AWS
What Does The FuSE App Do?
Login, Authentication, Authorization, Permissions, AWS, Validation, etc.
Want it to be
f
lexible, organized.
Started with a blank slate. Zero existing code.
Where to begin?
CFML, ColdBox, Alpine.js, MySQL
The same needs as other apps
Try to be objective when picking a tech stack
Lucee = free and open source
Startups = costs are a real concern
Strong ties to the CFML community
Might use ACF for some features later
WHY CFML?
Industry standard, not just for CFML!
Any good developer can pick it up quickly.
Learn your design patterns! Opens up new job opportunities to you!
OO Primer video series on CFCasts.com that I made with Ortus to get you started.
WHY MVC?
Almost* never a good reason to roll your own framework!
Doing so usually means:
a) They are not really using the MVC pattern, or
b) They don’t understand MVC enough to make decisions on that front
* One very unique app we did for the semiconductor industry needed a custom framework. One. In 20+
years of web development. One. Uno.
WHY MVC?
So…FW/1, CF Wheels, or
ColdBox?
Enter ColdBox
(…and the Box ecosystem)
At a minimum
MVC structure
DI / AOP
Command Line tools/scaffolding
What ColdBox Gives Me
ALSO…
Server side testing
Professional support
There is no FW/1 or CFWheels Conference, nor paid support option
An ecosystem…
What ColdBox Gives Me
Compatible modules
forgebox.io
More than just ColdBox modules!
CommandBox Tooling
Docker images
The ColdBox Ecosystem
So anyway, back to the
FuSE app…
Same concerns as any
other web app
How many of you have rolled your own “check if this password is valid / login /
logout” code? Repetitive, boring to build. But necessary.
Users also need permission levels.
Forgebox has cbAuth & cbSecurity
Users need to log in
In ColdBox.cfc:
cbAuth
UserService.cfc
3 methods
isValidCredentials
retrieveUserByUsername
retrieveUserById
Let’s look at the code!
cbAuth
Give users permissions
Admin User, Customer logins, etc
Easily mark blocks of code for just speci
f
ic User Roles
Easily con
f
igure the levels of permission
cbSecurity
cbSecurity
cbSecurity
cbSecurity
cbSecurity
Want it to be RESTful (industry standard)
Versioned
Use the core app codebase, without copy/pasting business logic
Testable
Enter ColdBox Modules & REST Template
API
modules_app/api/v1
API code calls Services and Models however it needs to
Bug
f
ix in Service
f
ixes both the core app and API at the same time
ColdBox Modules & REST Template
REST Template
REST Template
Every web app has this
Optional vs required
f
ields
Constraints and business rules
Need a way to report the errors back to the caller
Enter cbValidation
Required Fields / Validation
cbValidation
S3, Elastic Search, various other AWS things
No of
f
icial CFML library for AWS
Enter ForgeBox: aws-cfml
Library for interacting with AWS APIs
AWS
AWS-CFML
AWS-CFML
Automated testing saves huge chunks of time and money!
Way cheaper to
f
ind and
f
ix bugs early, before in Production
Enter TestBox
You can test any CFML app with TestBox! Not just ColdBox apps!
Runs from web browser and command line
Command line = it can be scripted
GitHub Actions
Automated Testing
TestBox
http://localhost/tests/runner.cfm
box testbox run reporter=html/text/various other things
/tests folder
Can test any CFML app with TestBox! Not just ColdBox apps!
TestBox GitHub Actions
Cypress
Can test ANY web app with Cypress! Not just ColdBox! Not just CFML!
npx cypress run
Command line = it can be scripted
/cypress/e2e folder
Cypress GitHub Actions
GitHub Actions, Slack
Want an easy way to push code to servers
No manual steps, FTP, RDP, things prone to error
No physical web servers to maintain, just Docker containers
(except the database)
Deployment Process
Deployment Process
Ortus Docker Images
GitHub Actions + AWS App Runner
Deploy CommandBox Docker image to a branch
Separate cfcon
f
ig.json / env
f
iles for each environment
Dev, Staging, Production
GitHub Action + AWS App Runner does the rest
10 minutes later, we have a new version deployed
Deployment Process
Everything is scripted
go.sh for spinning up the container
Deployment Process
Ci script for deployment. Ci calls the Go script
And that’s our stack!
FAQs
Why aren’t you using the
latest versions of these
*box things?
Why Alpine.js?
Did you do all this at once?
Just Start
Learning in
30 Minutes A Day
This Conference!
CFCasts.com
CFML Slack channels (ugh!)
Ortus Solutions
South of Shasta
More Resources
You can
f
ind me here:
southofshsata.com
Twitter @southofshasta, @nolanerck
nolan@southofshasta.com
e-missioncontrol.com
Any Questions?
THANK YOU
Thanks to our sponsors

More Related Content

PDF
Into The Box 2018 Ortus Keynote
PDF
Take your CFML Legacy Apps to Modernization
PDF
Intro to ColdBox MVC at Japan CFUG
PDF
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
PDF
Brad Wood integrating mvc into legacy
PDF
Itb2018 integrating mvc into legacy
PDF
Itb2018 cf apps to dev to production with command box cf-config docker
PDF
CBDW2014 - This is ColdBox 4
Into The Box 2018 Ortus Keynote
Take your CFML Legacy Apps to Modernization
Intro to ColdBox MVC at Japan CFUG
Brad wood - Integrating MVC Into Legacy [Into The Box 2020]
Brad Wood integrating mvc into legacy
Itb2018 integrating mvc into legacy
Itb2018 cf apps to dev to production with command box cf-config docker
CBDW2014 - This is ColdBox 4

Similar to ITB 2023 Real World ColdBox App Architecture - Nolan Erck.pdf (20)

PDF
Intro to RESTFul API's with ColdBox MVC
PDF
ITB2017 - Keynote
PDF
Itb 2021 - Bulding Quick APIs by Gavin Pickin
PDF
Command Box ColdFusion Package Manager, Automation
PDF
ITB2019 Scaling with CommandBox in Production! - Brad Wood
PDF
Setup ColdFusion application using fusebox mvc architecture
PDF
Building Advanced RESTFul services
PDF
Rest ful tools for lazy experts
PDF
RESTFul Tools For Lazy Experts - CFSummit 2016
PDF
ColdBox Hierarchical MVC for ColdFusion/CFML
PDF
Into The Box 2016 Keynote
PDF
Itb2018 thinking modularly
PDF
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
PDF
This is how we REST
PDF
How we REST
PDF
Building a full-stack app with Golang and Google Cloud Platform in one week
PDF
How we rest
PDF
Cold box hierarchical mvc
PDF
Revamp your monolith with Hierarchical MVC at CFSummit 2018
PDF
Modern Functional Fluent CFML REST by Luis Majano
Intro to RESTFul API's with ColdBox MVC
ITB2017 - Keynote
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Command Box ColdFusion Package Manager, Automation
ITB2019 Scaling with CommandBox in Production! - Brad Wood
Setup ColdFusion application using fusebox mvc architecture
Building Advanced RESTFul services
Rest ful tools for lazy experts
RESTFul Tools For Lazy Experts - CFSummit 2016
ColdBox Hierarchical MVC for ColdFusion/CFML
Into The Box 2016 Keynote
Itb2018 thinking modularly
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUG
This is how we REST
How we REST
Building a full-stack app with Golang and Google Cloud Platform in one week
How we rest
Cold box hierarchical mvc
Revamp your monolith with Hierarchical MVC at CFSummit 2018
Modern Functional Fluent CFML REST by Luis Majano
Ad

More from Ortus Solutions, Corp (20)

PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
PDF
June Webinar: BoxLang-Dynamic-AWS-Lambda
PDF
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
PDF
What's-New-with-BoxLang-Brad Wood.pptx.pdf
PDF
Getting Started with BoxLang - CFCamp 2025.pdf
PDF
CFCamp2025 - Keynote Day 1 led by Luis Majano.pdf
PDF
What's New with BoxLang Led by Brad Wood.pdf
PDF
Vector Databases and the BoxLangCFML Developer.pdf
PDF
Using cbSSO in a ColdBox App Led by Jacob Beers.pdf
PDF
Use JSON to Slash Your Database Performance.pdf
PDF
Portable CI wGitLab and Github led by Gavin Pickin.pdf
PDF
Tame the Mesh An intro to cross-platform tracing and troubleshooting.pdf
PDF
Supercharging CommandBox with Let's Encrypt.pdf
PDF
Spice up your site with cool animations using GSAP..pdf
PDF
Passkeys and cbSecurity Led by Eric Peterson.pdf
PDF
Legacy Code Nightmares , Hellscapes, and Lessons Learned.pdf
PDF
Integrating the OpenAI API in Your Coldfusion Apps.pdf
PDF
Hidden Gems in FusionReactor for BoxLang, ACF, and Lucee Users.pdf
PDF
Geting-started with BoxLang Led By Raymon Camden.pdf
PDF
From Zero to CRUD with ORM - Led by Annette Liskey.pdf
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
June Webinar: BoxLang-Dynamic-AWS-Lambda
BoxLang-Dynamic-AWS-Lambda by Luis Majano.pdf
What's-New-with-BoxLang-Brad Wood.pptx.pdf
Getting Started with BoxLang - CFCamp 2025.pdf
CFCamp2025 - Keynote Day 1 led by Luis Majano.pdf
What's New with BoxLang Led by Brad Wood.pdf
Vector Databases and the BoxLangCFML Developer.pdf
Using cbSSO in a ColdBox App Led by Jacob Beers.pdf
Use JSON to Slash Your Database Performance.pdf
Portable CI wGitLab and Github led by Gavin Pickin.pdf
Tame the Mesh An intro to cross-platform tracing and troubleshooting.pdf
Supercharging CommandBox with Let's Encrypt.pdf
Spice up your site with cool animations using GSAP..pdf
Passkeys and cbSecurity Led by Eric Peterson.pdf
Legacy Code Nightmares , Hellscapes, and Lessons Learned.pdf
Integrating the OpenAI API in Your Coldfusion Apps.pdf
Hidden Gems in FusionReactor for BoxLang, ACF, and Lucee Users.pdf
Geting-started with BoxLang Led By Raymon Camden.pdf
From Zero to CRUD with ORM - Led by Annette Liskey.pdf
Ad

Recently uploaded (20)

PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
medical staffing services at VALiNTRY
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Nekopoi APK 2025 free lastest update
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Cost to Outsource Software Development in 2025
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
history of c programming in notes for students .pptx
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PPTX
Computer Software and OS of computer science of grade 11.pptx
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Monitoring Stack: Grafana, Loki & Promtail
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Navsoft: AI-Powered Business Solutions & Custom Software Development
medical staffing services at VALiNTRY
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Why Generative AI is the Future of Content, Code & Creativity?
Nekopoi APK 2025 free lastest update
wealthsignaloriginal-com-DS-text-... (1).pdf
Cost to Outsource Software Development in 2025
Patient Appointment Booking in Odoo with online payment
Wondershare Filmora 15 Crack With Activation Key [2025
AutoCAD Professional Crack 2025 With License Key
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
CHAPTER 2 - PM Management and IT Context
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
history of c programming in notes for students .pptx
17 Powerful Integrations Your Next-Gen MLM Software Needs
Computer Software and OS of computer science of grade 11.pptx

ITB 2023 Real World ColdBox App Architecture - Nolan Erck.pdf