How to make an extendable application

Hey,

This is a question aimed to all who have created their own CMSs.

What is the correct way to go about making a reusable CMS? We all must
be doing this, creating a new CMS for each site we do is prohibitvely
expensive.

Going through the Radiant source I see the majority of the code is
kept in /app. Won’t this make it difficult to update the CMS code once
it has been interleaved with the rest of the app?

A plugin? What about a seperate set of migrations… we can’t mix the
CMS migrations and app migrations…

Engines? Seem to be the best solution at the moment… (What I
currently use)

Thoughts? How does everyone do this?.. or think they should be doing
it?

ta
-henry

Excellent question - I’m wondering the same thing myself - do you
write a plugin with a generator that gets you going but then relies
upon method calls IN the plugin’s library perhaps?

The concept of reusable modules is one very nice feature of Django
that I like - there’s got to be something similar in Rails!

Wes

On Mar 15, 4:36 am, “[email protected]

Hi Wes,

I have the answer. The Rails ideology of convention over customisation
is all well and good until you find an area lacking a convention.
Engines is the way to go at the moment. I suspect principles will be
taken from engines and made core eventually, if the poor author of
Engines finally pursuades everyone they’re plugins and not an engines!

cheers
-h

Thanks for the reply - yeah it looks like the engines guys take a
beating. :slight_smile:

Wes

On Mar 25, 3:29 pm, “[email protected]

All the engines plugin does is make the plugin system a little bit
more flexible, really. Possibly some parts will be adopted, others
certainly wont, since it exists to serve a slightly different
development environment than that of the Rails core team.

This is the nature of open source - we make it work the way that
serves our needs best :slight_smile: