Whether to use CMS or to build from scratch?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I've been thinking lately about whether to use opensource CMS such as
Joomla or to build something from scratch.

I am good with PHP/ MySQL but only little bit familiar with Joomla.

I want to know when to use CMS and when to code from scratch? How do I
make such a decision? Need some expert advice.


Re: Whether to use CMS or to build from scratch?

Kimmo Laine wrote:
Quoted text here. Click to load it

Unless next_page.php generates PHP, the script with this include will
only get HTML.

Quoted text here. Click to load it


    if (isset($_GET['foo'])) {
      echo '<?php echo $_GET[\'foo\']; ?>';
    } else {
      echo '<?php echo \'Not available\'; ?>';

File not found: (R)esume, (R)etry, (R)erun, (R)eturn, (R)eboot

Re: Whether to use CMS or to build from scratch?

white lightning wrote:
Quoted text here. Click to load it

Much depends on how soon you need things up and running, even if a CMS can't  
do exactly what you want, you can in most cases write a module that will do  
what you need to have done.

It's only if you need to do things that are really special and which you can't  
do with a module in a already made CMS, then start to think of making  
something from scratch.

Of course if there are things you need to test when it comes to your coding,  
then you can start from scratch too, but usually it's enough to just make  
something small for testing something new instead of writing a new CMS.



Re: Whether to use CMS or to build from scratch?

white lightning wrote:
Quoted text here. Click to load it

That depends on the problem you're trying to solve.
If you want to have a CMS package that's your own - build it.
If you just want to know CMS inside and out - build it.
If you want to learn every aspect of LAMP - build a CMS.

But if you're like an IT guy somewhere, and you just need to get  
a website going, then reinventing the wheel might not be your  
best choice.

Re: Whether to use CMS or to build from scratch?

white lightning wrote:

Quoted text here. Click to load it

What are your motivations?  

In purely business terms, an established package lets you deliver to
customers faster.  You accept a small learning curve, because its still far
smaller than trying to establish a familiarity with the problem domain by
responding one-by-one to customer demands, especially if the customers are
expecting slick up-to-date sites.

The other common motivation is simply that programmers like to code, so we
code.  Why take a 3 hour flight to LA when I can walk there myself in only
4 months!

Kenneth Downs
Secure Data Software, Inc.

Re: Whether to use CMS or to build from scratch?

Quoted text here. Click to load it

That's exactly what I was trying to find out. I personally like to
code. I feel that's more challenging and I feel like I'm in full
control of what I am doing. But if I start coding things from scratch,
as you said, it might take me 4 months to build a fairly complex site
whereas if I use Joomla, that'll probably do the same job in a week.
If someone uses Joomla to create a website, they can do it quicker and
cheaper. If I start coding, it'll be slower and expensive. Something
made with Joomla may cost $2000 whereas if I code from scratch, the
same thing would have to be charged no less than $8000.

So does that mean, is pure coding a thing of the past with the
introduction of powerful CMS such as Joomla? What are your thoughts?

Re: Whether to use CMS or to build from scratch?

white lightning wrote:
Quoted text here. Click to load it

I find CMS's don't save me much time at all.  I still have to write all  
the PHP, ASP or whatever code.  I still have to write the HTML.  
Something that takes me 2 weeks to write for a CMS generally would take  
me about 2 weeks to write myself.

CMS's are nice in that they allow you to design the page once and  
continue to use them.  But you can do the same thing with templates and  
include files.

Now I'm not saying CMS's are bad.  They aren't.  They're just a  
different way of doing things.  If they work for you, by all means go  
for it.  They just don't do anything for me except complicate things.

Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.

Re: Whether to use CMS or to build from scratch?

white lightning wrote:
Quoted text here. Click to load it

I'll do one better than most replies, I'll explain why I use a package  
and why I don't.

For my clients who want storefronts I generally use OSC (actually and  
OSC derivative called OSCMax that we have further modified). It does  
about 95% of what I need done and it is VERY stable. That's the biggest  
issue. The last thing I want is something as a base that is going to  
undergo a massive change or require a massive fix. Why? Because when I'm  
done making the modifications I need to make my customers happy (and  
every version of anything open source will need modifications to make  
your customers happy) and for adding features I can mostly keep away  
from the primary tables making it easy to update. ***and that's the  
key*** See every piece of open source, sooner or later, will have to be  
upgraded, and the more you have messed with the base code, the more pain  
there is in the upgrade. A great example of painful upgrading is PHPbb  
which lacks the structure to gracefully be modified.

Okay, now back to CMS and why we created SiteControl rather than use  
open source. Every client has a set of CMS needs that are core, and then  
they have a set that are unique to their specific cases. The problem is  
that most CMS systems create massive projects that try to reach the  
largest user base. 99% of my clients don't need a calendar system. In  
fact, only one out of all my projects does and they needed only a simple  
announcement calendar. So why have a massive system that has tons of  
stuff in it to handle and manage calendaring?

So, we built ourselves so we could create a system that has "packages"  
that our user community can pick and choose from. Some of these are open  
source packages that we have modified into the product. Others are built  
specific to our clients needs. Every client wants a "contact us" page,  
so that is a core module that we include in every package. On the other  
hand, only those that need a links page will buy the links module.

In addition, we offer a multiple number of "navigation" modules that we  
can integrate. So a client can have "top navigation" "side navigation"  
"footer navigation" expanding navigation or static. Mouseover navs or  
dhtml navs or image navs, all with the simplicity of just changing one  

The best part is that clients that host with use all have "common  
elements". That means that when we add feature sets to a component that  
they have, we roll the component out across the server and all clients  
get the upgrades and updates. Since we control the components the  
components degrade gracefully for clients that want to maintain the site  
as it was, but those that want to use the new features can start to at  
any time.

An example of this was the "contact us" module. It had the ability to  
include a pull down "reason" that the client could update at will. One  
client wanted to be able to have the system send an e-mail to a  
different person based on the reason code. So, we updated the code and  
the database to allow e-mail addresses to be associated to reasons in  
the selection list. When we pushed the code out to all the clients we  
saw some immediately start to take advantage of the new feature. One  
created multiple contact us pages (allowed and supported in SiteControl)  
for each different project. This allowed them to have people in "Project  
A" be listed by title and have web-users send them e-mail, and do the  
same thing for "Project B" where as before all e-mail went to one  
"Project" box for each project and then someone forwarded it to the  
right person based on the reason code. Other clients did not want to use  
the new feature, and their code degraded with no issues to the same as  
it was before the code upgrade. They didn't see any difference except an  
optional field on the backend that they could ignore.

So, the question you ask is best answered by what you want to maintain  
and manage. If you want to have a large CMS system out there (the more  
code there is out there, the greater possibility that it will break) or  
do you want to be able to build to suit?

A shopping cart system like OSC is VERY different than a CMS system. In  
a shopping cart system there are a set of very common tasks that almost  
every cart will have to perform. In a CMS system each clients needs are  
far different and in some cases 75% of an open source project will be  
unneeded (yet will have to be maintained).

So, that sort of covers the process I went through in making a  
determination on what would be open source and what would be hand built.  
And yes, when we use open source we do give back (I wrote the initial  
recover carts program for OSC). But, even when you look at what we give  
back, it follows our philosophy of not messing with the core tables of  
an application :-) Some open source applications are built so that can  
be done, with ease, those are the ones I recommend that you consider if  
you do consider open source.

Re: Whether to use CMS or to build from scratch?

white lightning wrote:

Quoted text here. Click to load it

To paraphrase Kelly Martin (SecurityFocus.com), using a third-party CMS is
like drilling your own teeth: it's sometimes scary not being able to see
what's going on, in case something goes wrong.

Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact
Geek of ~ HTML/SQL/Perl/PHP/Python*/Apache/Linux

* = I'm getting there!

Site Timeline