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 singleconfiguration.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.
Deleted code is bug-free code.
— Sindre Sorhus (@sindresorhus) April 14, 2015
This results in a codebase which is 75% lighter without losing the core features we work with every day.
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!
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!