Introducing Joomlatools Platform

Joomla is a powerful yet simple solution for building all kinds of websites. Despite Joomla’s humble beginnings, it’s quickly evolved into a full-fledged web platform used for massive projects.

Development methodologies in the Joomla community haven’t evolved as much unfortunately. If you’re going to be creating complex applications with Joomla, then you need to get serious about it.

Allow us to introduce you to the Joomlatools Platform, a modern Joomla stack that helps you get started with the best development tools, easier configuration and an improved folder structure.

12 Factor App methodology

Much of the philosophy behind the platform is inspired by the Twelve-Factor App methodology created by Heroku for building web apps (they know a thing or two about building complex software).

The methodology is all about codifying the best practices for building web apps with the main goal of improving work on a growing codebase.

You can see an overview of these principles and how they are applied in our slide deck. If it’s a more thorough explanation you are looking for, have a read on our developer documentation.

Improved directory structure

App
Administrator and site files are clearly separated under the app/ directory.
Config
The config/ directory allows for multiple environment configurations instead of the single configuration.php file.
Lib
Core elements are moved to the lib/ directory.
Vendor
The Composer package directory.
Web
The Platform moves all public files into the web/ directory, which prevents sensitive files from being exposed.
├── app
│ ├── administrator
│   ├── components
│   ├── language
│   ├── modules
│ ├── site
├── config
│ ├── environments
│ ├── configuration.php
├── lib
│ ├── libraries
│ ├── plugins
├── vendor
├── web
│ ├── administrator
│   ├── templates
│   ├── index.php
│ ├── images
│ ├── media
│ ├── templates
│ ├── index.php
├── composer.json

Slimmed down codebase

We removed everything that’s not required for the codebase to work in order to increase performance and security. The content management specific components (content, categories, media, finder) have been moved into separate repos that can be installed using composer.

This results in a codebase which is 75% lighter without losing the core features we work with every day.

PHP lines of code comparison

For a complete list of everything we (re)moved you can check the 1.0.0 release changelog.

Increased performance

The platform runs almost 50% faster using the same example data. And there’s more: we added a session autostart option which prevents the platform from creating a session cookie for guests. This in turn makes it possible for web accelerators such as Varnish Cache to work out of the box. Taking the page performance down to a mere 4ms!

Page load time

What's next?

On the list of the 1.1 release are a bunch of exciting features and enhancements, multi-site support, improved logging support, database migration support, … and a brand new administrator user interface!

For the complete list of issues check the 1.1 milestone on GitHub.

Dive right in!

Head over to our Getting Started guide and start building your next web application! In combination with our Joomlatools Vagrant box, Joomlatools Console and Joomlatools Composer tools, you have a powerful Joomla development suite at your fingertips.

Want to contribute? Fork the GitHub repo, read our contribution guidelines and get started!

Happy coding!