Wheels-The Fast & Fun
CFML Framework!

Build apps quickly with an organized, Ruby on Rails-inspired
structure. Get up and running in no time!

Latest From the Wheels Dev Blog

CFWheels Fully Embraces ForgeBox Packages

As you may know, many years ago CFWheels embraced the distribution of Plugins via ForgeBox packages instead of maintaining our own directory. But the framework itself remains illusive. There was some work done in the last few months to put up packages for the framework but those packages were being maintained by hand which made them a show stopper for a long term solution.

Well, thanks to a new CI workflow based on GitHub Actions we now have the building and publishing of the packages fully automated. Giving credit where credit is due, the new workflow borrows heavily from the ColdBox workflow. It used GitHub Actions, Ant, and CommandBox to automate the process.

So what does all this mean for you, let's cut to the chase. This means you can now install a fresh copy of the framework using the following command:

box install cfwheels-base-template

This will pull down a copy of the latest stable release of the template files and then pull down a copy of the latest stable release of the framework via package dependencies. In fact the CI workflow mentioned about publishes two packages cfwheels which is the core framework directory and cfwheels-base-template which is all the other files you need to scaffold the framework.

We've even backfilled all the prior released versions of the framework all the way back to version 1.0.0. So you can install a particular version of the framework using the following command:

box install cfwheels-base-template@2.0.2

In addition you can install the bleeding edge which includes all the work in process towards the next major release using:

box install cfwheels-base-template@be

And if you ever just need to get a copy of the latest framework files simply use the following command:

box install cfwheels

All this means that upgrading to a newer version of the framework should be much easier going forward. Frankly you should just need to modify the version of the dependency in the box.json file and issue a box update command. But we'll document that more fully when we make our next release.

For now please feel free to play with all this package goodness and let us know if we fumbled anything.

April 29, 2022 by Peter Amiri

Screencast: Routing in CFWheels 2.x - part 2



Covers constraints, wildcard segments and shallow resources.

March 11, 2018 by Tom King

ColdFusion on Wheels 1.0.2 Maintenance Release

As many of you have noticed we have released a maintenance version of ColdFusion on Wheels 1.0.2. This release comes on the heels of the 1.0.1 release made only days ago. In fact there are no new features in version 1.0.2 and this release only addresses some bugs that made their way into the release cycle of 1.0.1. Almost immediately after releasing 1.0.1, we noticed something was wrong and some bugs had crept in to the code during the packaging of the release. The core team immediately set out to fix the issue and in fact had a new version of the 1.0.1 zip file on the site within an hour. We then took the new release through some more rigorous testing and eventually incremented the version number to indicate the change that had taken place. We drew straws as to who to blame but I don't remember who lost ;-). Seriously though, we only tracked six downloads of the infected 1.0.1 zip file and several of those were by the core team members. So the impact of this was probably very minimal. And yes we have taken steps to make sure it doesn't happen again. Thanks again for your continued support of the project.

December 19, 2010 by Peter Amiri

Security Fix for ColdFusion on Wheels 1.1.x and 1.0.x Released

A security vulnerability has been identified in both the 1.1.x and 1.0.x versions of Wheels. In response, the Wheels team is releasing patches for both the current and legacy versions. Version 1.1.7 is to address current version and version 1.0.6 is to address legacy versions. At this time, we encourage all users of the framework to upgrade as soon as possible. These new versions contain only the patches necessary to close the security vulnerability. No new bug fixes or enhancement features are contained. The Wheels team would like to thank Pete Freitag of foundeo.com for reporting and helping to patch the security vulnerability. Download versions 1.1.7 and 1.0.6

December 14, 2011 by Tony Petruzzi

CFWheels 2.1.0-beta Now Available

It’s been far too long in the making, but the beta for 2.1 has now arrived! Please do check it out: this should be considered an essential upgrade for anyone on 2.x. A huge thanks to all have contributed!

Make sure to check the “Potenitally Breaking Changes” section below, and please report any bugs.

What's New:

New GUI

Probably the most obvious change in 2.1 beta is the new internal user interface. Previously, Wheels internal pages like test outputs and routing tables could accidentally be broken by your app, as they extended your Controller.cfc by default. Now, they're completely isolated, and have been significantly beefed up to show everything that you might want to look at as a developer. 

