> For the complete documentation index, see [llms.txt](https://harmonycms.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://harmonycms.gitbook.io/docs/getting-started/introduction/what-is-harmonycms.md).

# What is HarmonyCMS?

Harmony is a free, open-source CMS platform based on the Symfony 4 Framework.\
HarmonyCMS has been created because we believe some things could work different than conventional CMSs.\
In HarmonyCMS there’s a lot of discussion, reflection and experience.\
We made a lot of decisions and want to give you a short overview on why we chose to do things the way we do them.

**Background**

HarmonyCMS is not like other CMSs - it's not just a simple package to install like others, it's more like a powerful and very customizable CMS to use in any circumstance as possible.

**Proof of concept**

There is no good or bad CMS, each CMS is suppose to do what they suppose to.\
However with popularity they do more and it's bad - generating security and unexpected problems.\
Taking by examples these three popular CMSs (Wordpress, Joomla and Drupal) each one, is using a lot by people but they are deprecated and having a lots of security problems.\
These CMS are also not used as they suppose to, Wordpress is a simple Blogging system with a lots of plugins to do things than is not suppose to, and so on for the other one...

This is why we developed a simple CMS, who is not focused on one simple thing. With HarmonyCMS, who is indented in multiple sub-projects, each people (developer and user) will be able to create a fully customized site and system to do what is supposed to without including useless stuff. By example if a user want to do a simple blogging system, it will be able to install only the necessary files (packages/bundles) to do that.

Developing a new CMS means using new technologies and new concept like Frameworks. This CMS is based on [Symfony 4](https://symfony.com/blog/symfony-4-a-new-way-to-develop-applications) Full-Stack and structured according to the Symfony standards.

One of the main feature of this CMS is the programming language used to is development. Just released at the end of 2016 by the PHP group, the new features proposed by [PHP7.1](http://php.net/releases/7_1_0.php) are used into this project. Twice faster than his predecessor *PHP5*, **PHP7.1.3** is the minimum required version of PHP required by this HarmonyCMS. This version has been choice because it's time to develop software using the latest features proposed as people and stop using deprecated and old stuff. But also because [Symfony 4 require PHP7.1.3 to run](https://symfony.com/doc/current/reference/requirements.html), PHP group has decided to release more often PHP version than before and for developers it's cool to learn and use some new things.

**Thought like a lego game**

Legos are pieces of different varieties to constitute an universal structure. Generally speaking, Legos are composed of pieces with different colors, with different forms to do different stuff. This Legos are finally nested in a base plate. HarmonyCMS project follow the same idea of what made Legos. It's constituted of a core (**Lego's base plate**) and *bundles*, *extensions*, *themes*(**Lego's bricks**). Users and developers are able to create their own customized final website (**Lego's structure**) including the features they choose or by using a predefined recipe.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://harmonycms.gitbook.io/docs/getting-started/introduction/what-is-harmonycms.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
