[CentOS-devel] WebSite V2 - progress

Sat Apr 16 10:16:51 UTC 2011
Yury V. Zaytsev <yury at shurup.com>

Hi!

On Sat, 2011-04-16 at 03:12 +0300, Marian Marinov wrote:

> we have done some progress on the new web site project.
> We need your comments for the design of the front page.
> We have 3 proposals or the design of the frontpage.

Unfortunately, I can't comment on Atrium, but there is something I can
say out of the top of my head regarding the CMS. 

Unfortunately, the review you have on Atrium is incomplete and somehow
lacks consistent discussion of pro's and con's of each possible choice,
so I can't see how you can make a non-random decision here, which to my
mind is quite important to begin with.

Let me try to contribute to your effort. I guess three possibilities you
should be considering:

1) Version control based static generator, i.e. jekyll or hyde
2) All-in-one CMS stack for typical SMB websites (Drupal, CMSMS)
3) Framework-based website (i.e. Django + Django-CMS etc.)

== Static generators

Those are really nice and easy to use. Basically your whole website
represents a directory tree in a version control system of your choice
(git, of course! ha-ha, ok, you might use any another DVCS if you really
want to), where texts are written in some lightweight markup language,
such as Markdown plus an extra directory with templates.

On every push, the generator will reconstruct the website on the server
and upon successful processing switch the symlink to the new directory.

The pro's of course are that once it's setup it's easy as in "easy":

+ Your texts can be later exported or imported in whatever way
+ Resource consumption is truly minimal (static pages)
+ The web server doesn't need maintenance: static pages can't be hacked
+ All the texts are version-controlled by definition
+ Collaborating with team and external contributors is a bliss 
  (think GitHub and pull requests)
+ Every member of the group has a backup of the history of the site
  (plus you can set up additional git mirrors)

The con's are also quite obvious:

- This only works for mostly non-interactive heavily text-based websites
where you don't need server-side scripts; so no feedback forms, shops,
searches, dynamic calendars etc., sorry! (you can pre-generate stuff,
like "related pages", tag cloud etc., but it's limited)

- You can't add a comment system unless it's something like Disqus, but
then mind you that you are outsourcing your comments to third parties
(no backup, unless you do it via API, they can die at any moment)

- You can generate RSS feeds from the content that you have on every
push, but if you want to aggregate you will need some kind of script to
auto-commit stuff to your repo and repush the website; maybe better just
to install a separate planet for this (well, you have it already)

So the crucial point to decide upon whether it's a viable strategy for
you or not would be to consider how do you actually see the website that
you are about to build:

* What kind of information it will contain?
* Is this information going to be mostly static or dynamic?
* Are you willing to accept contribution from outside world?

== Content management systems for SMB

This is the most common choice nowadays, which comes with pro's and also
with con's (which most somehow don't even consider):

+ Generally free and easy to install & use (Drupal, CMSMS)
+ Administrative interface is mostly familiar to anyone you ask
+ Able to built any tree-like website structure as the generators
+ Able to augment the website with dynamic functionality
  (ratings, comments, calendars, user profiles etc.)

+/- Content versioning can be added via plug-ins
+/- Static generation (cacheing) can be added via plug-ins

- Requires a scripting language interpreter and a database
- Consequently, needs much more ressources under high load
- You will need to keep the CMS up-to-date, and I really *mean* it

So basically, in addition to the first variant it adds extra
administrative overhead, proprietary way of storing texts (in the
database) and inconvenient versioning system.

On the other hand, you can easily link any additional dynamic
functionality by installing ready-made modules or writing your own
scripts / snippets (even in the template language).

== Framework-based website

I would say, this option should only be considered is there's a web
developer among you that can sacrifice his time to develop (and maintain
in the future) a tailor-made Django instance for CentOS. 

The pro's of course are that it comes without the bloat, security and
performance problems of a swiss-knife type CMS, because it's tailor-made
to the project, but the con's are that it requires rather high
qualification to develop and maintain if you want it to be done properly
(which you do, trust me).

= Conclusion

If I were you, I would have seriously considered static generators and
Drupal vs. CMSMS [1]. I haven't seen you even mentioning the last one,
but I think you really should have had a look at it. It's one of the few
free CMS systems for SMB that I personally would actually consider ok. 

(Drupal is bloated to my liking, but you have to admit that it's
flexible and gets the job done if you invest into it, Joomla I loathe
with a passion for its brain-dead Nuke-alike design and bloat, modx
might be ok, but I haven't used it so far).

CMSMS is a rather small (compared to teh monstrous Drupal) content
management system, well maintained, often updated, easy to use &
administrate and quite flexible. 

It has a lot of batteries included, but the most notable feature is the
prominent use of Smarty (maybe not *the* most brilliant templating
language, but it's quite ok) across the whole CMS, which basically makes
it able to morph into what you'd like to see without any extra PHP
coding or touching the kernel & subsequent problems on upgrades related
to this (which is why many administrators I know always fear to upgrade
their Drupal instances).

I can set up a demo if you want, but I am under impression, that to the
people on this list such an offer would sound like an insult,
considering their qualifications :-)

[1]: http://www.cmsmadesimple.org/

This post is under CC-BY. Feel free to add it to the Atrium and make any
use out of. Hope this helps.
 
-- 
Sincerely yours,
Yury V. Zaytsev