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 1.4.0 released, New documentation too..

First, some new announcements

You may have noticed a few changes around here! With the release of 1.4, we've taken the opportunity to greatly simplify our web footprint.
  • All documentation now lives on http://docs.cfwheels.org/ (thanks to readme.io). We hope this will allow people to more easily contribute to the fantastic documentation already there; you need a (free) readme.io account, but you should be able to 'suggest edits' for any page - feel free to help us out! We're in the process of adding redirects from the old documentation - please bear with us on this one.
  • You'll notice the plugin listings are greatly simplified - this is a temporary measure whilst we look at the whole plugin ecosystem generally
  • Downloads now live on the readme.io site at http://docs.cfwheels.org/page/download, but don't forget you can always get everything at the Git Repo
  • You'll notice a small change in the cfWheels logo - don't panic, you're not going mad, we just thought it might be nice to have something new and shiny to look at.
  • Tom King and Tim Badolato are now part of the Wheels core team. "Per" still does all the actual real work :)

Onwards and upwards!

1.4 is released, which brings the usual host of fixes and improvements, most noticeably a few tweaks to get Wheels running with Lucee Server: CFWheels should now correctly identify itself as Lucee in the debug output, and various other (older) Railo specific tweaks should get applied. Note, if you're ever testing for 'railo' in the server scope on Lucee, it will return as true. A couple of other changes might catch you out too, noticeably removal of the h() function, and "development" now being the default environment mode. Get 1.4 Now! Upgrading from 1.3x
  • Replace the entire /wheels/ folder
  • Replace URL rewriting rule files - i.e, /.htaccess, /web.config, /IsapiRewrite4.ini
Release notes:

Model Enhancements

  • Allow spaces in list passed in to the "include" argument on finders - #150 [Per Djurner]
  • Added findOrCreateByProperty, findAllKeys(), findFirst() and findLast() finder methods - [Per Djurner]
  • Add support for "GROUP BY" in sum(), average() etc. - #464 [Per Djurner]
  • Made exists() check for any record when "key" and "where" is not passed in [Per Djurner]
  • Added clearChangeInformation() for clearing knowledge of object changes - #433 [Jeremy Keczan, Per Djurner]
  • Evaluate validation error messages at runtime - #470 [Per Djurner]

View Enhancements

  • Respect blank "text" argument in linkTo() - #365 [Adam Chapman, Tony Petruzzi, Per Djurner]
  • Allow styleSheetLinkTag() and JavaScriptIncludeTag() to reference files starting from the root - [Per Djurner]
  • Added "monthNames" and "monthAbbreviations" arguments to form helpers for easy localization - [Per Djurner]

Controller Enhancements

  • Ability to prepend functions to the filter chain instead of appending - #321 [Per Djurner]
  • Pass in "appendToKey" to caches() to cache content separately - #439 [Per Djurner]
  • Allow external attachments with sendEmail() - [Adam Chapman, Tony Petruzzi]
  • Ability to redirect to a specific URL - [Simon Allard]
  • Option to correct JSON output by passing in x="string" or x="integer" to renderWith() - [Per Djurner]

Bug Fixes

  • Fix for blank path_info in CGI scope - #447 [Tim Badolato, Tony Petruzzi, Per Djurner]
  • Fix for accessing request scope key that does not exist from session - #446 [Brent Alexander, Per Djurner]
  • Removed "validate" property that was incorrectly set when calling create() - [Per Djurner]
  • Pass through "parameterize" in exists() [Per Djurner]
  • Do not remove "AS" when it's in the SQL for a calculated property - #453 [Jean Duteau, Per Djurner]
  • Obfuscate parameters in named route patterns when URL rewriting is off - #455 [Amber Cline, Per Djurner]
  • Pass through "includeSoftDeletes" argument correctly - #451 [Jon Brose]

Miscellaneous

  • Support for the Lucee server - [Tom King]
  • Made "development" the default environment mode - [Per Djurner]
  • Removed deprecation work-around for the "if" argument on validation helpers - [Per Djurner]
  • Removed deprecation work-around for the "class" argument on association initialization methods - [Per Djurner]
  • Removed the "lib" folder - [Per Djurner]
  • Removed the h() function, use XMLFormat() instead - [Per Djurner]

May 08, 2015 by Tom King

Wheels API Documentation Available

The documentation now contains a section that documents all public functions in the Wheels API. You can now browse an complete list of the functions or browse by category. It feels good to remove the apology for incomplete documentation from the documentation section! As with almost everything else on the site, there is a lot more that we want to do with this new API documentation. Let us know in the Google Group if you have any ideas. Some future plans are as follows:
  • Comments section
  • Associate functions with other related functions and related chapters in the reference guide
  • Search