The new GUI has it's own dedicated internal routes which can be accessed directly at /wheels/info (assuming you've got URL rewriting on) or via the usual links in the debug footer. 

It's made up of six main sections:

  • General Wheels info - which displays all the settings for your development environment, such as datasources and other core configuration;   
  • a new routing table - which includes a handy route tester as well as a quick search;   
  • improved test outputs so you can more easily access unit tests for your app, core tests if you're on the master branch, and plugin tests if they're available;   
  • a new database migration interface, which allows for SQL previews, so you can actually check your migration is going to do what you think it's going to do before executing;   
  • a more comprehensive documentation output, which includes your own autogenerated application docs as well as the internal wheels function references,   
  • and a better plugins list, showing all the information we know about any installed plugins. 

This GUI is only available in development mode by default, but can be enabled in other modes - this isn't recommended, but it can be done if you really need to check the configuration or try and track something specific down. You can enable it via set(enablePublicComponent=true) in your environment specific configuration files. 

Improved CORS handling

Next up is some much needed and improved CORS handling. CORS, or Cross-Origin Resource Sharing, will be very familiar to any of you who have a javascript component or fully fledged progressive web app which runs on one domain, but needs to get information from another. A full explanation of CORS is probably beyond the scope of this post, but if you're thinking of running your own API on a standalone domain where other applications talk to it, you'll need to be able to handle CORS.

In Wheels 2.0, you could handle CORS requests, but they could only be configured in a very broad way. For instance, the CORS Allow Methods just returned all methods by default in an OPTIONS request, which kinda defeated the whole point.

The CORS Headers -  Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Credentials can now be directly set by their respective functions. 

However, for most people, a new helper configuration, accessControlAllowMethodsByRoute() will be the single most useful function to set: it allows for automatic matching of available methods for a route and sets the CORS Header Access-Control-Allow-Methods automatically; so now when your OPTIONS request hits your wheels app, it will actually respond with the available methods which are allowed for that resource endpoint. This makes it much easier to diagnose why certain requests might not get through, and means javascript libraries such as axios can respond more appropriately to hitting the wrong URL with the wrong HTTP method.

Improvements to mapper()

Redirects can now be put directly in the mapper() routing call, so you can quickly add a simple redirect for a route if you need.

mapFormat can now be set as false, which bypasses the additional '.[format]' routes which were put in by default for each resource. So if you don't use them, you can now just turn them off, and make your routing table a lot cleaner. This can be set either globally on the mapper() call itself, or on a per resource basis when using resources()

params._json if request is Array

Previously, if you POSTed or PUT/PATCHed json to an endpoint with an array as it's root element, it would just get ignored, and you'd not be able to access it in the params struct. This has now been changed and if the incoming payload is a json array, it will be available at params._json which matches rails conventions.

New FlashAppend Behaviour

You can now change the default flash behaviour to append to an existing key, rather than directly replacing it. To turn on this behaviour, add set(flashAppend=true) to your /config/settings.cfm file. This allows you to more easily collect flash notifications during a request:
flashInsert(success="One");
flashInsert(success="Two");

Plugin performance

The plugins system has been reverted back to 1.x behaviour, as it was simply non-performant; more on this in a future post.

Full Changelog:

Potentially breaking changes

  • The new CFWheels internal GUI is more isolated and runs in it's own component: previously this was extending the developers main Controller.cfc which caused multiple issues. The migrator, test runner and routing GUIs have therefore all been re-written.
  • The plugins system behaviour no longer chains multiple functions of the same name as this was a major performance hit. It's recommended that plugin authors check their plugins to run on 2.1
  • HTTP Verb/Method switching is now no longer allowed via GET requests and must be performed via POST (i.e via _method)

Model Enhancements

  • Migrator now automatically manages the timestamp columns on addRecord() and updateRecord() calls - #852 [Charley Contreras]
  • Migrator correctly honors CFWheels Timestamp configuration settings (setUpdatedAtOnCreate, softDeleteProperty, timeStampMode, timeStampOnCreateProperty, timeStampOnUpdateProperty) - #852 [Charley Contreras]
  • MSSQL now uses NVARCHAR(max) instead of TEXT #896 [Reuben Brown]
  • Allow createdAt and updatedAt to be explicitly assigned using the allowExplicitTimestamps=true argument - #887 - [Adam Chapman]

