This time our Interview Series features a well-known Joomla expert – Nicholas Dionysopoulos. His story is definitely worth a bit of your valuable time. Enjoy the interview and feel free to leave your name in the comments section.

Welcome Nicholas. First off all can you tell us a bit about yourself and your involvement in Joomla?

Hello! I’m a Mechanical Engineer turned web developer from Greece. I’ve been using Joomla! since it was called Mambo, back in 2004. I started as a web site integrator. In October 2006 I began writing a backup component called JoomlaPack, later changing its name to Akeeba Backup. The last six years I’m also involved in Joomla! core development, contributing bug fixes and new features. I’ve written entire features of Joomla! such as Joomla! Update, two factor authentication, post-update messages, the update notification icons in the administrator control panel, the Update Sites feature in Extensions Manager and the RAD (Rapid Application Development) framework.

Tell our readers and subscribers something about what you currently do? Any projects that keep you busy?

Since December 2009 I am working full time in my company, Akeeba Ltd. Our software includes Akeeba Backup and Kickstart, Admin Tools, Akeeba Ticket System, Akeeba Release System, Akeeba Subscriptions, Akeeba DocImport and Akeeba CMS Update. 90% of our time goes into Joomla!-related activities.

Was there a particular reason you chose Joomla? Have you played with any other content management systems?

Back in 2004 I was working with a friend in his IT business. I had taken charge of the web site building aspect of the company. We initially used PHPNuke to build our sites but it was rather limited and user-unfriendly. We toyed around with some other CMS, including some based on flat files, but they were still off the mark. At one point we even wrote our own sort-of-a-CMS. We were still in need of something extensible, with sensible and easy to customise layout.

Playing around with our office server, running Mandarke Linux at that time, I ran across a CMS called Mambo. It was love at first sight. It was everything we were looking for and then some. All of our new sites were now developed on Mambo. When the great fork of 2005 happened we had to choose between sticking with Mambo or siding with the yet-unnamed fork. I’m a strict believer of software freedom so I sided with the fork, given the name Joomla! a few months later. The appeal of Joomla! was that it not only provided an open, extensible system but also came without a corporate overlord. It was the quintessence of software freedom. So that was the main reason I chose Joomla! ten years ago.

There’s a pool of other CMS solutions available at the web market today. Why Joomla? Do you remember how did you get started with Joomla?

Arguably there are a lot of CMS solutions out there. There are the small ones which do not have any appeal to anyone besides hipsters for they lack widespread community support and third party software running on top of them. This leaves us with the big three: WordPress, Drupal and Joomla!. I have used all three. I personally can’t get my head around Drupal. I can see why it appeals to people, but it’s not something I’d recommend a small shop with less than 50 developers to contemplate. It’s more of a framework with a basic CMS bundled with it.

WordPress is extremely popular because of its ease of use… as long as you want to stick with a content-oriented site. As soon as you want to use it for anything other than pure content you get into the Twilight Zone: merge tags, pages which are not really pages, plugins registering hooks to override the core and do something useful, special themes which are required for properly using e-commerce applications… You end up with a maintenance heavy solution. Moreover, as a developer, I can’t overlook the fact that WordPress lacks a modern framework, using PHP constructs which were obsolete already a decade ago. It’s easy for inexperienced developers to create plugins and, sadly, it shows.

Joomla! is arguably a tad tougher to grasp as a newcomer, but this isn’t necessarily a shortcoming. It simply shows the flexibility of the solution. You can do pretty much everything with it. It has great community support and ample amounts of third party software. Even a non-developer can easily get a complicated site up and running with minimal maintenance. The best thing, however, is under the hood. Joomla! sits on top of a relatively modern PHP framework which can do amazing things. It does require you to be at least an intermediate developer to properly use it. If you’re an inexperienced coder you do have a learning curve ahead. But all said and done, Joomla! is the best compromise for site integrators and coders. It’s not too hard to use and not too painful to code for. In the end of the day it simply costs less to develop and maintain a site using Joomla!.

What did Joomla lack at that time and what were your mistakes? What suggestions/recommendations would you provide to Joomla novices who are just at the beginning of their Joomla career?