If you're interested in how we implemented this, visit my blog post where I briefly describe the general idea.

December 13, 2009 by Chris Peters

Wheels 1.0: We're Production Ready

We've gone 1.0! Go download ColdFusion on Wheels 1.0 and give it a try. If you're upgrading from a previous version, please review the instructions for Upgrading to 1.0 (even if you're upgrading from the release candidate). It's an honor for me to announce this release and to thank our passionate community. The core team and community have put a ton of hard work into this project since I started contributing in November of 2007. Per Djurner has truly done some hero work. Everyone owes him a beer. Even though Sean Corfield claims that Wheels doesn't have much traction, we have been overwhelmed by the positive feedback of the framework. I expect more to come. It's been picking up. I'm going to risk forgetting to thank someone who has helped. I'm sorry if I missed you. Thanks so much to Rob Cameron (The Godfather), Per Djurner, Tony Petruzzi, Peter Amiri, Raul Riera, James Gibson, Mike Henke, Clarke Bishop, Russ Johnson, Grant Copley, Isaac Dealey, Tom Hoen, Andy Bellenie, Milo Maneo, Louis Plante, Joshua Clingenpeel, William Fisk, and Mike Haggerty for contributing to the project in meaningful ways. (Hey, I've always wanted to release a CD with a "Thank You" section, so this will have to do. :)) Here's to a framework with a very bright future and a major contribution to the CFML community at large.

December 24, 2009 by Chris Peters

ColdFusion on Wheels 1.1.4 released

Today, we're releasing ColdFusion on Wheels version 1.1.4. This release fixes numerous bugs and adds a nice feature: Now you no longer need to create a zip file to start working on a new plugin. You just create a folder for it in the plugins folder and start coding your CFC. To upgrade, you just need to replace the wheels folder in your application with the new wheels folder in the zip file. The following changes have been made for this release:

View Enhancements

  • Allow an array of structs to used for options in selectTag()
  • Added secondStep parameter to date/time select tags

Model Enhancements

  • Update to belongsTo(), hasOne() and hasMany() for the new argument joinKey.
  • You can pass an unlimited number properties when using dynamic finders
  • Dynamic finders now support passing in an array for values
  • Added the delimiter argument to dynamic finders, this allow you to change the delimiter
  • Added validationTypeForProperty() method

Other Enhancements

  • Added proper HTTP status headers
  • Plugin development no longer requires a zip file

Bug Fixes

  • Incorrect MIME type for JSON
  • Route with format will cause exception when route is selected and format is not provided
  • Raise renderError when template is not found for format
  • labelClass should split up the list of classes and attach one class for each label
  • Transactions would not close when used with the dependent argument of hasMany()
  • Soft deletes do not work correctly with outer joins
  • Better error message when supplying a query param of type string and omitting single quotes
  • Allow commas in dynamic finders
  • AMPM select displaying twice
  • $request argumentsCollection: should be argumentCollection
  • Pagination pull incorrect number of results with compounded keys
  • Update hasChanged() to properly check floats
  • Date tags selected date throws out of range error

July 22, 2011 by Chris Peters

Debugging plugin performance in CFWheels 2.x with FusionReactor

The Issue

Shortly after the release of CFWheels 2.0, we started to get reports of slower running requests under certain conditions. For instance, a page which might have had 1000 calls to `linkTo()` could take anything from 1-2ms to 5-6ms a call, which, after 1000 iterations, is one hell of a performance bottle neck. In 1.x, the same call would be between 0-1ms, usually with a total execution time of sub 200ms. 

This behaviour was something which could be proven by a developer, but not everyone was seeing the same results: what was the difference? Plugins (or rather, plugins which override or extend a core function, like linkTo()). To make matters worse, the performance degradation was doubled for each plugin, so you might get 1-2ms for 1 plugin, 2-4 ms for adding another plugin and so on.

So what was causing this?

Enter FusionReactor

We approached FusionReactor, who were kind enough to give us a temporary licence to help debug the issue (it's great when companies support open-source!). So next up were some tests to help diagnose the issue.

Installing FusionReactor was really simple. As we use CommandBox locally, we could just utilise the existing module via install commandbox-fusionreactor to bootstrap FusionReactor onto our local running servers, which gave us access to the FR instance, already plumbed in. As we were looking for a specific line of code, we also installed the FusionReactor Lucee Plugin and configured it track CFML line execution times using the CF line performance explorer.

This was instantly illuminating, and tracked the problem to our new pluginrunner() method. When we released CFWheels 2.0, there was a fairly heft rewrite of the plugins system. It was designed to be able to allow for plugins to be chained, and execute in a specific order, so you could hypothetically have the result from one plugin overriding the previous one in the chain.

The way it did this was by creating a "stack" of plugins in an array, working out where it was in that stack, and executing the next plugin in the stack till it reached the end. It did that via a combination of callStackGet() and getFunctionCalledName() function to do the comparison.

As you can see from the screenshot below, the line debugger clearly highlights this. This app had four plugins, two of which extended core functions.

Example of FR Lucee 4 Line Debugger

callStackGet() gets invoked 2364 times in this example, but appeared performant, only causing 10ms execution time. getFunctionCalledName() is called the same number of times, but has a total execution time of 2242ms(!). We had our potential culprit. Either way, it was looking like the combination of calling the stack and trying to find the calling function name which was causing so much pain. I suspect it's to do with how Java deals with this: I think it might be calling a full stack trace and writing it to disk on each call - at least that was the hint from FusionReactor's thread profiler (I'm sure those who have a better understanding of Java's underlying functions will chip in).

After some deliberation, we decided to revert this behaviour in CFWheels 2.1 back to how it used to work in 1.x, as the vast majority weren't using it, but were being affected by it. We'd seen no plugins in the wild which used this behaviour either, which was largely undocumented.

Obviously thanks to FusionReactor for helping us out - hopefully this gives some insight into just one of the ways FusionReactor can be used. Maybe one day I'll understand Java stack traces - maybe.

March 05, 2020 by Tom King

CFMeetup - Intro to Wheels ORM Thurs Jan 21 6pm EST

What: "Intro to Wheels Object Relational Mapping (ORM)", with Mike Henke WHEN: Thurs. Jan 21, 6:00pm US ET (UTC/GMT-5) MEETING URL: http://experts.acrobat.com/cfmeetup/ DURATION: Approx. 1 hour Meeting will be recorded. URL will be posted after meeting at http://recordings.coldfusionmeetup.com ABOUT THIS SESSION: Our 6pm (US ET) talk on Thursday Jan 21 will be "Intro into Wheels Object Relational Mapping (ORM)", with Mike Henke. (For an introduction to CFWheels, see the recording of the talk earlier this month by Chris Peters. More at http://www.meetup.com/coldfusionmeetup/calendar/12231118/.) TOPIC DESCRIPTION: (provided by the speaker) An overview of Object Relational Mapping (ORM) and how is it used in Wheels. Learn how ORM simplifies your database interaction code. Mapping objects in your application to records in your database tables is a key concept in Wheels. We will take a look at exactly how this mapping is performed.

December 20, 2010 by Mike Henke

Screencasts Are Back

This blog has been a little quiet lately, but believe me that plenty has been going on behind the scenes. We've released a new section on our site for Screencasts. I've started a series on building a fake social networking site, and the first 2 episodes are there: The aim of the series is to go through a real world application and cover different topics as they are appropriate. There are plenty more episodes and standalone screencasts in the works, so be sure to subscribe via RSS or iTunes.

December 13, 2009 by Chris Peters

ColdFusion on Wheels 1.1.1 Released

We're releasing ColdFusion on Wheels version 1.1.1 today after identifying and fixing a few bugs reported over the past couple weeks. The upgrade should not affect current 1.1 users, so we strongly encourage that you upgrade immediately. As with all releases in the 1.x cycle, you can upgrade by replacing the wheels folder in your current application with the new one from the zip file. Here is the list of issues resolved from the CHANGELOG:
  • Added number formatting on the value passed in to "count" in the pluralize() function
  • Fixed renderWith() so that it works in all environment modes when returning JSON
  • Fixed belongsTo association code when using composite keys
  • Allow cfthread to be used in views
  • Fixed paging code for non-parameterized queries
  • Corrected bug in request verification when session management was disabled in Railo
  • Changed "if" to "condition" (and deprecated) on all validation methods to get around the fact that "if" is a reserved word in cfscript
  • Fixed autolink() so that it correctly links and escapes relative paths
  • Fixed so including partials with layouts does not cause duplicated content
Let's keep squashing these bugs, so be sure to share your experiences with the framework in the Google Group and the issue tracker.

December 21, 2010 by Chris Peters

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

cf.Objective starts and free t-shirts

cf.Objective() starts today and goes till April 24. The conference is being held at the Hyatt Regency Minneapolis, MN. Several pre-conference courses were being held the last couple days. Mike Henke will be presenting "ColdFusion on Wheels, Inspired by Ruby on Rails" on Friday, April 23th at 4:15 in the Nicollet C room of the hotel. Find Mike at cf.Objective() and show him the wallpaper on your computer or the blog badge on your site and he’ll give you a free t-shirt while supplies last. You can see and download the different wallpaper and badges psd/jpg files here.

December 22, 2010 by Mike Henke

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