Controller Enhancements

  • New set(flashAppend=true) option allows for appending of a Flash key instead of replacing - #855 - [Tom King]
  • flashMessages() now checks for an array of strings or just a string and outputs appropriately - #855 - [Tom King]
  • flashInsert() can now accept a one dimensional array - #855 - [Tom King]

Bug Fixes

  • Allow uppercase table names containing reserved substrings like OR and AND - #765 [Dmitry Yakhnov, Adam Chapman]
  • Calculated properties can now override an existing property - #764 [Adam Chapman, Andy Bellenie]
  • Filters are now correctly called if there is more than one after filter - #853 [Brandon Shea, Tom King, Adam Chapman]
  • Minor fix for duplicate debug output in the test suite - #176 [Adam Chapman, Tom King]
  • Convert handle to a valid variable name so it doesn't break when using dot notation - #846 [Per Djurner]
  • The validatesUniquenessOf() check now handles cases when duplicates already exist - #480 [Randall Meeker, Per Djurner]
  • validatesConfirmationOf() now has a caseSensitive argument to optionally perform a case sensitive comparison - #918 [Tom King]
  • sendFile() no longer expands an already expanded directory on ACF2016 - #873 [David Paul Belanger, Tom King, strubenstein]
  • Automatic database migrations onApplicationStart now correctly reference appropriate Application scope - #870 [Tom King]
  • usesLayout() now can be called more than once and properly respects the order called - #891 [David Paul Belanger]
  • Migrator MSSQL adapter now respects Time and Timestamp Column Types - #906 [Reuben Brown]
  • Automatic migrations fail on application start - #913 [Adam Chapman]
  • Default cacheFileChecking to true in development mode - [Adam Chapman, Steve Harvey]
  • Migrator columnNames list values are now trimmed - #919 [Adam Chapman]
  • Fixes bug when httpRequestData content is a JSON array - #926 [Adam Chapman]
  • When httpRequestData content is a JSON array, contents are now automatically added to params._json - #939 [Tom King]
  • Fixes bug where Migrator $execute() always appends semi-colon - #924 [Adam Chapman]
  • Fixes bug where model createdAt property is changed upon update - #927 [Brandon Shea, Adam Chapman]
  • Fixed silent application.wheels scope exception hampering autoMigrateDatabase - #957 [Adam Chapman, Tom King]

Miscellaneous

  • Added the ability to pass &lock=false in the URL for when reload requests won't work due to locking - [Per Djurner]
  • Basic 302 redirects now available in mapper via redirect argument for GET/PUT/PATCH/POST/DELETE - #847 - [Tom King]
  • .[format] based routes can now be turned off in resources() and resource() via mapFormat=false - #899 - [Tom King]
  • mapFormat can now be set as a default in mapper() for all child resources() and resource() calls - #899 - [Tom King]
  • HEAD requests are now aliased to GET requests #860 - [Tom King]
  • Added the includeFilters argument to the processRequest function for skipping execution of filters during controller unit tests - [Adam Chapman]
  • Added the useIndex argument to finders for adding table index hints #864 - [Adam Chapman]
  • HTTP Verb/Method switching is now no longer allowed via GET requests and must be performed via POST #886 - [Tom King]
  • CORS Header Access-Control-Allow-Origin can now be set either via a simple value or list in accessControlAllowOrigin() #888 [Tom King]
  • CORS Header Access-Control-Allow-Methods can now be set via accessControlAllowMethods(value) #888 [Tom King]
  • CORS Header Access-Control-Allow-Credentials can now be turned on via accessControlAllowCredentials(true)#888 [Tom King]
  • accessControlAllowMethodsByRoute() now allows for automatic matching of available methods for a route and sets CORS Header Access-Control-Allow-Methods appropriately #888 [Tom King]
  • CORS Header can now be set via accessControlAllowHeaders(value) #888 [Tom King]
  • Performance Improvement: Scanning of Models and Controllers #917 [Adam Chapman]
  • Added the authenticityToken() function for returning the raw CSRF authenticity token #925 [Adam Chapman]
  • Adds enablePublicComponentenableMigratorComponent,enablePluginsComponent environment settings to completely disable those features #926 [Tom King]
  • New CFWheels Internal GUI #931 [Tom King]
  • pluginRunner() now removed in favour of 1.x plugin behaviour for performance purposes #916 [Core Team]
  • Adds validateTestPackageMetaData environment setting for skipping test package validation on large test suites #950 [Adam Chapman]
  • Added aliases for migrator.TableDefinition functions to allow singular variant of the columnNames property #922 [Sébastien FOCK CHOW THO]
  • onAbort is now supported via events/onabort.cfm #962 [Brian Ramsey]

