Elgg Social Networking CMS - Review and Commentary

Described as the open source social engine which powers all kinds of social environments, Elgg, was first created back in 2004 and built to run on the popular php/mysql combination. Elgg is easily installed once a database and its proper credentials have been created.

In my test install, I created a new website at my web host and FTP'd the necessary files to install Elgg 1.6.1 to the root of my new site. One thing that was different in this install compared to others I've tested is that Elgg requires you to create a data directory the system uses to store uploaded files, profile icons and photos that sits outside the root of the website.

Not a big deal, just something to note as you follow Elgg's installation documentation.


Once installed, I was perplexed with a sparse login page that sported basically a blank page and login box. I retraced the installation steps in my mind trying to remember if I had created an administrator account. If you're like me, you don't necessarily read all the documentation every time. Finally I registered as a user just to see what would happen. The message “You have successfully registered for New Elgg site.” appeared. Then, after logging in, a new message told me that my administration account had been successfully created. Of course, I could have saved some angst on my part by actually reading in the configuration documentation that the first user account is the
administrator account. Lesson learned.

Elgg presents the administrative account with a site management interface that is very gray, but decently organized. As prescribed by its creators, I navigated to the tools administration page and enabled all of the widgets provided by the typical installation which includes such standards as pages and blogs, but also niceties like captcha, notifications, content reporting, garbage collection, and validation emails. From the left navigation bar in the administrative area, all
management functions are easily accessible. And, while it's not eye-grabbing, the interface is functional and easy to understand.



In addition to my administration account, I created two more user level accounts. Mike1 was added via the administrative panel and Mike2 was created by a typical front-end registration on the site itself.

Both methods worked as advertised and each member was provided a dashboard from where they could add and edit the amount of information displayed. The default dashboard comes blank but the site administrator has the option on determining which of the base widgets are pushed out to the subsequent dashboard of each registered user. I can see where an admin would want to push basics out like pages, friends, activity, and the file widget just to get things started. The individual member has full control of their dashboard so they also have the privileges of removing widgets they don't want as well. As Mike1, you can see that I added the pages, friends, activity, group membership and wire posts widgets. What's nice about this system particularly is that I can click Edit page and simply drag the /widgets to the appropriate channel position, save, and I have new widgets to work with. If you've worked at all with WordPress, the channel management feature in Elgg will feel familar.



To add a new page, a member simply navigates from their Pages widget to the More Pages link. This link goes to the Pages home where you can add a new page and/or edit your welcome message that will appear on your pages home.

You can also reach your pages by navigating the top navigation bar from Tools > Pages to arrive at the pages home as well. Regardless of which path you take, you arrive at a nicely organized interface that offers a clean, basic method to add content pages. Pages have the ability to accept comments from other members, have sub-pages,
as well as the ability of the author to set read/write permissions.

I do have one gripe regarding the editor. I use the tab key a lot to advance to the next text field or box, but in Elgg's editor I have to depress the tab key 16 times to move from the page title text box to the body of the page. Then five more times to get from the body to the tag text box. This feature I could definitely live without.



The blogging widget also comes with the default Elgg installation and in my test, I created one blog entry for users, Mike1 and Mike2. Neither could see the other's blog from their dashboard under the Activity widget until they either became friends or visited the homepage of the website where the widget Latest Blog Posts displays all of the latest posts from members. Each member is provided an interface that includes links to not only their blog but to their friends blogs, all site blogs, and of course, the ability to write a blog post link.

If the user decides to write a blog post, they will find that the new post interface is nearly identical to the new page interface. The only difference I could see is that when I user creates a new page, edit permissions is assignable and with blogs, only viewing levels can be assigned.

One feature that I either wasn't able to figure out or isn't available with the default installation was how to add the
blog widget to either of my user's dashboard. It would be nice to have something similar to that of the pages widget only for blogs.

Currently, at least from the experience I had, you can only access your blog homepage from the top navigation bar going from Tools > Blog. If you know how, please comment and let me in on it.


In addition to the page and blog widgets, the default installation provides recent bookmarks, twitter integration, group membership, activity, wire posts, and file management. All performed well and I was especially fond of the wire posts where you can make a quick post similar to that of Twitter and tell everyone who is a member of the sight special news or make an announcement. Even though I focused mainly on the default widgets, there is a slew of add-ons available at the Elgg community site offering everything from sitemaps and polls to Facebook, MySpace and AdBrite integration.

I like simplicity and this seems to be a running theme throughout Elgg. While my review was focused more or less on the management of content that the user creates via pages, blogs, I only scratched the surface on my test of Elgg and look forward to working with it more to see what it can really do.


  • Comparable to some commercial offerings.
  • Easily extensible with a vast collection of widgets.
  • Easy to navigate and administrate.


  • Tabbing in the editor was tough to work with.
  • Look and feel of the default install fell flat.
  • Remember, the first account is the administrator account.

Website: http://www.elgg.org

About the Author

Based in the Pacific Northwest, Michael Childress has been a system analyst and writer for 10 years. He currently writes for CMS Critic and is a full-time analyst.