6

I have started lately discovering Content Management Systems, and I was wondering, who is really CMS for?

What I mean by that: is it only for companies, small businesses or individuals, that pays a contractor to make a website that it's users can just upload content through a easy interface.

Or is it used also by programmers, to build their own websites, projects? Would a Facebook, Twitter or StackExchange ever started by using a CMS, a very powerful one for example.

Would you as a programmer build your own "fancy" website on top of a CMS, for example like Typo3, or you would build it from scratch?

P.S To be more clear is a summary:

What I mean to begin with is, would I as a developer choose a CMS to develop a website that can be scaled with a big base of users, be stuck if I choose to start with a CMS system. What if I build a website using CMS, and the website explodes in popularity, and then I wanted to add much more functionality that I have planed, is it possible that the CMS will limit the growth, because it might have not been build for that kind of scale?

CodesInChaos
  • 5,697
  • 4
  • 19
  • 26
Eirc man
  • 125
  • 1
  • 5
  • `Would you as a programmer build your own "fancy" website on top of a CMS, for example like Typo3, or you would build it from scratch?` -- Depends on the requirements. If I don't need the capabilities of a CMS, why build on top of one? – Robert Harvey Jun 26 '12 at 19:04
  • @RobertHarvey Well I want to build a website, after seeing the Typo3 platform I was really impressed by what it can do. But I was wondering if it is just for mass websites, even that they might look kool or different, or is it also for sophisticated websites with potential of a big growth? – Eirc man Jun 26 '12 at 19:09
  • 2
    I don't know what that means. "Kool" is not a testable requirement. You'll have to look at the docs for Typo3, and see what they recommend as appropriate uses. Looking at http://typo3.org/about/, it appears that Typo3 is suitable for large and small enterprises (i.e. companies), but maybe not so much for individual websites. – Robert Harvey Jun 26 '12 at 19:12
  • @RobertHarvey Well by kool I mean, a website that could became for example, a big hit, like `pininteres`t or `stackoverflow`. – Eirc man Jun 26 '12 at 19:15
  • 2
    The technology you choose to use to develop a site has almost zero correlation to its popularity. It won't be "kool" just because you use Typo3. It *might* be kool if you leverage the features of Typo3 to implement a unified vision and strategy for assuring the site's popularity. (how's that for a mission statement?) – Robert Harvey Jun 26 '12 at 19:18
  • If you do decide to use Typo3, check their licensing model first. The open-source license they're using is a "copyleft" one. – Robert Harvey Jun 26 '12 at 19:20
  • 1
    @RobertHarvey It seems the word `kool` might not have been the write one. What I mean to begin with is, would I as a developer choose a CMS to develop a website that can be scaled with a big base of users, be stuck if I choose to start with a CMS system. What if I build a website using CMS, and the website explodes in popularity, and then I wanted to add much more functionality that I have planed, is it possible that the CMS will limit the growth, because it might have not been build for that kind of scale? – Eirc man Jun 26 '12 at 19:22
  • 1
    It's possible. The folks at Typo3 know better than I how well their system will scale. – Robert Harvey Jun 26 '12 at 19:23
  • @RobertHarvey hehe yea you are right, my question was in general though. But thanx anyway :) – Eirc man Jun 26 '12 at 19:24
  • 2
    Write is not the right one, either. – Kevin Jun 26 '12 at 19:50
  • 1
    I see your edit, but the answer is still "Yes, it is possible." It happens to the best of us; Facebook had to rewrite their original engine from scratch, because it wouldn't scale. ***It's a good problem to have.*** The chances of your website growing enough to swamp Typo3 are pretty small; if it does happen, count your blessings and hire some people to do a rewrite. – Robert Harvey Jun 27 '12 at 14:28
  • @RobertHarvey hehe thanx, that is the kind of answer I wanted to get :) – Eirc man Jun 27 '12 at 14:32
  • 1
    duplicate of [Why choose an established CMS as opposed to building one from scratch?](http://programmers.stackexchange.com/questions/140004/why-choose-an-established-cms-as-opposed-to-building-one-from-scratch) – gnat May 20 '13 at 20:37
  • 1
    I'm voting to close this question as off-topic because it is not about a conceptual programming issue. –  Dec 28 '15 at 16:46
  • So if you don't use a CMS and build from scratch do you know that will scale? – paparazzo Dec 28 '15 at 20:19

7 Answers7

13

A CMS is useful for anyone who needs to create content and put it online. In some cases, this could probably be done by simple HTML pages (some people like to use a CMS because it's "enterprisey" even when they don't need it), but a CMS is can also be used for content that changes frequently and is touched by multiple users.

A CMS can have a system of who can edit which item of content, it can set up a content review workflow, it can dynamically reference the same content item in more than one place, it can be extended with plugins for custom functionality,... A good CMS is useful to anyone who needs this level of functionality, whether or not they are programmer.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
FrustratedWithFormsDesigner
  • 46,105
  • 7
  • 126
  • 176
  • I agree, and I think that programmers can take advantage of what it has a lot more than the normal user. Wordpress specifically I have worked with and it can become something very useful and take on a look that no longer replicated the standard wordpress/cms look. I prefer this is many instances only because you are focusing on creating content and design, but not the entire management system. – kwelch Jun 26 '12 at 21:20
6

As programmers, we are probably more aware of the security risks inherent in any complex web application. So there is a whole class of "static site generators" if you want to avoid these problems: you write some code on your development machine, compile it into html (with all the navigation, css and js being added automatically) and the simply upload the static stuff.

See https://github.com/mojombo/jekyll for an example.

bjelli
  • 181
  • 4
4

I wouldn't say that a CMS is only useful for non-programmers.
Just the fact that I'm getting paid for writing code does not mean that I have to (or want to!) code every small website from scratch by myself.

If I just want the damn thing to work, without putting too much time and effort in other things than the actual content, then I use a CMS or a blog engine..
For example, I have a blog that is running on WordPress. If it ever gets as much traffic as Stack Exchange (which is VERY unlikely), then I'll probably have scalability problems and maybe I'll need to switch to something else.
But until then, it's just fine for my needs. I just log in, type some text, click "Publish" and I'm done
--> more time to slack off on Stack Exchange :-)