February 24, 2020 by Tom King

Congratulate Tony Petruzzi, our New Lead Developer

We are excited to announce that Tony Petruzzi is taking on the role of lead developer for the Wheels Core Team. Tony's technical skill and dedication to the project will undoubtedly lead us to great places in the future. We are already cooking up some new plans and are excited to continue on under Tony's leadership. We would also like to take a moment to thank Per Djurner, who has led the project for several years now. Much of the code and documentation have been contributed by Per, and we ultimately wouldn't be here if it weren't for his generosity. As we approach 2011, we will be focusing on ways to get the community more involved with contributing to the project. Stay tuned for more news soon.

December 27, 2010 by Chris Peters

CFMeetup Presentation this Thursday

Come hear me present on the basics of ColdFusion on Wheels on ColdFusion Meetup this Thursday. The presentation is Thursday, January 7, 2010, at 6:00 pm Eastern Time. I just sent this description over to Charlie Arehart: Chris Peters demonstrates how to build a simple CRUD (create, read, update, delete) application using the ColdFusion on Wheels framework. By the end of the hour, you'll have a solid understanding of what it's like to build applications rapidly with Wheels. Surely, you'll be ready to give the framework a look on your own time! This is recommended for novice users, those of you who haven't had the chance to try out Wheels, disenfranchised framework users, or anyone else who wants to come heckle me in the Acrobat Connect chatroom. :)

December 10, 2010 by Mike Henke

How OO Almost Destroyed a Business

I stumbled across an honest account by Marc Funaro about how OO almost destroyed his business. He spares no detail in the post, but I still think it is worthwhile to read in its entirety as a reality check for yourself. Dynamic languages like PHP and CFML have been on a quest over the past few years to be more "Java-like," adding more object oriented capabilities. These features bring a lot of promise for your code to become self-documenting and organized. But there have been undercurrents by pragmatists who contest that these features add unnecessary complexity for languages that were "fine just the way they were." As I've progressed through my career with ColdFusion, I've started agreeing more with the pragmatists. While ColdFusion experts have been arguing about "XML versus no-XML" over the past year, I've strongly desired getting my work done so I could feel some accomplishment and have a fresh breath of air away from my computer from time to time. With my personal experience, this is where ColdFusion on Wheels has entered and really brought the fun back into ColdFusion development. One thing that Wheels has done for me is use CFCs to organize my code and make database queries easier. But at the same time, I don't feel like I'm wasting too much time worrying about the design of my objects. It all just flows and works organically, and it all works that way simply by following conventions that we've laid out for you. I will forever be amazed at what David Heinemeier Hansson has accomplished by implementing the concepts of Ruby on Rails and what these concepts accomplish for me in my life as a CFML developer through my use of ColdFusion on Wheels. If you at all have felt CFML lose its magic in a way that Marc Funaro described so well, give Wheels a try. The more you uncover about our framework, the more it just makes sense. Our framework considers what ColdFusion as a platform does well and sticks with that. ColdFusion returns recordsets lightning-fast, so Wheels's findAll() methods return recordsets instead of CF's notoriously slow objects. (It also uses objects to represent data when that makes sense.) Wheels also helps you easily understand where your URLs point to in your code with its controller conventions. And hell, I'll even offer up the fact that Wheels's default URL behavior doesn't even give regard to the underlying platform. Having URLs that end with .cfm, .aspx, .jsp, etc. do nothing to contribute to the overall user experience anyway. These sentiments bring me a lot of hope for Wheels's role in the CFML community. We're pushing forward and helping you develop beautiful code using the best platform for developing web applications, period.

