Surprisingly Simple Java Open Source CMS

Building content-driven websites, portals, intranets, and single page applications in a CMS shouldn't be difficult. We’ve prioritized the developer experience by leveraging the J2EE enterprise stack, which makes even complex integrations surprisingly painless.

Java Architecture
dotCMS Headless Content Management System

Open Source CMS Transparency with Enterprise Security

As fellow developers, code transparency is as important to us as it is to you. To this point, the dotCMS codebase is available on GitHub. Additionally, dotCMS development and support teams use GitHub to communicate features and issues, as well as manage the software development process in general, giving clear visibility into what’s happening with the core codebase.

Open Source Java CMS

dotCMS Hybrid CMS provides Content as a Service - RESTful Content Made Easy

All dotCMS content is manageable and accessible via REST APIs. This means dotCMS can act as both a headless CMS and a decoupled CMS , providing Content as a Service so single-sourced content can be created, searched, and reused by multiple external systems.

Content API Layout API

Push Publish and Static Publishing

Containerized Content Management System

Scale Horizontally and Easily Run Multi-Node Clusters

dotCMS is composed of multiple micoservices that can be scaled independently. For example, dotCMS provides a multi-tier cache implementation that can hook into Redis to offload site caching to a series of Redis servers while the search and indexing layer provided by Elasticsearch can be scaled independently and even made accessible for remote systems to query. And most importantly, the rendering layer can be driven by a large-scale cluster of dotCMS servers or by servers that are running in a shared nothing configuration.

Architecture

Node Scalable CMS

Plugin and Extend - with Our OSGI Architecture

dotCMS’s robust plugin architecture makes extending and customizing the platform easy. Dynamic OSGi plugins can be deployed at runtime and published across environments. Static plugins are used to manage configuration and to literally override and extend any file, class, feature or function of the dotCMS. The dotCMS plugin architecture also helps you to separate customizations from the core codebase and maintain a clear path when upgrading dotCMS between versions.

OSGI Plugins and CMS Extendability

Database Independent with abstracted data access

Because dotCMS abstracts away all data access, the resulting code is extremely portable across databases. dotCMS currently supports databases including Oracle, PostgreSQL, SQL Server, MySQL and H2 (recommended only for testing).

Database Independent CMS