When we sat down to decide the future of ArcticDesk, we had ambitious goals. We felt that the aging version 1 framework was limiting the scope of future development. The only logical way to resolve this was to rebuild the software from the ground up. The new version needed to integrate many of our customers' ideas over the past few years, whilst still maintaining the ease-of-use that you love. It needed to be more flexible, powerful and faster - a complete transformation from the previous version.
After a year of hard work, we're excited to now be in a position where we can share our first glimpse of v2. This introduction will detail the backend changes and how our development process has matured. It forms the first in a series of blog posts, over the next two months, detailing some of the exciting new features and product improvements.
The first significant decision for the new codebase was to decide upon an appropriate framework. Version 1 used a custom framework, resulting in a lightweight application, but over time it became difficult for us to manage and extend. Therefore, we decided to use an existing framework leaving us to focus on the core application code.
After much debate and analysis, Laravel was chosen for its widespread use and active development. The framework provided a powerful, stable base for us to build upon with several well tested, community-driven components. We instantly found we were able to develop far faster than we could before.
Deciding on the PHP version requirement for version 2 was not a decision we took lightly. We were conscious to not alienate those on older versions while maintaining extensibility and leveraging the benefits introduced in recent PHP versions. As of September 2015, PHP 5.4 entered "end of life" and now no longer receives security updates from the PHP development team. With that in mind, we settled for a base requirement of PHP 5.5.9.
In 2013 PHP's original MySQL functions, which the version 1 code is based on, were announced deprecated. In order to future-proof version 2 we commit to using an ORM. The technique hugely simplifies database interaction and enables much faster development.
With the introduction of Laravel it was unfeasible to port over our existing version 1 template system, Smarty. We were keen to choose a template engine that was easy to use but had improved security features, such that we could safely allow its use in email templates. In the end we decided on Twig, a hugely popular system that met all of the above requirements and more.
We've been making a lot of changes internally to promote better development standards. This includes dependency management, automated deployment and unit tests to name a few. All in all these changes should improve the efficiency of our release process and lead to much more robust releases.
Today we've mentioned the (less exciting) behind the scene changes we've made. The next preview will focus on ticket related improvements, including screenshots of the updated UI.
Over the next few months we will be finalising the product for a public beta, and in the meantime, I hope you're just as excited as we are to hear about the new developments coming in version 2. We've set up a website where we'll be posting each preview as we release it and you can join our mailing list for v2 updates, so please stay tuned and follow us on Twitter if you haven't already!