Question

I am building a website for my first client.

I've built my own websites in the past from scratch using PHP, HTML, CSS, etc... without a framework or CMS.

Therefore, before I proceed with this client, I want to make sure I'm going down the right path. Assuming I've already had custom development experience building a CMS (admin login, content management, etc) and can somewhat easily port my code to this new project, I'm wondering if a CMS (let's say we go with Joomla), is the better way to go. My questions are:

  • Is there a limit to the customization I can build/do with a CMS? If I want to add a really custom plugin/add javascript, will it be more difficult in a CMS? Or what about templates. How easily can I manage a template? Is it as simple as altering the template's HTML/CSS to fit the customer's needs?
  • If I have built most of the things the client is asking for already custom, would using a CMS for this new project just be bloated?
  • How is security handled in these CMSs, like Joomla? If the client needs online payments, can I just install a plugin and be rest assured it's secure? I haven't done my own payment systems before custom.
  • Would a CMS like Joomla already handle/optimized for things like SEO and Google Analytics?

Basically, given my experience building custom CMSs, what added benefit is there for going with something like Joomla vs just porting my code over?

And, the customer doesn't know anything about CMSs. Would it be better for me to go with custom development or build a site through a CMS? Is this something I should bring up to the customer?

Thanks

Was it helpful?

Solution

The basic story is this. If you do it yourself you know everything from the inside out but you also have to do everything from scratch and will make mistakes. If you use a CMS (of course I would use Joomla but it could be Drupal or Concrete 5 or one of the new ones) to some extent you have to live with the architectural decisions that other people have made. On the other hand they have millions of users and thus a lot of experience building in flexibility. With either Joomla or Drupal you don't have any limits on the customization you can do and there are many prexisting extensions that you can install for payments and so on and customize or you can integrate with other applictaions. Joomla uses its own framework while Drupal it somewhat depends on which version, but both have tons of developers and helpful communities. Basically in one of the major CMSes you have a lot of stability and people who have thought about many different problems and possibilities. So if you use an existing CMS you can be responsible for your customization and just keep an eye on all of the other parts. However you will have to deal with updates and API changes.

OTHER TIPS

I'll add to Elin's comments.

  • Should you be using a CMS?

Go a lot of content on pages? Yes Are you building software as a service? No way Jose!

  • Customisation and templates

Management and changing of templates is fairly straightforward. You can edit them and edit the css. With CSS I make sure I add a new custom.css include to the top of the template.php file and add all CSS changes to that file. This way when you update the template version (if required) you don't loose all your changes.

I spent a fair bit of time customising plugins in Joomla and Wordpress. Once again, same thing. Try and override javascript methods using included files. From experience, creating basic plugins and modules is easy - it quickly gets fairly confusing and messy when you start making your own database tables.

  • Custom payments

Yes, there are plugins for both. I would recommend trying to use pay-pal integration (or something similar). Two reasons 1) there is a level of confidence for consumers 2) you don't handle CC payments and all the hoo har that comes along with that and 3) it is low risk for you. Have a look through the extensions.joomla.org website to get an idea what is out there (or the wordpress plugins site)

  • SEO and Analytics

I read seo as "trying to trick google". Stay away from that stuff. Adding analytics into Joomla, Wordpres, Drupal etc is a plugin away (or an upload of a file into cPanel/onto disk).

Hope that gives you a bit more useful info.
Happy coding!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top