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 ES modules and a built-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
modular javascript with ECMAScript modules
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.