I’m assuming that “that time” refers to ten years ago. It was missing a lot of things which are already implemented, from access control to sane security defaults and from tagging to content versioning. All the mistakes I’ve done are things that are now impossible to make. Joomla! has gotten dramatically better over the last ten years. If your mental model of Joomla! is based on some outdated articles discussing Joomla! 1.0 or 1.5 I’d definitely ask you to give Joomla! 3 a chance. It could just as well be a different CMS. It actually is a different CMS. The code overlap between 1.0/1.5 and 3.x is virtually non-existent.

If you’re a newcomer Joomla! integrator I have one critical advice for you: less is more. Don’t install every extension under the sun. I’ve yet to see the site which needs more than one template, a dozen plugins/modules and half a dozen components. Always use a local clone of your site to test new extensions before deciding whether to use them on your live site. The free version of my software, Akeeba Backup Core, can help you create such a test site very easily.

As for newcomer Joomla! extension developers, I recommend reading a lot. Start by reading the extension tutorials in the Joomla! documentation. They’re a bit “heavy” but very worth your time. Then read some books on Joomla! 3 development. The one I’m currently going through is called Programming Joomla! Plugins by Jisse Reitsma and it’s very worth it, even for an old dog like me. Finally, try to read the core code. Once you can understand how core components work by glimpsing the code you’ll have reached the level of Joomla! development mastery. Just keep in mind that nine years ago I was a novice PHP developer, today I’m maintaining the Rapid Application Development framework of Joomla! called FOF. I wasn’t born a developer, I educated myself towards this goal. You can do too!

How Joomla has changed over time? Could you talk a little about how you see the Joomla CMS evolve over the years?

Ten years ago Joomla! was a hastily renamed fork of Mambo. The codebase reeked of PHP 4 code constructs, the framework was barely there, the core components offered too little options and even less flexibility for the site builders. Over the course of a decade Joomla! was practically rewritten from scratch. It wasn’t too visible to the end users since the changes occurred in small iterations without major disruptions to existing sites. Joomla! was the first CMS to come with a responsive template out of the box, got much needed access controls, versioning, tags, update system for itself and its extensions, better security features, two factor authentication and even its own modern PHP framework under the hood. The old 2CV turned into a Lamborghini and few people noticed. The transition was that smooth.

There are certain challenges ahead of us. The first major challenge is keeping up with the PHP world. The sophistication of PHP software has accelerated over the years and Joomla!’s framework does seem a little old on the tooth. This is something that’s been already discussed for Joomla! 4. Another trend we’re observing in the PHP world is developers favouring rapid application development frameworks such as Zend Framework, Symfony and Laravel. Even though Joomla! can already use components of those frameworks through Composer it would make sense to prioritise rapid application development in its own framework. Don’t get me wrong, I’m happy they included my own RAD framework (FOF), but I’ve said that it’s a stopgap, not a permanent solution.

The other challenge I can think of, I’m quite ambivalent towards it: web services. There’s a trend of web applications having a client-side interface written in Javascript (e.g. using Angular.js) and using web services to have the server process and provide the data. This is also being discussed for Joomla! 4. My ambivalence towards it has to do with how easy or feasible will it be for the average site integrator to override the look and feel of such a solution without employing a Javascript developer. Maybe Joomla! can cater to both worlds. Speaking of which, creating HTML which is CSS framework agnostic is also another challenge actively discussed for Joomla! 4.

Finally, there are the challenges concerning the end users themselves. Joomla! is in need of a workflow management. This would allow using it in more structured environments such as corporate and publishing environments where each change has to go through a specific workflow for regulatory or business process reasons. There are third party solutions to this, but a core solution would be very interesting. It would also answer the steep learning curve for newcomers: one could install and use predefined workflows for blogs, company presentation sites etc.

Can you pass on any advice about learning how to create websites with Joomla? Do you think it is necessary to ring the bell of a developer?

Most sites you’ll be called to create as a site integrator can be assembled from off the shelf extensions, free or paid. The important thing is to plan your work before even starting. Joomla! co-founder Brian Teeman has written an article on this called Joomla! begins with a P!. I suggest reading it if you’re serious on creating sites with Joomla!.

