finds.dev← search

// the find

refinery/refinerycms

★ 3,905 · Ruby · MIT · updated May 2026

An extendable Ruby on Rails CMS that supports Rails 6.1 to 8.1+ and Ruby 3.x to 4.x

Refinery is a Rails engine-based CMS for sites where non-technical clients need to edit their own pages, with Devise authentication, Dragonfly-backed uploads, and a generator for building custom extensions. It suits Rails teams that want a CMS to stay inside Rails conventions rather than run as a separate headless stack. The repo claims support from Rails 6.1 through 8.1 and Ruby 3.x through 4.x.

- Functionality ships as Rails engines (core plus separate extensions for blog, news, inquiries and portfolio), so custom features live in versionable gem-style packages instead of forks of the host app.

- The extension generator (rails generate refinery:engine) scaffolds admin CRUD, routes, locale files and views in one step, which is the main reason to pick this over starting from a blank Rails app.

- It stays on ERB and plain Rails idioms instead of introducing its own templating layer, so a Rails developer can read and change the code without learning a new system.

- There are more than 30 locale files in core/config/locales, and a separate legacy.yml workflow beside main.yml suggests older Rails lines are still tested rather than just listed as supported.

- The README says the website is not live and that parts of its docs are out of date, so the real onboarding path is the doc/guides folder inside the repo, which is easy to miss.

- The ImageMagick warning still presents CVE-2016-3714 as a current serious vulnerability. The advice to tighten the policy file is still sound, but the framing is about a decade old and says nothing about which ImageMagick versions are affected today.

- The front end is jQuery with a Sprockets-style asset layout (manifest.js, application.js, refinery_core_manifest.js). Anyone starting a new Rails 8 app will be carrying a pipeline and JS stack that most of the ecosystem has moved away from.

- Uploads run through Dragonfly, not Active Storage, so you end up maintaining a second attachment abstraction next to whatever the rest of your Rails app uses. That is a real cost if you are not already committed to Dragonfly.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →