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.
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.
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.
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.