I am going to make a website for a client that wants to be able to alter the site about every week (changing pictures and textual information mostly). It is for a restaurant and so the client wants to alter the menu and images on an almost weekly basis. I've always made my websites and web apps from a framework or from scratch and have never worked with a CMS, but would a situation like this warrant the use of a CMS? What are some other options?

Edit: I would really like a CMS to be a last resort option, but if it is most likely the best option I will use it.

  • You need a CMS because client wants to manage content. Question is do you want to build your own CMS or use one of the existing ones? It's usually easier to build websites on top of CMS because customers keep wanting to change something, even if you're the one who's doing it.
    – imel96
    May 19, 2013 at 23:22
  • Sharing your research helps everyone. Tell us what you've tried and why it didn’t meet your needs. This demonstrates that you’ve taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. Also see How to Ask
    – gnat
    May 20, 2013 at 15:35
  • Anecdotally, for a site like this usually the time saved by the CMS in features is taken up by the extra time working with templates, and vice versa. May 20, 2013 at 16:08

3 Answers 3


A Content Management System is what your customer wants. You're asking if you should use a pre-built one or roll a custom solution of your own.

If your customer is not going to be writing blog-posts, a CMS system like drupal is probably overkill and unneeded complexity. So long as your website pulls the menu items from a central data store, it should work just fine.

You may save yourself a partial security headache if you avoid the CMS, and have the updates made via a seperate channel. A CSV or XML file with a folder of images would not be inappropriate, especially if the customer is familiar with Office software.

Conversely, if your customer wants to update via the web, a known CMS with a good security record may be a worthwhile pickup.

  • 1
    +1 for security headaches. Any CMS tends to have a large attack surface. If you get behind on your patches, you will get hacked.
    – TimG
    May 20, 2013 at 15:02

I agree with @DougM. It really sounds like your customer wants a CMS. I can sympathize with your hesitation to install a CMS. There is a lot to learn and to be responsible-for. Plus, since you are a programmer, the tempation to extend it will be very strong. Make sure you learn the CMS really well before you try to extend it (to avoid duplication).

The experience of installing and administrating a CMS will be really good for you and it will be great on your resume. In contrast, passing-up on this opportunity to gain the experience, would be unfortunate. As a programmer, you should feel honor-bound to learn new technologies, like this one. Plus, diversity of knowledge is a big step towards being qualified as a system architect.


As DougM stated, what your customer is looking for is a CMS. Although the requirements are simple, it can be quite time consuming to build it all from scratch. Here's a list of some features you will need:

  • website front-end
  • session management (to log in to an admin interface)
  • file handling or database connection
  • security (in all of the above)

If you don't have your personal code base for these things and don't want to spend too much time with this website, consider using an existing CMS. It's a lot easier and faster to implement. Also, as TimG mentioned, it's an experience for itself.

On the other hand, if you invest some more time in this project, you can build your own CMS, which may save you time for future projects.

Not the answer you're looking for? Browse other questions tagged or ask your own question.