by Dan DeMeyere - @dandemeyere
If you're looking to try out Refinery CMS for your app, there are a couple of things you should know ahead of time. If there is anything I don't cover in this review, shoot an email to dan[at]thredup.com and I'll see what I can do.
Background
Refinery is a Rails 3 compatible CMS gem that allows users to perform the standard Content Management System (CMS) tasks - create, edit and manage content on a website. However, given its Rails nature, Refinery is capable of much more than this. Refinery was developed in a way to allow 'engines' to be seamlessly integrated into the Refinery app.
To take a step back for a moment, Refinery can be used in many different ways. For example, if you have a large pre-existing app, such as thredUP, Refinery can be used/integrated to serve up all your public facing content such as your help section, press releases, or any other content you might want non-developers to edit. I think this type of application of Refinery is using the CMS in the traditional way. Another way of using Refinery is using it as the founding architecture of a whole separate app. This is what we did with the Daily Thred, which is a good transition point back to using engines within Refinery.
The analogy I use for engines is that they are to Refinery as gems are to Ruby on Rails. Engines tap into the existing infrastructure of your app and typically extend or add new functionality. You can use pre-existing open sourced engines or you can build your own engines to mold Refinery into your project's necessities. This open, modular approach has turned me into a Refinery proponent.
Installation
It's easy. I went from gem install to posting my first page in about 5 minutes. Refinery has a great guides section of their website dedicated to getting all the essential components one might need setup. Here's a look at my Gemfile and the custom gems we ended up choosing:
Pros
- It's free and open source (thanks open source community!)
- It's easy to install, configure and extend
- Decent documentation and the guides are adequate
- Needed urgent help once and their IRC channel came through for me
- Readily updated (last commit was less than a day ago)
- Really easy to style
- Engine list is growing
Cons
- No post scheduling - had to create myself
- No easy previewing - had to re-write the system
- Any changes to system require overriding files (not sure how else I would do it though)
- Image storage implementation is ambiguous
Conclusion
It's open source, so there's not much more you can ask for. If you do want something that's not there, fork it and do it yourself - the beauty of open source:)
As you can tell the pros definitely outweigh the cons and therefore I recommend Refinery and hope others start to pick it up as the community will grow and more engines will be available. If you want to try it out, here is their github and here are the creators.
Dan DeMeyere
Ruby on Rails and Front-end Engineer
dan@thredup.com