Imagine CMS

Version License

Imagine CMS is a web content management system developed by Bigger Bird Creative, Inc. in 2006 for its clients. Other CMSes came with a learning curve: not a problem for daily users, but clients who only used it once a month or so would forget everything by the next time they logged in. Simpler systems didn't have enough functionality to allow us to do what we wanted to do as designers and developers. Thus, we created a CMS that is easy for clients to use, stays out of our way, and provides useful automation (publishing and unpublishing on a schedule, navigation links, RSS feeds, etc.).

Current Status

Imagine 5.2 is ready for production use (v5.2-stable branch). Imagine 4 is also available for apps tied to Rails 4.2, respectively (v4.2-stable branch).

However, unless you are already familiar with Imagine, this project is not suitable for wider use. Why? Well, the purpose of the Imagine gem at this point is strictly to upgrade legacy sites to modern versions of Rails as simply as possible, and to make sure that if something happens to Bigger Bird, our clients will not be left high and dry. This version was never intended to be used by the general public.

Imagine 7 will be a clean break and a great time to try Imagine CMS. Depending on how smoothly development goes, it could be released before Imagine 6 (awkward...).

History and Roadmap

Imagine was originally created in the Rails 1.0 days, to run a large number of technically straightforward content-based sites (versus the one or two highly-custom web applications most Rails developers were building at the time). We wanted to provide a way to create and manage static content with a little bit of automation, while also allowing limitless custom Ruby development. However, because plugins/engines were quite limited in those days, Imagine was implemented by monkey-patching core parts of Rails and creating a new framework on top of Rails. Although this allowed us great insight into the inner workings of Rails, this approach proved extremely difficult to port to Rails 2. Thus, sites using the original Imagine 1.x were stuck on Rails 1.x for many years.

All that is now firmly in the past. By extracting Imagine functionality into a Rails engine, we achieved compatibility with Rails 3.2 and Ruby 1.9 and removed roadblocks to a future upgrade to Rails 4 and Ruby 2, all while retaining backwards compatibility with the Imagine CMS database structure.

(Imagine 1.x and 2.x were internal-only releases, the open source version started at 3.0.)

  • Imagine 3.0 (Rails 3.2, Ruby 1.9/2.0): [DONE, v3.0-stable] 100% restored functionality (plus a few extras and fixes), no database changes.
  • Imagine 4.0 (Rails 4.0, Ruby 2.1): [DONE, v4.0-stable] Compatibility with Rails 4.0
  • Imagine 4.1 (Rails 4.1, Ruby 2.1): [DONE, v4.1-stable] Compatibility with Rails 4.1
  • Imagine 4.2 (Rails 4.2, Ruby 2.2): [DONE, v4.2-stable] Compatibility with Rails 4.2, many minor fixes and UI improvements
  • Imagine 5.0 (Rails 5.0, Ruby 2.2): [SKIPPED] Compatibility with Rails 5.0
  • Imagine 5.1 (Rails 5.1, Ruby 2.4): [SKIPPED] Compatibility with Rails 5.1
  • Imagine 5.2 (Rails 5.2, Ruby 2.5): [CURRENT RELEASE] Compatibility with Rails 5.2
  • Imagine 6 (Rails 6): [FUTURE] Compatibility with Rails 6
  • Imagine 7 (Crystal): [IN PROGRESS] Rewrite in Crystal with Apache CouchDB backend

Imagine 6 will continue to be Rails-based, but Imagine 7 is a complete, ground-up rewrite in Crystal. Development will begin in a new repository under an Imagine CMS organization, as a proper community-driven open source project (finally!). The core concepts will continue on, but not a single line of code will carry over.

Hosting

Imagine 3.x-6.x can run on typical Rails hosting platforms (anything that uses Passenger, Unicorn, Puma, etc.). On hosts that don't allow writing to the local filesystem (e.g. Heroku) you won't be able to use photo galleries or page caching, but other features should work (note: this mode of operation has not been fully tested).

Getting Help

Get paid support and hosting for Imagine CMS straight from the people who made it: Bigger Bird Creative, Inc. Neither is required to use Imagine CMS, of course.

Contributing

Imagine 7 (Crystal) will be a true open source project, but this project (Ruby-based Imagine) will remain more or less closed for the foreseeable future. If companies or individuals are willing to sponsor or co-develop new features, we can work something out.

Building Docker Image

(notes for myself)

docker build -t anamba/imagine5-dev:latest .
docker tag anamba/imagine5-dev:latest anamba/imagine5-dev:5.2.1
docker tag anamba/imagine5-dev:latest anamba/imagine5-dev:5.2
docker push anamba/imagine5-dev