I recently happened to have a client approach us to build a mobile app. What should have been a fairly quick job turned out into a mid sized development project. The reason ? They had created almost half a dozen custom components where articles could have served the purpose.
Another project was a government site serving almost 50 million hits a month. This too has something which I’d call a “blatant misuse of Joomla”. More than half a dozen extensions created for a myriad of things - PDFs, audio files, videos. Articles would have been sufficient here too.
This prompted to share some rules that I realised we had been following for a long time, but never got documented. So here’s our unwritten rulebook on building Joomla sites
Spend time thinking about information architecture
A great building needs a great architect. Similarly a great site starts with architecting the content really well. It is important to think about the types of content on the site - articles, documents, videos etc. Equally important is to define a logical grouping of content - eg: a corporate website may have case studies, blogs, peoples' profiles and product/service information. Don't be afraid to make a golden compromise between the most ideal structure and something that is more maintainable.
Understand the fantastic CMS capabilities of Joomla
Joomla does content management really well, and it is very important to understand the capabilities in depth to avoid rookie mistakes. Some of the key building blocks of the CMS are
- Articles : This is where your content lives. Each article is typically one piece of content
- Custom Fields : It is possible to create additional fields for articles. These fields can be global or category specific.
- Categories : Categories allow a nested way to store articles. An article can belong to single category
- Tags : Tags are a way to add meaningful context and provide a common thread to link articles having a similar theme/topic
- Menus and layouts : Joomla provides several ways to present categories, tags and articles to users. Get to know the menu types and what configuration that each provides
Research about existing modules, components, plugins
The Joomla extensions directory lists some really great extensions that can be used to extend the capabilities of Joomla. Take time to identify your needs, and evaluate the available extensions before you make a choice. Make sure the extension developer is active and is releasing updates to avoid being locked with an extension that is not maintained.
Evaluate if you need any custom extensions
We have seen far too many sites rush or completely skip this and go on to create custom extensions where articles would have sufficed the needs. The two examples I talked about in the beginning both had this issue. Most of the needs are addressed by designing the categories, tags and fields correctly. A few examples I have seen where custom components were created unnecessarily
- A custom component was created just because there was need to attach a PDF to each article. This is easily handled by adding a file upload / media field to articles
- A custom component was created to create a list of curated videos from youtube. This can be done by using a custom field that holds the Youtube URL
- A custom component was written since the articles also had a co-author. The co-author could simply have been a custom field.
I cannot stress enough on how important it is to avoid unnecessary use of custom extensions. They can bring in unseen and unplanned maintenance effort, some of which includes
- If search is needed, a search plugin needs to be built for the custom extension
- If tag support is needed, it needs to be integrated by a developer
Learn the Joomla menu system, layouts and overrides
Joomla supports “layouts” - this is a way to represent the same list of articles in different ways. Articles in Joomla offer a “blog layout” which shows the list with each item having an image, title and intro text. The other layout is a “list layout” which is a plain tabular list with just the names. It is possible to create another layout, say “card layout” to show the articles in a grid of cards.
It is also possible to override existing layouts in case you wish to make modifications to the layouts Joomla ships without actually touching the core files. This ensures that your changes are not lost when Joomla gets upgraded. However, it is necessary to compare your custom layout with the original after key upgrades to ensure the overrides continue to work.
Benefits of minimising extensions use
Using less extensions means that upgrades continue to be painless. Otherwise there is a lot of time spent on checking each extension's compatibility. Wanton use of extensions may compromise security and performance of your site. I have seen several sites using lot of extensions. Even unused ones left in there. If you are serious about the site it is very important to keep the site maintainable by using only the necessary extensions.
Do you have any other advice to site builders ? Please share with us and we'd be happy to include it in !
In the next part, we will cover more aspects like choosing a good host, a list of must-have extensions, security and performance.