December 24, 2009 by Chris Peters

LitePost Contest Ends Feb 19th

The Learning Wheels LitePost Contest is wrapping up on Feb 19th. It is meant for a quick and simple intro into Wheels.

Prize

Grand Prize (one): $100 Amazon Gift card Runner Up Prizes (two): $50 Amazon Gift card Everyone: Free one year Mini Hosting Plan at Alurium Hosting (over $40 value)

Submissions

Please email entries to henke.mike@gmail.com include your name and your Wheels/LitePost example. Any code emailed may be used by ColdFuson On Wheels. Any try will be accepted even if not fully functioning.

Getting Started

Here are two 5 minute screencasts to help you get started. Also a blog entry by Ryan Stille on experience with the contest.

December 17, 2010 by Mike Henke

Released: ColdFusion on Wheels Version 0.8

It's only been a few short months, and we're proud to already be releasing version 0.8 of Wheels! This is an important release to everyone involved with the project. It proves that this framework is more than a toy and that we're heading strongly toward a 1.0 release. New accomplishments in this release:
  • Introduction of Oracle support
  • Composite key support for primary keys
  • Bug fixes and performance improvements
Those running version 0.7 should follow our instructions for Upgrading to Wheels 0.8. He asked me not to mention his name, but the lion's share of the work has yet again been done by Per Djurner. Everyone that has been following this project needs to give him major thanks for his dedication, talent, and persistence in implementing these new features. I'm also proud to say that this has largely been a community-driven release. We have had countless discussions and suggestions in our Discussion Group and Code Site. Keep 'em coming, everyone!

December 18, 2008 by Chris Peters

Welcome to Our Community

Welcome to Our Community - a place where like-minded people connect, share ideas,
and grow together in a positive and supportive environment.

Explore community
Wheels.dev Community

Top Contributors

Per Djurner

Contributed as a Software Developer

Per Djurner is a long-time core contributor and leader of the Wheels framework, with a history of shaping its direction since the project’s early days. He made the very first commit and has continued to contribute regularly, fixing important bugs, refining SQL handling, and enhancing model methods with more flexible options. In addition to code, he has improved documentation, templates, and overall project stability, ensuring Wheels remains reliable and developer-friendly. His work reflects both technical expertise and long-term commitment to the growth of the framework.

Per Djurner profile picture

Peter Amiri

Contributed as a Software Developer and Project Manager

Peter Amiri is a senior developer and community leader who has taken on a core team / maintainer role in the Wheels framework. He has decades of experience with ColdFusion (since version 1.5), including work in user-groups, large scale sites, and infrastructure. Since returning to the project, he’s helped revitalize it — organizing roadmap discussions, guiding structure changes, supervising modernization (including CLI improvements, package modularization, and updating workflows), and helping re-energize community contributions.

Peter Amiri profile picture

Zain Ul Abideen

Contributed as a Software Developer

Zain Ul Abideen is an active contributor to the Wheels framework, playing a key role in improving its stability and usability. His work includes fixing issues like invalid columns not throwing exceptions, ensuring primary keys return correctly as numeric, and refining logic around calculated properties. He also enhanced view helpers to better handle active states and improved default routing behavior. Through these contributions, Zain has strengthened both the framework’s reliability and developer experience.

Zain Ul Abideen profile picture

Anthony Petruzzi

Contributed as a Software Developer

Anthony Petruzzi has made valuable contributions to the Wheels through code improvements, bug fixes, and collaborative reviews. They’ve helped refine core components, enhanced framework stability, and actively participated in issue discussions to steer design decisions. Their efforts in writing clear, maintainable code and offering constructive feedback in pull requests have strengthened the project’s code quality. Overall, Anthony Petruzzi involvement showcases dedication to open-source collaboration and meaningful impact on the Wheels ecosystem.

Anthony Petruzzi profile picture

Tom King

Contributed as a Software Developer and Maintainer

Tom King is one of the core maintainers of Wheels, with deep involvement in both development and leadership. He oversaw major releases, such as Wheels 2.0, which introduced features like RESTful routing, database migrations, improved CLI support, and a rewritten core in CFScript. He also helps steer the project’s long-term direction — writing blog posts reflecting on its history (e.g. noting its first commits, celebrating milestones) and working to modernize both tooling and community engagement.

