Social portal platform Elgg pre-view

On request on commenter, I have taken a look in Elgg platform. We are developing separate inhouse platform now, but it is always nice to look at different code and see whats made correctly and what can we question.

Let’s see how this Elgg does and compares to others.

The first impression is Elgg platform significantly resembles drupal with some facebookish look. The platform itself is hook based, though plugins use more user-friendly system than drupal (which I hate). The comparison to both Boonex and Drupal is quite obvious.

The page builder, which builds pages from widgets, is both good and bad thing. Good in terms of usability and reuse, bad in terms of performance on heavy sites. The Elgg shares with boonex profile fields builder as well. I would say plugins would be a better choice for extending profiles.

Negatives

1. Elgg uses myisam tables for storing information. These tables are faster, though you cannot create triggers/stored procedures or use foreign keys to ensure data integrity.

2. Setup process still needs some fine-tuning in Elgg platform – you have to enter information correctly at first time. It is written at once into files/database and if you mess up, you will have to fix it directly as site will not work. That is a big problem in Elgg, also some of the setup points should be simplified, including the data directory location. Note: system is broken if you put data directory inside of your web directory. 

3. Page/profile builder would need to be reconsidered.

4. Discussion system is quite weak compared to drupal. Though nothing can be worse than boonex.

5. No custom routing. Lots of links are hard-coded. The www root is hardcoded badly in fact, with little or no checking when setting it up.

6. Also, too much configuration stuff is loaded from mysql database. There should be a pre-generated config file somewhere for better performance.

7. Requirements for system is quite specific. Not everyone uses php 5.2.x and sometimes you have to leave older versions of php to maintain legacy code. 

Positives

1. I simply like the way plugin system is done. It is more elegant than drupal one, simpler, though powerful enough.

2. Templating is definitely better than Boonex. The whole coding of modules separates DB, control and display code nicely, which is a good thing.

3. Elgg has potential on avoiding drupals problem with amount of modules needed to construct working site. It’s maybe me, but I hate systems which consist of smallish modules that do only small parts of useful task separately. Like 3-5 modules to make audio upload and play work in drupal nicely (not exact numbers, remember from times we tried to do something useful from it a year ago).

4. Also, data model where you do not have to extend database schema and work on existing set is (possibly) a nice thing. As you have less things to worry about. 

Overall

Elgg has lots of potential to be better than many of the choices. It does not cut to be replacement for custom in-house developed social system, though. Some things have to be added natively, like custom routing, which would allow using elgg as replacement for allready existing systems. This is kind of a must to have for us.  Also, the performance of system is questionable. 

I still recommend to give it a try, especially if you considered boonex as choice.



Comments

  1. Hi there,

    I just had a look into the code of PeopleAggregator (http://www.broadbandmechanics.com/itstories/story$data=stories&num=1&sec=1#) and now I’m wondering if you by chance did the same and if so what your conclusions are.

    Cheers,
    Ben

    • Sorry Ben, not yet. Though from the demo they have in the site I see that it is not polished up. For example, they use different uri structures for homepage and group pages. It reminds me on boonex somehow.
      Which is not a good thing.

  2. Okay.
    I don’t want to bias your opinion beforehand, but if you want to i’ll share my insights concerning the code and other findings, though they are quite ‘formal’ or reviewish, i for myself haven’t worked with the code itself yet, but a colleague has.

Speak Your Mind

*