Topic: Maintaining multiple instances of an application
Our business has been developing a CMS for a few months now and we're to the point of actually deploying it to several clients. One problem we've stumbled upon is maintaining multiple copies of the application, some with a little custom development thrown in.
The CMS is setup with a public, front-end, and an administrative back-end. We run into our problem when planning out custom sites that require changes and additions to the back-end. We want to maintain consistency everywhere possible, staying as DRY as possible.
We first considered using branches in Subversion. Branching off the trunk for each site, allowing us to keep evolving the CMS by merging to and from the custom site. During our test run, we found that this wasn't very elegant and probably an abnormal way of using branches.
So we are now considering converting the core content management into a plugin. Then, when creating a new site that uses the CMS, we simply install the plugin as an external, allowing us to update the core CMS with an `svn up`. We are still uncertain of this because of the lack of knowledge of creating plugins from existing applications and integrating them into a rails app. I read the wonderful post on creating plugins here, and if we go this route it will be a lifesaver.
I just want to know what people have done in these circumstances, as we are open to ideas. Thanks in advance.