Tom King profile picture

Adam Chapman

Contributed as a Software Developer

Adam Chapman has been a dedicated and influential contributor to the Wheels ecosystem. He joined the core team after years of community support, helping to steer architectural evolution and plugin integrations. Beyond code, he’s actively engaged in issue triage, proposing enhancements and shaping long-term design direction. His commitment to both community discussion and technical contributions has strengthened the project’s cohesion and future readiness.

Adam Chapman profile picture

James

Contributed as a Software Developer

James has brought forward meaningful contributions to the Wheels through consistent code enhancements, test case development, and active engagement in issue resolution. He frequently submits detailed pull requests, helping to bolster the framework’s robustness and maintainability. Beyond code, James participates in discussion threads and reviews, offering thoughtful feedback which helps keep the project aligned with community needs. His steady involvement has strengthened both core modules and auxiliary features, making Wheels more reliable and polished for all users.

James profile picture

Andrew Bellenie

Contributed as a Software Developer and Maintainer

Andrew Bellenie has played a pivotal role in the Wheels ecosystem, as a long-standing core team member and active community contributor. He brings deep experience in CFML development and framework architecture. Andy has contributed code, design feedback, documentation, and mentorship to newcomers. He also helps triage issues, guide feature direction, and maintain the project’s stability. His dedication helps keep the framework evolving and its community engaged.

Andrew Bellenie profile picture

scahyono

Contributed as a Software Developer

scahyono has contributed thoughtful enhancements to the Wheels codebase, particularly in ensuring compatibility with Oracle setups. Notably, they worked on a module (or plugin) to allow ColdFusion on Wheels to correctly read table metadata across Oracle remote database links, which broadens database support and resilience. Their willingness to tackle specialized integration challenges strengthens the framework’s versatility and helps more users adopt Wheels in diverse environments.

scahyono profile picture

MvdO79

Contributed as a Software Developer

MvdO79 has shown his support for the Wheels not only through code but also as a financial backer. He contributes monthly via Open Collective, helping sustain the framework’s ongoing development. Beyond funding, his presence in issue discussions demonstrates engagement with bug tracking and community feedback. His dual role-as supporter and participant-reinforces the open-source spirit behind Wheels.

MvdO79 profile picture

Raul Riera

Contributed as a Software Developer

Raúl Riera has been an enthusiastic supporter and contributor to the Wheels community-beyond writing code, he’s helped through design, advocacy, and community engagement. He has designed swag such as T-shirts for Wheels events and promoted the framework through his dev shop, Hipervínculo. As a software entrepreneur (founder of Odonto.me) and developer, Raúl bridges technical and community roles, helping raise awareness of Wheels and adding a touch of creativity and outreach to the project’s ecosystem.

Raul Riera profile picture

Michael Diederich

Contributed as a Software Developer

Michael Diederich has contributed key fixes and enhancements to the Wheels, particularly around framework usability and interface issues. Notably, he addressed documentation and UI elements-changes such as showing the current Git branch in the debug layout in version 2.5.0 reflect his involvement. In earlier releases, he also fixed bugs (for example with form and URL handling in the startFormTag() and array routing) that improved reliability across use cases. His contributions help refine both developer-facing tools and core correctness.

Michael Diederich profile picture

Rob Cameron

Contributed as a Software Developer

Rob Cameron had the original idea for CFWheels (and by extension, the foundation for Wheels), having built the framework with inspiration from Ruby on Rails in 2005. Though he eventually moved on from active core development to focus on other projects (such as Rails work), his early design and architectural direction still underpin much of the project's structure and philosophy.

Rob Cameron profile picture

Chris Peters

Contributed as a Software Developer

Chris Peters has been foundational in the development, documentation, and promotion of the Wheels framework since its early days. He authored many of the earliest releases, oversaw version 1.3.0 that introduced HTML5 enhancements, table less models, and thread-safe startup, and managed releases like 1.0.5 with dozens of bug fixes and stability updates. He also wrote technical blog posts about core features (flash messages, asset query strings, error handling) and established guidelines for contributing and documentation, helping to build a strong community around the framework.