On the other hand...a CMS is basically a tool to build websites with content (or blogs, if you use a blog engine).
That's not what a site like Stack Exchange is. Stack Exchange is more of a web application...you can't easily do something like this with a CMS.
So if you want to create something like Stack Exchange, you have to do it from scratch because there is no ready-made platform that you can use.

Christian Specht
  • 1,863
  • 3
  • 15
  • 23
  • Hey thank you for the feedback. I know some good CMS out there that claim also to be for Enterprise, but my biggest doubt is how, that would for example affect the future growth of a website. I guess if I start something from scratch, is more modular, and it does not have the limitation of a CMS not mater how great it can be. Do you think that is correct, even if the website is not meant to be Stackexhange, but still became a big website. – Eirc man Jun 27 '12 at 14:12
1

A Content Management System is going to help anyone, programmer or otherwise, manage the content of their website. This can mean much more than HTML files--got images? Easier to organize in a CMS. Got music files you want to stream? Easier to manage in a CMS. Large files for downloads? PDFs? Reports? The CMS gives you a framework for organizing and accessing all of these.

A CMS actually makes scaling easier. Suppose you go old-school and store con your content on your server's file system. What happens when you move to a cluster--which server is your content on? Any decent CMS can be clustered and load balanced, making your life easier.

Matthew Flynn
  • 13,345
  • 2
  • 38
  • 57
  • So if for example, one person would like to make an educational website, with maybe interactive applications, and future growth, is it possible the limitation of a CMS stand in its growth? Is a CMS suited for web sites with million of users for example? – Eirc man Jun 27 '12 at 14:06
  • 1
    I know the company I work for uses a CMS for the web site which services millions of customers. It depends on the CMS implementation, though. If it's crap, it's crap. If you think you're going to need to scale, do some research and find the CMS that best suits your scalability requirements. – Matthew Flynn Jun 27 '12 at 14:53
1

I assume you are talking about CMS as combined with Web Content Management (WCM). The generic CMS can be all sorts of other things as well.

The important thing to realize is that there are (at least) two main types of CMS engines:

  1. CMS as a framework in which you write components. This is mostly for creating websites and then programmers write individual display components, reporting elements, extension workflow steps, etc. But the content and the layout is the king.
  2. CMS as a bolted-on engine to make storing and presenting textual content easy. This is a case when you have a custom application, but maybe you also have a built-in help system, which you don't want to reinvent from scratch. Or maybe some sort of forum component. This is much more about the programmer then and CMS functions are just a plugin.

There are systems for both of those approaches. You can often tell by reading the installation instructions. If the full system runs out of the box, that's usually a first type (user-oriented). If, instead, it talks about easy way to register which modules you want to show up and on what URLs, etc - it is a bolt-on programmer-oriented system.

My take on specific examples from C# world would be Kentico for the framework approach and Orchard for bolted-on approach.

1

All large-scale websites that need regular use a CMS of some sort. It may be Wordpress, Drupal, Ghost or similar - and for much larger organisations it may be a custom CMS-system built form the ground up.

Essentially, a CMS is ideal for any website that has content that needs to be updated on a periodic basis. It is not essential, it just makes the process a lot easier and user-friendly.

I use Wordpress as my preferred CMS for almost all websites I build because it allows me to make significant changes without ever having to touch the original code. My clients also enjoy Wordpress because it gives them the feeling that they are independent and free from the need of my expertise when it comes to updating their 'About' page, for example.

-1

CMSes are used by the employees of the committent, who hardly ever get to say a word in the design process, sometimes are a step away from complete computer illiteracy, and almost never get proper training on how to use it.

Some programmers know this and jump trough hoops to make things work for everybody involved anyway, some don't know or don't care, and just drop in a canned solution, skin it up a little, and run away as fast as possible.

ZJR
  • 6,301
  • 28
  • 36