Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When is it a good or bad idea to build a website with a CMS

I'm about to begin a large scale web app project. The premise of this project is it will be a destination website that aggregates content (content is to be collected with a crawler/bot that runs independently and at set intervals to index data provided from partners that have approved our technique) and displays this content to users. Users can tailor what content the platform presents them with by ranking content, in an attempt to give the platform data to determine what content the user is likely to find favorable. (Yes, I know this sounds just like stumbleupon.com)

The creator of this idea is non-technical, and he has previous experience developing websites using wordpress. Because of this, his first instinct was to call for a CMS in creating this project. My instinct as a developer that has extensive web development experience building web apps with PHP/Codeigniter, is that a CMS was never intended to be used to create such a purpose-specific tailor-made app like this -- and attempting to use one would create a lot of unnecessary overhead/clutter in the project.

I'm thinking it might be better to build a back-end interface to view/add/edit/remove content that the spider collects, since I imagine this is the only type of access/control that non-technical partners will need in this project. (possible also ban users, remove inappropriate comments on content, etc)

But what do you guys think, is there some sort of value that a CMS could provide to a project like this? Are there situations where it's a generally accepted rule that a CMS is good/bad? I'm coming from years of PHP app building using frameworks like codeigniter, and recently I've had to do work on a wordpress site -- which to me seemed like a disgusting mess of global variables, endless 'hooks' to get code to execute when/where you need it to, etc.

---- EDIT ----

I should add that an intended feature to add to all of this is users will be able to add their own content to our collection of aggregated content. Just another feature that makes me think this app is too 'unique' to be properly developed on top of a CMS.

---- EDIT ----

Another thing to add is scalability is a big concern. We want to build this to be able to handle anywhere from 200,000 - 2,000,000 - 20,000,000 unique visitors per month. That means using everything at our disposal, load balancing, memcached-caching, worker processes/servers, high-availability mysql and mongodb databases (for different purposes in our web app), content-delivery-networks, hosting asset files independently of application server, etc. I'm uneasy about giving up direct control over all of the code because in the past I've used my ability to touch everything to fine-tune any performance issues/bottlenecks.

like image 568
Casey Flynn Avatar asked Sep 23 '11 17:09

Casey Flynn


People also ask

When should I use a CMS?

A CMS solution is a better option if you're creating a large website with multiple pages, or if you plan to make changes or additions to your website down the line. That's because a CMS will make it easier to do things like edit existing pages, publish new pages, add an online store, create web forms, and so forth.

Why would you use CMS over a website builder?

If you go with a website builder, you'll need to keep paying that same provider to access hosting and other key features. If you opt for a CMS, you'll be able to move hosts, change domain names, and make other changes to your site at will. The CMS is ready to integrate with whatever systems you want to use.

Should I use CMS or build from scratch?

Speed of Development - CMS platforms are faster to build. Even a basic website can be put in a day using CMS platforms. On the other hand, custom scratch website takes a pretty amount of time in development. User Experience - CMS platform websites are built on a base, so they give you a standard user experience.

Is CMS necessary for a website?

If you're a business professional, you've likely either heard of the term CMS or currently utilize one for your organization. In fact, for any business it's an essential term if you don't have a team running your organization's website and updating it when necessary.


2 Answers

Well, most CMS out there are not only CMSs but also comprehensive PHP frameworks providing basic functionality. Having said that CMS are suitable more for websites that are content base like websites having a lot of articles. It is much easier to update and manage such sites by the users who aren't technical users. But when it comes to webApps they require much more interactions, e.g. a in a CRM application the inserts, reads, updates happen very frequently.

Others points that should be kept in mind are

1) would it be scale able if I use CMS for my app, If you think your app will grow in future, and you start building it from scratch, by the time your own piece of code would be transformed in a Framework for your app. Things will be much easy to update, adding some new functionality etc.

2) Flexibility, if you go with CMS you will have to constrained yourself in the CMS environment, What if you need a certain functionality in your website but you find nothing tailor made for that. In that case you will have to develop it your self which could take a long time than it would take otherwise.

3) Performance, CMS should be used for the purpose they are built for, a CMS will load everything it needs to function properly whereas much of these stuff you won't need for your app at all.

I would say to go with some Framework that is built to help the development process, like CakePHP, CodeIgniter, Yii etc.

like image 90
Ehtesham Avatar answered Oct 05 '22 05:10

Ehtesham


This becomes really simple when you boil it down:

Do non-technical users need to have the ability to manage the content on the web site?

For pretty much any modern-day web site, the answer is "yes". The web is now mainstream and Facebook, Twitter, Wordpress, etc. have demonstrated that you don't need to be a programmer to create/maintain web content.

Your original question says as much. So, yes, you need a CMS (a system that makes content management possible by end-users).

So your real question is "Should I build my own CMS, or use an existing CMS?". Those custom interfaces you describe above, that's content management. You're describing building a basic CMS.

--

To that question, I'll say: Making "content management" accessible to end-users is a lot harder than most programmers seem to anticipate. Even implementing a Rich Text (WYSIWYG) editor that isn't completely fragile & buggy is a monumental task.

And that's just the tip of the iceberg: permissions, versioning, workflow, taxonomy, analytics, personalization, feeds, comments, moderation, error logging, etc., etc.

These may or may not be features you need at launch, but as the web site matures these opportunities often need addressed.

--

I work for a company that makes a CMS, so I'm biased but I consider the decision to create a CMS crazy. It's complicated from a technical perspective and even more complicated from a usability perspective. As a one-man-band (or even a ten-man-band) you don't have time to create all the features that are readily available with existing CMS packages. This means it's harder to evolve the web site to accommodate new ideas or modern practices. You'll be perpetually behind and playing catch up.

My advice, find a CMS platform that aligns with your client's needs, become involved with their community and build on this foundation. It might be harder in the short-term (comprising your PROGRAMMING ideals to accommodate a platform), but it better serves your client to not be dependent on some home-baked CMS that another developer will someday inherit (and hate).

like image 27
Gabe Sumner Avatar answered Oct 05 '22 05:10

Gabe Sumner