Chris Peters profile picture

David Paul Belanger

Contributed as a Software Developer

David Paul Belanger has been a core force behind the Wheels, contributing both technically and strategically across many versions. He has co-authored features and bug fixes (such as updates to sendFile() and usesLayout()) in the 2.x releases. Beyond code, David has helped lead the transition of the framework’s governance and been active in community outreach-having participated in CF-Alive podcasts and collaborated with Tom King and others on guiding the project’s future direction.

David Paul Belanger profile picture

John Bampton

Contributed as a Software Developer and Documentation Writer

John Bampton made his mark as a contributor to the Wheels project beginning with version 2.4.0, where he helped fix broken links in documentation and correct spelling errors in the README and core templates. His attention to detail improved the documentation clarity and usability for future developers. Though he is noted as a “new contributor,” his work helped plug small but important gaps in the project’s written material, aiding the framework’s polish and accessibility.

John Bampton profile picture

Simon

Contributed as a Software Developer

Simon contributed to the Wheels framework by refining code and improving framework functionality. His work helped address issues and enhance stability, making the project more reliable and easier for developers to use. These contributions support the continued growth and effectiveness of the Wheels ecosystem.

Simon profile picture

Brian Ramsey

Contributed as a Software Developer and Quality Assurance Engineer

Brian Ramsey has been a long-time contributor and advocate within the Wheels community. His work spans both code contributions and knowledge sharing, with a focus on improving framework usability for everyday developers. Brian has participated in bug resolution, tested new releases, and provided feedback that shaped core improvements. Beyond code, he’s been active in community discussions, answering questions, and guiding newer users. His steady involvement has helped ensure Wheels remains both developer-friendly and reliable, reflecting his commitment to open-source collaboration and practical problem solving.

Brian Ramsey profile picture

Danny Beard

Contributed as a Software Developer

Danny Beard has contributed to the Wheels framework through targeted code enhancements and thoughtful participation in issue discussions. His work has included fixing bugs, refining logic in core functions, and improving overall framework consistency. Danny’s involvement reflects an eye for detail and a practical approach to problem-solving, ensuring the framework remains dependable in real-world applications. Beyond code, his willingness to collaborate with other contributors has reinforced the community-driven nature of Wheels, helping maintain a strong and sustainable open-source project.

Danny Beard profile picture

Reuben Brown

Contributed as a Software Developer

Reuben Brown has been a valuable contributor to the Wheels framework, offering code improvements and community input that strengthen the project’s overall quality. His work includes bug fixes and refinements that enhance stability and usability, ensuring developers can rely on Wheels in production environments. Reuben’s involvement extends beyond code, as he has taken part in discussions, reviewed issues, and provided practical feedback to guide development. His contributions reflect a thoughtful balance of technical skill and collaborative spirit, reinforcing the open-source ethos of the Wheels project.

Reuben Brown profile picture

Seb

Contributed as a Software Developer

Seb has provided important contributions to the Wheels that help improve framework robustness and usability. Through resolving issues, submitting pull requests, and polishing code, Seb has helped close gaps and make the system smoother for both new and experienced users. They’ve also participated in reviews, giving constructive feedback, which strengthens code quality and consistency across releases. Seb’s steady involvement supports the project’s open-source mission, making Wheels more reliable, maintainable, and welcoming for all contributors.

Seb profile picture

timbadolato

Contributed as a Software Developer

Timbadolato has contributed to the Wheels with a focus on improving functionality, fixing issues, and enhancing developer experience. His pull requests demonstrate a clear attention to detail, addressing edge cases and refining framework behavior to make it more predictable and reliable. By engaging in code reviews and community discussions, timbadolato has helped shape technical decisions and ensured smoother adoption for users. His contributions highlight a practical, solution-oriented approach that supports both the long-term stability and growth of the Wheels ecosystem.

timbadolato profile picture

Alex

Contributed as a Software Developer

Alex has played a supportive and constructive role in the Wheels, contributing code improvements and feedback that strengthen the framework’s overall reliability. His efforts include bug fixes, refinements to core features, and helpful participation in discussions that guide project direction. By addressing issues and proposing practical solutions, Alex has contributed to making Wheels easier to use and more stable for developers. His involvement reflects a collaborative spirit and reinforces the open-source values that keep the project moving forward.

