Wheels 4.0.0 — GA release notes #2625
Replies: 3 comments 3 replies
-
|
Really excited to see Wheels 4.0 finally out. A huge amount of work clearly went into this release across testing, deployment tooling, security hardening, CLI improvements, and overall developer experience. What stands out to me most is that 4.0 doesn’t just add features for the sake of it — a lot of the changes solve real-world development and operational problems that teams actually deal with in production. The new direction around Definitely worth reading through the 4.0 docs at guides.wheels.dev because there’s a lot more depth in this release than a quick summary can show. |
Beta Was this translation helpful? Give feedback.
-
|
Hope to be able to start reviewing all the changes! I'm assuming upgrading from 2.5 has to go to 3 first and then 4? Took me a minute to find the upgrade page to get to 3! Thought it was lost. https://guides.wheels.dev/v3-0-0/introduction/upgrading/. Kudos to all the work Peter. Barely recognize wheels with all these updates. I realize keeping an eye on the commits this might have been AI enhanced to some degree. Assuming care was taken to make sure there are plenty of tests to make sure things don't break. Again, I need to review more, but it's very impressive. An idea for a blog post is how you were able to make all this happen so quickly. Hopefully help others get involved. Trying to figure it out the logo needs updating? Seems like the site is dark mode by default now, but the logo is setup for light maybe? |
Beta Was this translation helpful? Give feedback.
-
|
This answered my 2 -> 3 and 3 -> 4 question. |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Wheels 4.0.0 is released today.
By the numbers
Headlines
wheels deploy— port of Basecamp's Kamal into the Wheels CLI. Zero-downtime Dockerized deploys to Linux servers over SSH. No Ruby runtime. Byte-compatible with Kamal on the server side.group(), typed constraints (whereNumber,whereAlpha,whereUuid,whereSlug,whereIn), API versioning, route model binding, indexed lookup.inject(), auto-wiring, interface binding.packages/→vendor/activation model with dependency graph, per-package error isolation.wheels mcp wheels) for IDE assistant integration. Auto-generates.mcp.jsonviawheels mcp setup.modulepreload+ CSS resolution for multi-entry Vite builds.Breaking changes (7)
Full detect / fix / opt-out guidance for each in the upgrade guide:
wheels snippetsrenamed towheels generate snippets.testbox→wheelstestnamespace (new tests extendwheels.WheelsTest).tests/specs/functions/→tests/specs/functional/.allowEnvironmentSwitchViaUrlfalse in production; non-empty reload password required.The Legacy Compatibility Adapter provides a soft-landing path for staged migrations.
Where Wheels now stands
Against Rails 8, Laravel 12, and Django 5, most of the rows that said "No" for CFWheels now say "Yes" for Wheels 4.0. Honest remaining gaps:
Full comparison: https://github.com/wheels-dev/wheels/blob/develop/docs/wheels-vs-frameworks.md
Links
Contributors
Thanks to @bpamiri (Peter Amiri), @zainforbjs, @chapmandu, @mlibbe, @MukundaKatta, plus Dependabot. And to everyone who filed issues, tested release candidates, and pushed for corrections in the audit.
What's next
4.0.x point releases will focus on asset-pipeline maturity (the known remaining peer-framework gap), documentation polish, and ergonomics feedback from early adopters. The follow-ups section of the audit tracks specific candidates.
If Wheels 4.0 unblocks a project you've been deferring, we'd love to hear about it in this thread.
Read the full post: https://blog.wheels.dev/posts/wheels-4-closing-the-maturity-gap/
Beta Was this translation helpful? Give feedback.
All reactions