Peter Amiri talks about “CFWheels ColdFusion Framework (new structure and features)” in this episode of ColdFusion Alive Podcast with host Michaela Light.
“…CFwheels is another ColdFusion framework. And it was originally modeled after Ruby on Rails. So if you remember back in the early 2000s, when Ruby on Rails came out, it was a complete mind change on how applications could be built. And that's why I got a huge following. And there was a lot of effort on the ColdFusion side to see if we could take that momentum that Rails had and bring that framework over to the ColdFusion side of the house…”
Contents
CFWheels is an open-source ColdFusion (CFML) framework inspired by Ruby on Rails that prioritizes fast application development through a “convention over configuration” philosophy. By implementing a Model-View-Controller (MVC) architecture, the framework helps developers organize complex code into manageable layers without requiring deep expertise in object-oriented design. Recent updates led by Peter Amiri have introduced a modernized CLI for CommandBox, RESTful routing enhancements, and a transition to GitHub-based community support to revitalize the project's ecosystem.
|
Feature Category |
Before Modernization |
Current/New Implementation |
|
Project Structure |
Monolithic framework core |
Modular ForgeBox packages (core + templates) |
|
Command Line |
Manual file copying/setup |
CommandBox CLI (wheels-cli) for automation |
|
Community |
Google Groups & Slack |
GitHub Discussions for code-centric support |
|
Documentation |
Online-only / Static PDFs |
GitBook-based guides & built-in JavaDocs API |
|
Routing |
Standard URL mapping |
RESTful resource-based routing (GET, POST, etc.) |
|
Testing Suite |
RocketUnit (Legacy) |
GitHub Actions CI with Docker + TestBox integration |
Show notes
What is CFWheels?
- Ruby on Rails for CF
- MVC framework vs procedural or heaven forbit spaghetti code
- Convention over configuration
- Eg Views dir vs XML config
- Built in structure / scaffolding
- The CFWheels open source project has been around since 2005
- CFWheels is an open source CFML (ColdFusion Markup Language) framework inspired by Ruby on Rails that provides fast application development, a great organization system for your code, and is just plain fun to use. One of our biggest goals is for you to be able to get up and running with CFWheels quickly.
Why should you use CFWheels?
- Types of CF Devs
- Professional devs, CS trained, modern development patterns
- Self learned developers, procedural devs
- Easy onramp to Self learned devs to get MVC benefits without doing a CS degree first
- While modern for CS type devs
- Getting started materials
- Using CommandBox can get a sample CFWheels app in 5 seconds
Moving from legacy CF frameworks
- Fusebox, Model-Glue, Mach-2, F/W 1
- If MVC used then translates easily
New CFWheels dev team
- Changing of the Guards at CFWheels
- Peter frontman/evangelist and admin and structure
- Been involved in CFWheels since near the beginning
- Worked on the CFWheels CLI project
- Worked with Rails books author to draft CFWheels book, which needed CLI
- Uses CFWheels in work projects
- Joined the core team
- Tom King, David Belanger, Adam Chapman, Per Djurner focusing on coding CFWheels
- Admin burnout, stepping back a bit
Major CFWheels features
- Easy MVC
- Industry established concept MVC
- Easy MVC, no need OO expert compared to ColdBox
- Or legacy CF frameworks ModelGlue, Mach2
- Conventions
- Routing engine
- Resource based RESTful routing engine for GET, POST, PUT, PATCH & DELETE
- Databases
- CFWheels uses ORM and Migrations. for database
- Less CRUD and SQL coding
- Automatically works if database structure changes
- Or even database changes
- Built in database migration system even across different DBMS
- CFWheels uses ORM and Migrations. for database
- App Documentation
- Automatic App Documentation using the built in doc viewer which grows with your application
- From special comments. Similar idea to JavaDocs
- Eg CFWheels API uses this
- Local docs (offline work)
- Automatic App Documentation using the built in doc viewer which grows with your application
- CFWheels API
- Lets you call the atomic components of CFWheels separately
- https://api.cfwheels.org/v2.4
- Hybrid Development – Switch in and out of Wheels conventions
- Ecosystem
- CFWheels plugins at ForgeBox
- Add to the framework core
- Overwrite core functionality to change behavior
- https://www.forgebox.io/type/cfwheels-plugins
- Eg bCrypt, JWT, SAML, dotEnvSettings shortcodes
- CFWheels Fully Embraces ForgeBox Packages
- Community
- CFWheels has moved to GitHub Discussions.
- https://github.com/cfwheels/cfwheels/discussions
- Google discussions archived
- The CFWheels Channel on CFML Slack Has Been Archived
- the reasons for this move are to
- Move our discussions closer to the code in GitHub, allowing the poster and respondent to more easily link to specific branches, files, and even lines of code.
- Issues can be converted to discussions if they warrant further community input or discussions promoted to an issue once an issue or feature has had open consultation and next steps identified.
- Discussions can be marked as answered and the specific answer identified for future reference.
- All these discussions, collaborations, and consultations are searchable and discoverable by search engines so the community as a whole reaps the benefits.
- CFWheels book
- CFWheels Guides Moved to GitBook
- Online, PDF
- Future print book
- Recent Activity in the CFWheels Project
- 2022.03.24 – CFWheels CLI commands for CommandBox released
- Wheels CLI
- Uses CommandBox
- 2022.03.29 – Announce Changing of the guards
- 2022.03.29 – TodoMVC – CFWheels/HTMX example app released
- 2022.03.30 – CFWheels Example App Package Released
- 2022.04.25 – CFWheels Joins Open Source Collective
- 2022.04.29 – CFWheels Embraces ForgeBox Packages (CFWheels, cfwheels-base-template)
- 2022.05.03 – CFWheels 2.3.0-rc.1 Released
- New CI Pipeline in GitHub Actions
- Test Suite Matrix
- Lucee 5 x MySQL, Lucee 5 x SQL Server, Lucee 5 x PostgreSQL, Lucee 5 x H2
- ACF 2016 x MySQL, ACF 2016 x SQL Server, ACF 2016 x PostgreSQL
- ACF 2018 x MySQL, ACF 2018 x SQL Server, ACF 2018 x PostgreSQL
- 2022.05.10 – CFWheels Guides moved to GitBook
- 2022.05.11 – CFWheels 2.3.0 Released
- 2022.05.16 – CFWheels Announces a Bug Bounty
- 2022.05.27 – CFWheels has moved to GitHub Discussions
- 2022.06.06 – CFWheels DotEnvSettings Plugin published
- 2022.06.07 – Two new repositories published (cfwheels-www, cfwheels-api)
- 2022.06.17 – CFWheels added to the HTMX server-side examples page
- 2022.06.20 – CFWheels CLI matures to version 1.0
- 2022.06.20 – CFWheels HTMX plugin published
- CFWheels HTMX Plugin
- htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext
- 2022.08.23 – CFWheels v2.4.0 Released
- 2022.09.12 – CFWheels Channel on CFML Slack has been archived
Roadmap new features
- Process
- User suggestions
- Draft roadmap coming for community discussion
- Ideas from RoR versions 3 to 7
- Ideas for CFWheels 3.0
- Rails Gems → packages (vs Monolith framework)
- On ForgeBox
- Integrate testing with TestBox
- Dependency Injection with WireBox
- Testing on Lucee 6 and ACF 2023
- test suite
- 10 different CF/db configurations and versions
- 1400 automated tests per commit
- Docker containers
- Test apps
- test suite
- Optimize with FusionReactor and Code Coverage
- Rails Gems → packages (vs Monolith framework)
How can listeners help with CFWheels
- Play with it and report issues
- Join the discussions at GitHub
- Do pull requests for docs and code
- And the CFWheels websites
- Corporate Sponsor via Open Source Collective
Mentioned in this episode
Listen to the Audio
Podcast: Play in new window | Download | Embed
Subscribe: RSS
Bio
Peter Amiri
Boy time is unforgiving…
Peter has been a developer, consultant, and entrepreneur, and has held senior IT management roles for the last 30 plus years and is currently serving as CTO for PAI Industries, Inc. a privately held company specializing in aftermarket manufacturing and distribution of heavy duty truck parts. He has been using ColdFusion since version 1.5 and ran the Orange County chapter of the ColdFusion Users Group in Southern California in the late 90’s and early 2000’s. He joined MySpace in 2003 and was with the company till its sale to Fox. Although he was involved with the CFWheels project early on, he has recently returned to the project and taken over as the project's maintainer.
Links
- Peter Amiri | LinkedIn
- Thinking Out Loud – A blog by Peter Amiri
- CFWheels Blog
- Twitter
- @peteramiri
- @CFonWheels
- GitHub Discussions
- CF slack channel
Interview transcript
Michaela Light 0:02
Welcome back to the show. I'm here with Peter Miri. If I'm saying your name right, I think that is perfect. All right. And where are we talking all about CF, we'll see if wheels which is a great open source framework for ColdFusion development. And you may not have known Safeway has been around for years. We'll tell you how old it is later in the episode. But it's got a lot of new features got a lot of new energy, Peter is new to the he's the extra wheel in the wheels development team. We'll talk about his role in a bit. But you may have noticed if you follow CF wheels with their blog and other discussion forums, there's been an enormous amount of activity in the last six months after a two year kind of quiet period. So a lot of excitement in the wheels world. Welcome, Peter.
Peter Amiri 0:50
Thank you. Thanks for having me.
Michaela Light 0:53
Yeah, and in case you don't know, Peter has been doing it and development stuff for over 30 years. He's currently the CTO, Pei industries, and works in manufacturing and distribution of truck parts. Wow. And you've been using ColdFusion. Since version 1.5, which is like back in the dark ages of CFML.
Read more
Michaela Light is the host of the CF Alive Podcast and has interviewed more than 100 ColdFusion experts. In each interview, she asks "What Would It Take to make CF more alive this year?" The answers still inspire her to continue to write and interview new speakers.
Michaela has been programming in ColdFusion for more than 20 years. She founded TeraTech in 1989. The company specializes in ColdFusion application development, security and optimization. She has also founded the CFUnited Conference and runs the annual State of the CF Union Survey.
Join the CF Alive revolution
Discover how we can all make CF more alive, modern and secure this year. Join other ColdFusion developers and managers in the CF Alive Inner Circle today.- Get early access to the CF Alive book and videos
- Be part of a new movement for improving CF's perception in the world.
- Contribute to the CF Alive revolution
- Connect with other CF developers and managers
- There is no cost to membership.
FAQs About TeraTech CFWheels Framework
What is the primary benefit of the CFWheels convention over configuration approach?
The convention over configuration philosophy allows you to start programming immediately without writing extensive XML or setup files, as the framework assumes standard directory structures for models, views, and controllers. This significantly reduces boilerplate code and ensures that any developer familiar with the framework can instantly understand the organization of a new project. By following these naming conventions, the framework automatically handles internal wiring, which accelerates the initial development phase and simplifies long-term maintenance.
How does CFWheels handle database migrations across different platforms?
CFWheels includes a built-in database migration system that allows you to define schema changes, such as creating tables or adding columns entirely in CFML code rather than platform-specific SQL. These migrations are version-controlled and can be executed against various database engines including MySQL, PostgreSQL, and SQL Server, ensuring environmental parity. This approach makes applications highly portable and allows teams to recreate entire database structures on new instances with a single command or upon application startup.
Can CFWheels be used to build modern RESTful APIs?
Yes, CFWheels version 2.x and higher fully support RESTful resource-based routing, enabling you to map standard HTTP verbs like GET, POST, PATCH, and DELETE to specific controller actions. This makes it an ideal backend framework for powering modern frontends built with Vue.js, React, or mobile applications via a structured JSON API. Developers can utilize the mapper() function to define resources in a single line of code, which automatically generates the necessary routes for a full CRUD interface.
What is the current status of CFWheels 3.0 development?
CFWheels 3.0 is currently in active development with a focus on modularizing the framework into individual packages and optimizing performance for modern engines like Lucee 6 and BoxLang. Snapshot releases are available on ForgeBox for testing, though maintainers recommend the stable 2.5 branch for production environments until the 3.0 optimization work is complete. The roadmap for 3.0 includes deeper integration with CommandBox and updated testing standards to align with current industry best practices.
How can I get involved in the CFWheels community?
The CFWheels community has migrated its primary support and discussion hub to GitHub Discussions, moving conversations closer to the source code for better transparency and collaboration. You can contribute by reporting issues, participating in roadmap discussions, or submitting pull requests for both core code and the official GitBook documentation. Additionally, organizations can support the project financially through the Open Source Collective to fund bug bounties and infrastructure improvements.

