Our great sponsors
-
Comfortable Mexican Sofa
ComfortableMexicanSofa is a powerful Ruby on Rails 5.2+ CMS (Content Management System) Engine
-
routing-filter
routing-filter wraps around the complex beast that the Rails routing system is, allowing for unseen flexibility and power in Rails URL recognition and generation.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
rails-i18n
Repository for collecting Locale data for Ruby on Rails I18n as well as other interesting, Rails related I18n stuff
I did my research, and I really liked comfortable mexican sofa or Comfy. It even had ActiveStorage integration for file uploads! Nothing against other CMS engines, be it RefineryCMS or AlchemyCMS - but I felt that Comfy had the right combination of being extremely simple, yet having enough hidden powers to not become a blocker in the future.
The problem begins when some of the gems really don't support new Rails version. Like a very nice routing-filter, that we use to simplify handling locale segments in URLs of the website. Unfortunately, this gem relied on very specific internal implementation of Rails routing system, which was largely re-factored in Rails 6.1, completely breaking routing-filter. The last version of routing-filter was released in 2019 and there was not much activity in the repository. So another choice I had is:
This, combined with the fact that we are using cells gem for some view components, resulted in another couple of hours of hunting for the problem (it takes some time to debug what exactly and how exactly changed in Rails internals) and then fixing this problem. At this moment, I already spent over 8 hours debugging Rails internals, different gem internals, fixing application, fixing tests, screaming internally.
The cherry on top was that Comfy gem depended on rails-i18n, which overwrote date I18n translations coming from russian gem, breaking translations on some of the pages. Surely enough, this resulted in another hour or so of debugging and fixing.