As you will see, between a huge selection of off-the-shelf extensions and template overrides there’s little need for a coder when building Joomla! sites. That’s in stark contrast with Drupal where a developer is required from day zero or even WordPress where anything that’s slightly off the beaten content-centric site requires custom code. You will only need custom code in Joomla! if you are trying to solve a unique problem or are unwilling to slightly adjust your business process to make it compatible with existing components. Even in this case there are content creation kits and component creators like K2, Fabrik and Zoo which can be used by non-developers to novice developers without hitting a wall. Considering that Joomla! also comes with a RAD framework which can be used by intermediate developers to churn up component prototypes in a short amount of time (and turn them into proper components in equally small amounts of time) the development costs when using Joomla! are substantially lower than any other PHP CMS.

There are thousands of extensions available at the official Joomla Directory. What are Top 5 extensions you can’t afford to miss out every time you configure a Joomla website and why?

I’d be a bit biased answering this question since our company writes two of these extensions. But since I’ve seen them in so many top 5 and top 10 lists it doesn’t hurt to mention them!

Akeeba Backup. It’s like Time Machine for your site. Very important when your site is up and running to keep copies of it in case something goes wrong. Extremely important during site development when things will go wrong and you don’t want to spend hours trying to undo your last change.

JCE. That’s the second thing I install on every site I build. It’s the visual content editor for Joomla!.

JooStrap. Probably the easiest to customise templates out there. Bonus: they don’t hog your site’s resources!

CMandrill. It replaces the built in Joomla! e-mail system with the third party Mandrill service. Because when I send transactional emails (user registration, subscription reminders etc) I really want them to get through to my clients.

Admin Tools. Security for your site is always important. No point in having a site if you got hacked, right?

Joomla is undoubtedly one of the most talked-about and trusted CMS out there with more and more people willing to switch to this platform. As Joomla geek, what is your piece of advice? How do you treat an automated way of website migration?

Being a geek I do migrations myself. I am more experienced than your average site integrator and even write my own scripts to transform the content. I have the know how, therefore I spend little time on this, saving me money. Bear in mind I’m the exception, not the norm.

Each site is a special snowflake and has its own needs. I recommend each person or company willing to migrate their site to consult a Joomla! site integrator. When reviewing the price tag of the migration keep in mind that it’d take you upwards of 10 hours for a small site to do it yourself. That’s why hiring an experienced site integrator actually comes cheaper. That’s true with migrations between any kind of systems, not just Joomla!.

Do you think that keeping the same design is an important part of migration from one platform to another?

No, it’s a business decision which is completely unrelated to the migration process. Every CMS or bespoke solution can be “skinned” to look a certain way. WordPress has themes, Joomla! has templates, but in the end of the day the look and feel can be customised to the T. The most important part of the migration is something that occurs long before the actual migration: evaluating and understanding the business needs. Just because you have an IRC Java applet in your old site doesn’t mean you really need one in your new site. That’s not a random example, it was an actual migration item ten years ago when we did our very first migration from a bespoke CMS to Mambo (Joomla!’s predecessor). Understand what your new site needs to offer and plan your migration using these specifications.

What are your words to end our conversation here and any message or suggestion to the Joomla lovers?

Joomla! is much more than code running on your server. It may sound a bit cliché, but Joomla! is a vibrant community of passionate people. If you don’t get to meet the people in person you’re missing out on your Joomla! experience. Luckily, Joomla! has countless user groups you can join and local events you can attend. It is interesting how Joomla!, up and foremost, can be used to overcome borders, literally and figuratively speaking. Go out there, meet other Joomla! folks and one thing is for sure: it will be to your benefit!

Thank you for giving me the chance to talk about Joomla! 🙂

Many thanks to Nicholas for sharing his thoughts and experiences with us. Hopefully, the interview will inspire our readers to pursue their own success path and get high results in work.

P.S. Left with a strong desire to switch to Joomla? Then look no further than CMS2CMS automated migration service to perform the conversion as seamless and error-free as possible. Find more detailed information here and try your Demo Migration without any delay.