Elgg Documentation (master)

Elgg (pronunciation) is an open source rapid development framework for socially aware web applications. It is a great fit for building any app where users log in and share information.

Features

  • Well-documented core API that allows developers to kick start their new project with a simple learning curve

  • Composer is the package manager of choice that greatly simplifes installation and maintenance of Elgg core and plugins

  • Flexible system of events that allows plugins to extend and modify most aspects of application’s functionality and behavior

  • Extendable system of views that allows plugins to collaborate on application’s presentation layer and built out complex custom themes

  • Cacheable system of static assets that allows themes and plugins to serve images, stylesheets, fonts and scripts bypassing the engine

  • User authentication is powered by pluggable auth modules, which allow applications to implement custom authentication protocols

  • Security is ensured by built-in anti CSRF validation, strict XSS filters, HMAC signatures, latest cryptographic approaches to password hashing

  • Client-side API powered by asynchronous JavaScript modules via RequireJS and a build-in Ajax service for easy communication with the server

  • Flexible entity system that allows applications to prototype new types of content and user interactions

  • Opinionated data model with a consolidated API layer that allows the developers to easily interface with the database

  • Access control system that allows applications to build granular content access policies, as well as create private networks and intranets

  • Groups - out of the box support for user groups

  • File storage powered by flexible API that allows plugins to store user-generated files and serve/stream them without booting the engine

  • Notifications service that allows applications to subscribe users to on-site and email notifications and implement integrations with other their-party services

  • RPC web services that can be used for complex integrations with external applications and mobile clients

  • Internationalization and localization of Elgg applications is simple and can be integrated with third-party services such as Transifex

  • Elgg community that can help with any arising issues and hosts a repository of 1000+ open source plugins

Under the hood:

  • Elgg is a modular OOP framework that is driven by DI services

  • NGINX or Apache compatible

  • Symfony2 HTTP Foundation handles requests and responses

  • RequireJS handles AMD

  • Laminas Mail handles outgoing email

  • htmLawed XSS filters

  • DBAL

  • Phinx database migrations

  • CSS-Crush for CSS preprocessing

  • Imagine for image manipulation

  • Persistent caching with Memcached and/or Redis

  • Error handling with Monolog

Examples

It has been used to build all kinds of social apps:

  • open networks (similar to Facebook)

  • topical (like the Elgg Community)

  • private/corporate intranets

  • dating

  • educational

  • company blog

This is the canonical documentation for the Elgg project.

Continue Reading