Alex profile picture

Chris Geirman

Contributed as a Software Developer

Chris Geirman made contributions to the Wheels that helped refine parts of the codebase and improve developer experience. While his involvement was smaller in scope, his participation still added value to the framework and reflects the spirit of open-source collaboration.

Chris Geirman profile picture

Zac Spitzer

Contributed as a Software Developer

Zac Spitzer provided contributions to the Wheels that helped address specific issues and improve framework stability. Though his involvement was brief, his work added value to the codebase and demonstrated the importance of community participation in strengthening and maintaining open-source projects.

Zac Spitzer profile picture

Nikolaj Frey

Contributed as a Software Developer

Nikolaj Frey has made contributions to the Wheels framework that supported improvements in the project’s codebase and functionality. While his involvement was limited in scope, his participation still added meaningful value, reinforcing the collaborative nature of the open-source community that drives Wheels forward.

Nikolaj Frey profile picture

Gralen

Contributed as a Software Developer

Gralen contributed improvements to the Wheels framework that enhanced code quality and supported overall stability. Their work helped refine the project and contributed to making the framework more reliable for developers using it in real-world applications.

Gralen profile picture

Doug McCaughan

Contributed as a Software Developer

Doug McCaughan contributed to the Wheels framework by helping refine functionality and addressing issues that improved developer experience. His efforts supported the stability of the project and ensured smoother use of core features. Through his work, Doug added value to the framework’s ongoing development and its open-source community.

Doug McCaughan profile picture

Coleman Sperando

Contributed as a Software Developer

Coleman Sperando contributed to the Wheels framework by making improvements that strengthened its functionality and reliability. His work addressed specific areas of the codebase, helping to refine features and ensure a smoother experience for developers. These contributions supported the project’s ongoing growth and the collaborative effort behind Wheels.

Coleman Sperando profile picture

Charlie Arehart

Contributed as a Software Developer

Charlie Arehart has supported the Wheels framework through his deep expertise in ColdFusion and the broader CFML ecosystem. He has provided valuable feedback, shared knowledge with the community, and highlighted best practices that strengthen adoption and reliability. His involvement helps connect Wheels development with the wider ColdFusion community, ensuring the framework remains relevant and accessible to developers.

Charlie Arehart profile picture

Charley Contreras

Contributed as a Software Developer

Charley Contreras contributed to the Wheels framework by helping refine parts of the codebase and supporting improvements that enhance usability. His work added value to the project’s overall stability and reflects the collaborative effort of developers working together to keep the framework evolving and reliable.

Charley Contreras profile picture

Brant Nielsen

Contributed as a Software Developer

Brant Nielsen contributed to the Wheels framework by improving functionality and addressing issues that supported better performance and reliability. His work helped refine the codebase and enhance the developer experience, reinforcing the project’s commitment to building a stable and effective open-source framework.

Brant Nielsen profile picture

Ben Nadel

Contributed as a Software Developer

Ben Nadel is a veteran ColdFusion developer known for deep technical thought leadership and contributions to the community, including work around Wheels and related topics. He writes regularly about extending and customizing parts of Wheels (for example, customizing the router/proxy component behavior to suit specific workflow preferences). He also shares experiments and educational posts (e.g. integrating HTMX in ColdFusion apps) that help other developers understand modern patterns in CFML. While he may not always be contributing direct core framework commits, his influence shows up in how people use and adapt Wheels in real-world apps, and in sharing best practices, tutorials, and ideas that help shape how the framework is viewed and utilized.

Ben Nadel profile picture

Andrei B.

Contributed as a Software Developer

Andrei B. contributed to the Wheels framework by helping refine code and improve functionality in targeted areas of the project. His efforts supported greater stability and usability, making the framework more dependable for developers. These contributions reflect the collaborative spirit that drives the ongoing success of Wheels.

Andrei B. profile picture

Adam Larsen

Contributed as a Software Developer

Adam Larsen contributed to the Wheels framework by improving functionality and addressing issues that enhanced the stability and reliability of the codebase. His work helped refine features and ensure a smoother experience for developers, supporting the ongoing growth and maintenance of the project.

Adam Larsen profile picture