This is and old(er) post I managed to save from my old blog, which I deleted. Accidentaly. Which makes an excellent case for back-ups.
In the past few weeks, there has been a rather big amount of discussion about “Joomla’s Future.” Or, to be precise, there were a lot of arguments without anyone knowing what the future would bring. Apparently, a road map is a lot to ask for. And no, a blog post with a few general statements genre “We want to increase the adaptation of the Framework and the CMS in the next three years” doesn’t count as a plan for the future.
In between all my twitter rants (Change, bah!) I have also been doing some thinking about the future of Joomla – like I’m always doing.
While I am no developer, I’ve got a hand full ideas to “improve” Joomla in the future. They might be bad, impractical or “I might not get it”. I don’t know. But I wouldn’t be true to myself if I didn’t blog about them.
I am going to start with the first concept that interests me the most – the CMS. But not the CMS in it’s current form. Wait and read.
Joomla, the Application Platform
Joomla is, and has always been a great CMS. No wonder Site Builders who demand more than a blog flock to it. But sometimes, parts of Joomla can get in the way for Site Builders. By becoming “less”, Joomla could become “more”, for more people.
Currently, Joomla comes as a package deal and there is nothing a Site Builder can do about it. Some extensions that get in the way can never be uninstalled. Banners. Weblinks. Contacts. For some, even com_content is something they never touch.
In my vision (which I share with others), being able to “not install” those extensions would make Joomla a powerful Platform. It could be the foundation of a CRM solution, an ERP, e-commerce… It can be all those things now, too, but you’d be stuck with features you didn’t use.
The solution for this problem (* I’m not a developer, nor do I claim my solution is “law”) would be Joomla as an Application Platform. If you’re freaking out a little for reading “Platform”, relax. Breathe. Let me explain.
The next “Joomla” released shouldn’t be a CMS, but an “Application Platform”. We would release a Joomla with only the core elements of the CMS. The installer, the libraries, user management, the menu system. Anything that could be removed, should be. What’s left, would be an “Application Platform” – a “Platform” which you could use to install the extensions, templates (and why not libraries) that the Site Builder needs for a project.
Except, they wouldn’t be Site Builders anymore. They would be “App Builders”; a brand new market Joomla could tap into when playing it’s strengths: Offering a solid framework for developers to code against; combined with the ease to install them as we have now. App Builders. Let that one sink in for a while.
There’s a lot of potential there; just think about it. People could use the AP to build an e-commerce site, a CRM site, a Project Management Site or even a back-up platform for applications that are a PITA to back-up (It’s been done before. Joomla + Akeeba Backup = powerful way to back-up WordPress, Prestashop, or custom apps…). They could build anything they want.
What about the CMS?
If you’re heading to the comments right now to post “WHAT ABOUT THE CMS !?”, relax. I love the CMS. I work with it every day. It’s our most popular product.
In this “Application Platform” future, the CMS would still exist – only in a slightly modified form. Instead of being the “default”, the “CMS” would be a distribution of the “Application Platform.” – the Core with all components added to them. This distribution could then be offered like the current CMS. The users would be none the wiser.
Time to strip.
To make this work, we would need to strip the CMS to it’s core. Or we could rewrite the CMS from the ground up; whichever is more convenient. I am not a developer and I don’t know what would be the best approach – I’m sure there are bright minds out there with solutions in mind.
The goal would be to separate all the “components” that make up the CMS. On the one hand, we would have the Application Framework, the “Core”. On the other hand, the components would all be developed separately.
This would allow people to work on what they want to work on. It would also create a sort of “natural order”. If, for example, there is little interest in the “Banners” component and no-one is interested in maintaining it; development could be stopped instead of forcing developers to maintaining it.
This would require a different way of working, I suppose. I almost wrote “I am not sure if JoomlaCode is up for the task”, but then again… Joomlacode is a relic from the past. A ruin, almost.
Embrace the Future. Or the “now”. Whichever works for you.
In order to create a modern CMS, you need modern tools. The main tool Joomla is using right now isn’t helping. If anything, it’s getting in the way of user contributions. Joomlacode is old, complex and not very user friendly (I think they invented the concept after Joomlacode was built).
Many Joomla people have got issues with Joomlacode to the point they’ve given up on contributing.
But wait, don’t we have a Github repo? Yes, and no. It’s there, but Joomla Logic dictates that when you make a pull request, you need to descend into Joomla Code, Log in (if you can), try and find the tracker (Bring your GPS) and then create a tracker item which links to a pull requests.
All sorts of excuses have been made, including “it doesn’t fit in the way we work.” But if “the way you work” gets in the way of collaboration, isn’t it about time that YOU adapt your way of working, instead of forcing ancient rituals on people eager to contribute? Think about it. I’ll wait. But don’t take too long. Joomlacode is a scary place…
It can’t be done! Hah!
If you’re thinking this – creating a lightweight version of the CMS, separating components from the core – can’t be done, I’d like to present you two pieces of code that will convince you of the opposite. Although one of them is EOL, I loved the concept and the fact that it actually worked a lot.
Exhibit A: Square One
Square One was one of the rare Joomla Distributions. Jeremy Wilken created a version which allowed people to uninstall core components; which allowed for the simple creation of a lightweight Joomla. Although Square One is no more, it will forever live on in spirit.
Exhibit B: Joomla Lite
Some people have the strange habit to try and prove a point through code instead of endless talking. Michael Babker is one of these people. He came up with a (working) proof of concept for Joomla Lite. Joomla Lite allowed for decoupling the core components; which (in theory) allows “Application Builders” to only use the parts that they need.
Michael is a busy man, so development on the proof of concept stopped for the moment. But, again, the concept lives on in spirit.
You can find the Repo for Joomla Lite here: https://github.com/JLite-POC
Notice the folder for Newsfeeds, Banners and Weblinks? That is where the (now separated) extensions are located, so they can be installed from within the installer. The future is now!
If you feel experimental, you can give JLite a try for yourself by downloading it: https://github.com/JLite-POC/Framework/archive/master.zip
Want to tap new markets? Make this happen.
“We want to increase the adaptation of the Framework and the CMS in the next three years”
That’s great, but the CMS market is already stagnating. And the Framework, how cool it might be, is a niche product. One of the many PHP frameworks out there, might I add.
How about setting a new goal?
“By creating the Application Framework, we want to market Joomla to both Site Builders and Application Builders; empowering more people to build solutions upon Joomla.”
Think about it. How many tools allow you to roll custom applications with little to none developing knowledge? I can’t think of one. Joomla could tap into this market. If any “Project” has got what it takes, it’s Joomla.
- We’ve got the expertise to make managing, installing and uninstalling extensions / components / add-ons a breeze.
- We’ve got the knowledge to allow people to update the different components with a single click.
- There’s a big, BIG group of extensions out there that could be used to build applications.
If Joomla wants to stay on top of the game, it should change the rules. Be more than a CMS. Allow people to become Application Builders. (No, I haven’t registered that domain name. Yet.)
I am just thinking out loud, but I’m convinced that a Joomla Lite could give Joomla the boost it needs. It could allow Joomla to expand in new markets, without alienating the existing user base.To me, the Application Framework is something that could change Joomla drastically. I am not going to tell people to “Go and build it” as that’s not the open source way, but I hope this post inspires people.
You’re welcome to voice your opinion – as long as you stay civil. Passionate debates are cool, but people are passing boundaries lately and since this is my personal blog I will remove comments if needed.