Overview
Discover what makes Contao powerful
Contao is a mature, open‑source CMS built on PHP 8.x and the Symfony framework. At its core it exposes a declarative page‑builder, multilingual content handling, and a robust permission system that is fully integrated with the underlying database layer. The application follows a modular architecture where each feature (e.g., calendar, comments, news) is packaged as an individual Symfony bundle. This design allows developers to cherry‑pick functionality and ship lightweight installations while still benefiting from the shared core logic. The CMS is intentionally “headless‑ready” – its API layer exposes JSON endpoints for content, media, and user data, making it a solid foundation for progressive web apps or SPA front‑ends.
Declarative Content Models
Rich API Surface
Multilingual & Multi‑Domain
Extensible Plugin System
Overview
Contao is a mature, open‑source CMS built on PHP 8.x and the Symfony framework. At its core it exposes a declarative page‑builder, multilingual content handling, and a robust permission system that is fully integrated with the underlying database layer. The application follows a modular architecture where each feature (e.g., calendar, comments, news) is packaged as an individual Symfony bundle. This design allows developers to cherry‑pick functionality and ship lightweight installations while still benefiting from the shared core logic. The CMS is intentionally “headless‑ready” – its API layer exposes JSON endpoints for content, media, and user data, making it a solid foundation for progressive web apps or SPA front‑ends.
Key Features
- Declarative Content Models – Contao’s backend UI lets editors define custom data containers (DCA) that map directly to database tables. Developers can extend these models via PHP classes, injecting custom validation or pre‑processing logic.
- Rich API Surface – A RESTful JSON API, coupled with a GraphQL layer in newer releases, provides programmatic access to pages, media, and user profiles. Webhooks can be configured for external services such as mailing lists or analytics platforms.
- Multilingual & Multi‑Domain – Site structure, content, and user permissions are natively split per language or domain. The routing layer automatically resolves locale‑aware URLs, enabling seamless internationalization.
- Extensible Plugin System – The monorepo approach means that each bundle is a separate Composer package. Developers can create custom bundles, hook into event listeners, or replace core services without touching the base codebase.
Technical Stack
- Language: PHP 8.3 (strict typing, attributes)
- Framework: Symfony 6.x – leverages Doctrine ORM, Messenger, and Twig templating
- Database: MySQL / MariaDB (5.7+), PostgreSQL support via Doctrine
- Caching: Symfony Cache component, with Redis or Memcached optional
- Search: Full‑text search via Doctrine; ElasticSearch integration available through community bundles
The core is distributed as a Composer package (contao/contao), but production deployments should depend on the split bundles (e.g., contao/calendar-bundle). This keeps the runtime footprint minimal and allows version pinning per feature.
Deployment & Infrastructure
Contao is intentionally lightweight: a single PHP entry point (contao.php) and a writable var/ directory for caches, uploads, and sessions. It runs on any LAMP stack that satisfies PHP 8.3 requirements. For scalability, the CMS can be deployed behind a reverse proxy (NGINX/Apache) with HTTP caching enabled. Docker images are available on Docker Hub, and the community provides Helm charts for Kubernetes orchestration. Horizontal scaling is achieved by sharing a common database and cache layer; the stateless nature of Symfony services means that multiple worker nodes can serve requests concurrently.
Integration & Extensibility
- Event Dispatcher – Every core action (e.g., page rendering, form submission) emits events that plugins can listen to.
- Service Container – Custom services are registered via
services.yaml, allowing dependency injection and overriding of existing implementations. - Command Bus – Contao ships with Symfony Console commands for cache clearing, migrations, and cron job scheduling; developers can add their own CLI utilities.
- API Hooks – OAuth2 and JWT authentication are supported out of the box, facilitating secure integration with external APIs or microservices.
Developer Experience
Contao’s documentation is extensive, covering installation, configuration, and advanced customization. The community forum and Slack channel provide rapid support, while the official website hosts tutorials for building custom bundles. The codebase follows PSR‑12 standards, and continuous integration is enforced via GitHub Actions (CI badge visible in the README). Because each feature lives in its own bundle, code reviews are focused and merge conflicts are minimized. The monorepo structure also simplifies dependency management: a single composer.json pulls in all necessary bundles, while developers can override specific versions for testing.
Use Cases
- Enterprise Websites – Multi‑domain, multi‑language sites with granular user permissions.
- Agency Portfolios – Rapid deployment of client sites using the same core, with custom bundles for each project.
- E‑Learning Platforms – Integration of calendar and newsletter bundles to manage events, registrations, and course content.
- Headless CMS – Exposing a clean JSON API to power mobile apps or third‑party content delivery networks.
Advantages
Contao offers a blend of traditional CMS familiarity and modern PHP practices. Its modular bundle architecture keeps installations lean, while the Symfony foundation ensures high performance and maintainability. Licensing is permissive (MIT), allowing commercial use without royalties. The strong focus on data protection and SEO readiness gives developers confidence that the platform will comply with GDPR and search engine best practices out of the box. For teams that value a stable, extensible backend with a vibrant community, Contao remains an attractive choice over more monolithic CMS options.
Open SourceReady to get started?
Join the community and start self-hosting Contao today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Leantime
Project management made simple for neurodivergent teams
Luanti
Open‑source voxel engine for building, exploring, and modding
Genealogy
Build and share family trees with a modern PHP stack

Postfix
Self-hosted apis-services
Traq
Self‑hosted PHP project manager for issues and milestones
PluXml
Lightweight flat‑file CMS for portable websites
