Today I’m going to touch on my journey from WordPress, to Rials and finaly Elixir. I’ll share some of my thoughts on the communities and the switching process.
WordPress to Rails
I spent 15 years in the WordPress ecosystem. They were some of the best times of my life. It was a community I loved and a project I was passionate about.
I deeply wanted to build everything with WordPress, even when it was not the right tool. Those were the days when you stretched the tool you knew, because switching and betting on something else was much more expensive and time-consuming.
With all the drama in the WordPress ecosystem and losing my job at Automattic, I knew that I never wanted to touch a WordPress site again. I moved this site over to Astro and started looking into Rails.
I’ve admired Rails for such a long time and always wanted a way to get into Rails development. I admired DHH and the great company he built. I secretly hoped to work for him one day.
My dreams shattered the day I lost my job. The software industry is a scary place, and besides that, I decided to be an entrepreneur. Even though it’s the scary option, I never want to be at the mercy of a single individual again. That’s also why I’m not doing consulting. I want to go down the hard route of building a product.
Ruby on Rails seemed like a natural choice, until it wasn’t.
Thank you, Rails
My first stop was building a finance app, Klop. It failed as a product, but it succeeded in other ways: it was the first time I built an iOS app, the first time I launched my own product and, finally, I got the chance to use Rails.
It was perfect in so many ways: the Kamal deployments, the magic methods, the way it reads. I really enjoyed it. The community seemed supportive and overall I thought this was the direction I wanted to take. One day I’ll take my team to a Rails conference, I thought (in hope, of course).
I’m really grateful that such a great framework exists. Many great businesses were built on it, but I always had a weird feeling. Almost like joining a great company after the glory days. The vibes were still there, but in reality you start to see the cracks in the walls. Last year those cracks were hard to miss: Sidekiq pulled its funding from Ruby Central over DHH keynoting the final RailsConf, DHH’s own blog posts drew an open letter asking the community to distance itself from him, and Ruby Central removed the long-time RubyGems maintainers under pressure from Shopify, until Matz had to step in.
The other weird thought I always had was that Ruby conferences had more Rails talks than general Ruby talks. Actually, too many Rails talks, but that’s just something I noticed. It made me realise how irrelevant Rails will soon become. A language that exists for a single framework was already dead.
Then the final realisation came this year at Rails World 2026. I was so excited to watch the keynote, and then I spent the whole night lying awake, shocked at what I had just heard.
The keynote
I won’t repeat the keynote, but one thing that stood out was that Rails was essentially dead. 37signals has gone “pencils down” on writing code by hand, and HEY is being rebuilt as native apps on a Rust backend, not Rails. Yes, people can still use it, but the lifeblood is slowly dripping out. If the visionary leader no longer thinks it’s the best tool for development in the AI age, why spend a single moment with it? I wasn’t alone: one attendee called it “the most confusing funeral I’ve ever experienced”, and Jared Norman summed it up as “reassurance instead of a plan”.
I was shocked for a few hours, but since I’ve already been through similar drama in another community, I instinctively knew that moving on was the only option. Moving on from the WordPress community took a few months; this one took a week. I wasn’t as deeply committed to this one.
DHH is no longer my hero. I’ve realised that DHH is vulgar and out of touch with reality. I need to join a community where ideas matter more than money. In Rails, whatever DHH says is the word. You can see the employees always backing his views, and I’ve already seen that situation play out in the WordPress world. I’m not standing by to watch it again. An immediate unfollow.
In one sense I’m sad, but in another I’m grateful to have seen his true colours.
Why Elixir
I could have gone to Rust or a faster native language like Go, but since they are not functional and their runtimes are not as mature as the BEAM, I chose Elixir. I’m not going to go very deep into this, but the things that drew me were:
- The functional paradigm. I think it avoids so many bugs by not encouraging shared state. I also love the ability to compose things.
- Real-time first. With Rails, real-time is something you add on with Action Cable. With Elixir and LiveView, processes and WebSockets are just part of the stack.
- Familiar syntax. The creator of Elixir, José Valim, was a Rails core team member, so he created a syntax that reads a lot like Ruby. That made it an easier transition.
- The community. I watched a few conference talks and people seem so positive. The talks didn’t all come from one or two companies like they did at Rails World (Shopify, Evil Martians and 37signals).
- The range of problems. The problems discussed in talks were very wide. Rails talks were mostly about web apps.
- Separation of concerns. Ash, Phoenix and LiveView encourage business logic to live outside of the web boundary.
The move
Thanks to AI, the move was much simpler, though it still took time. It helps that LLMs are unusually good at writing Elixir.
gesondheid.com
About 13 days, from plan to production. Two weeks if you count to the end of today’s tidy-up.
| Milestone | When |
|---|---|
| Rebuild plan (#180) and Phase 0 (#170) created | 1 Oct, 16:00 SAST |
| First Elixir commit: “Scaffold Ash 3.0 + Phoenix app in elixir/…“ | 1 Oct, 19:28 |
| Cutover merged (#226), Ash serving app.gesondheid.com | 14 Oct, about 09:00 |
| App moved to the repo root (#235), #180 closed | 14 Oct, 10:40 |
dayofplenty.com
I’m still working on this one. I’m refocusing the app on a new strategy, so it’s still in progress.
Conclusion
I hope not to move again for a long time and maybe, when I’m successful, send my team to conferences where the future looks exciting and there are still lessons to be learned.