views:

274

answers:

7

I'm building a VERY simple web hosting service that will cater to the ma and pa type small business.

Now my dilemma is whether I should built it from scratch or use an existing CMS. The CMS needs to be customisable, as I wish to build my own client. I only want the user to have to put a title and content. Everything else will be hidden from the end user.

Later on I want to be able to associate my own custom built web applications to a given page, so the CMS needs to be able to cater for that.

The other requirement is that it needs to be Java based (Groovy acceptable).

Any ideas?

A: 

I can't imagine there isn't an existing CMS that would fit those requirements. Won't do the research for you though ;-)

JRL
Yeah, my dilemma is whether my time spent researching and then learning a new CMS would be better spent just creating it from scratch. My requirements are fairly limited.
Andrew Dyster
Rolling your own is *never* as easy and quick as you estimate.
Michael Borgwardt
A: 

If you want to figure out some Java EE technology aspects or advantages/disadvantages it is better to write your own CMS just for practice.

But before you do this go through some of the existing CMS to create list of pros and cons.

All existing CMS/frameworks/whatever can't fit well your own problem but instead they are often too big to cover as many cases as the can.

One more thing to think about. Do you want your CMS to work great at Google App Engine?

Mykola Golubyev
No, doesnt need to work with GAE. I find GAE a bit too restrictive. I'll probably use Amazon EC2 for it.
Andrew Dyster
+2  A: 

You should definitely learn an existing CMS. As much as creating one from scratch will fit your needs. An existing CMS with a live community (such as drupal or django) will have sold foundations, based on the accumulated experience of others.

Doing so will help skip the common mistakes of creating a CMS, and will allow you to focus on functionality and making your product, versus building a framework.

Am
+1  A: 

Check out Alfresco Community Edition, it's java based and it's the first one to be compliant with CMIS 1.0. You can build up a web client/application on it. It has ftp, webdav, cifs, http interface.

Giacomo
+5  A: 

Even a "simple" CMS is a fairly complicated application once you start doing things like user authentication, security, scalability, etc. There are many many things you can get wrong. The major CMSes out there suffer from lots of maintenance problems and security bugs and there are a fair number of talented people working on them. If you think your CMS will be different, I suggest that it will not be. You will need to update and maintain it constantly. If you use an off-the-shelf solution you should be able to benefit from the work those other developers are doing. If you want to write your own code, consider customizing an off-the-shelf CMS or contributing new features or bug fixes.

Own CMS:

  • Total control over the features
  • Low cost
  • Easy for you to understand
  • Only you understand it and can fix it
  • No bug fixes from other developers

Off-the-shelf CMS:

  • You can simply install it, then concentrate on adding value
  • Steeper learning curve
  • Lots of hosted solutions and online help
  • Lots of people can admin it if you're not around
  • Bug fixes and security updates are released by the vendor
  • More limited in terms of customization, etc
  • Someone needs to keep on top of the updates and install them, or else the customer might be victim to a worm such as the WordPress worms. With your own CMS it's less likely that someone will create a worm just for you. (But your customers are still at risk of other security problems).

Consider the typical security issues that face every website faces: XSS, CSRF, SQL Injection, configuration errors, loose security, session hijacking, parameter validation errors, race conditions, etc. You need to handle all those cases, but the CMS vendors are already doing that for you.

As for your Java requirement, the Resin web server ships with a PHP interpreter which might allow you to deploy a PHP app in Java should you choose a PHP CMS. It should also be possible to port the PHP engine to another servlet container in a few hours (I think it's GPL).

Mr. Shiny and New
I don't think low cost is true. If you need an even halfway decent app you need to invest a lot of time (money) to get it running.
extraneon
@extraneon: well, by low cost I meant in terms of licensing additional software. Also I assume that the dev cost of the home-grown server will be amortized over multiple clients but I suppose the learning curve for a stock CMS will also be.
Mr. Shiny and New
+1  A: 

Liferay? You'll be up and running in less than 5 minutes.

Java based, Supports Groovy

If you want to diy, take a look at CMIS. (Forget it, don't diy)

3wh
A: 

I too have a similar problem.

where should i start the development of the cms (i am using struts2 as MVC framework)? what will be it's requrements on the database end?

Vetional_f