Joomla is a universal free open-source content management system. Universality means that you can adapt it for almost any purpose. Bloggers usually choose WordPress for the blogging platform. This is a natural choice, but you can also make blog with Joomla. The basic installation provides the backbone for a working website. The page layout can be set by installing appropriate template. You can choose among thousands of free templates or pay small fee for a professional customizable design. Additional features and functionality can be added with various extensions. Depending on the extension function they are available as components, modules or plugins. Extensions make Joomla extremely universal.
The beauty of extensions is that there is one for every imaginable function or feature. Whenever you need some functionality for the website you can go to the Joomla extensions page and search for the right module. Some extensions are available free of charge, for some you will have to pay. And if for some reason you can not find a suitable extension you can modify an existing one or you can create a new one from scratch according to your needs. For this you will need to know a little about HTML and PHP but this is not a problem since both languages can easily be learned from the existing code examples.
Another nice feature of Joomla is customization of the core system. With code overrides you can change default layout of most page types. If this is not enough you can modify any Joomla file to achieve the desired functionality. For this kind of customization you need to take into account that any upgrade may overwrite modified files. But if you are a skilled web programmer this will not be a problem. Since Joomla is an open-source platform you can modify it any way you like. Most customizations can be done without knowing any of the web languages, but if you know them you will have a very easy and pleasant task.