With so much discussion going on regarding SuiteCRM 8.0 we wanted to collate information into an official thread.
The aim is to address points our community has raised. We would like to use an informal “Ask me Anything” format so that everyone can ask questions about the architecture and the structural changes. This thread will also allow us to communicate key information effectively to the whole community.
As you are aware, we are currently in active development of SuiteCRM 8. Our full-time development team have been busy building SuiteCRM 8 but also experimenting with a wide range of solutions to verify our thinking and ensure we are building a robust and scalable CRM application.
We are approaching the final stretch of our SuiteCRM 8 development and want to invite our community members to join us in shaping the SuiteCRM project. We are committed to open source and have held steadfast to our values of being a fully open source project: not freemium, or open core. As such SuiteCRM 8 has followed our design principles:
Always Open Source
We will never compromise on our belief that open source is the only way to give our users full control of their data and business solution. 100% of our code is freely available with no license fees or vendor lock-in.
Users have the Power
We want anyone to be able to pick up SuiteCRM and tailor it to their business needs, processes and users by providing an intuitive, self-serving, easy to customise product which requires minimum technical knowledge.
Extendibility is our Foundation
Every aspect of the product’s architecture can be extended. Providing a scalable and robust framework that customers, businesses and developers can depend on to build inspiring and custom-fit solutions.
Build and Nurture a Passionate Ecosystem
We understand the importance of a strong and healthy ecosystem that supports the adoption and promotion of SuiteCRM. The product must be easy to integrate with and promote innovation within the community.
I want to thank you again for all your interest, support and contributions to the SuiteCRM project. Together we will build the worlds most adopted CRM application.
Q: What new things are to be expected in SuiteCRM 8?
There will be fundamental changes to the UI and a new core framework. The development of the new core framework will be iterative throughout the SuiteCRM 8 lifecycle…
Angular 8 UI
This is probably the biggest change that is immediately visible; a re-design and refactor of the front end rendering of the application’s business logic and user journeys.
We are replacing the existing JQuery, YUI, HTML, Smarty, Xtemplate (and other front end libraries) with a much leaner and simplified implementation. This will help us to keep up to standards with general good practise isolating app logic from the UI layer. We are currently using Angular 8 (at the time of writing this) with TypeScript.
Of course we didn’t want to make such a drastic change to the layout that our users are accustomed to but we have introduced new concepts into SuiteCRM that we feel provide ease of use and centralisation of data which is important for a quick 360 view of the customer and their activities.
Suite 8 Core
From a technology perspective, the introduction of a new Core framework will result in the deprecation of all residual SugarCRM contributions from the codebase leaving a leaner and more maintainable application.
We are building the new Suite 8 core framework using the very robust and supported PHP framework Symfony utilising its extensive range of packages including: doctrine; flex; security; api platform and more. The SuiteCRM 8 core will be built in phases so that at the initial release most of the business logic remains powered by the SuiteCRM 7 framework, and with each iteration, functionality will be rebuilt within the Suite 8 core framework providing a much more powerful and performance driven architecture.
Test Driven Development
The key to a successful project is to ensure that introduction to new code doesn’t impact existing and that it’s seamless i.e. no regression issues. That is why we are introducing a new test suite for the UI (Angular) and the SuiteCRM 8 core from day one.
Backwards Compatibility Mode
Our aim is to ensure backwards compatibility as far as possible. We are dedicated to helping those transition with full support and time to prepare for the more substantial changes on the roadmap.
We are happy to announce that we will be introducing a compatibility mode that you can select by view and module that will be rendered in the new angular engine or will be referenced from SuiteCRM 7 so that teams have time and encouragement to update their plug-ins and front end customisations to typescript or to other compatible methods.
This is a bit of a misnomer as we are striving to make everything extendible as much as possible following our design values, this includes the new Suite 8 core. Our first target though is to lay down the foundations of the extension framework early on and invite the community to join in to collaborate on this framework.
I hope the above has given you a better understanding of the objectives we are tackling. This is a revolutionary step towards a more exciting experience which is focused on stability and adaptability. We want to ensure that you, the community, are on-board and that we continuously and feverishly share our passion and vision with you all for SuiteCRM to be the most adopted open source CRM.
Q: Are they going to add any JS framework like backbone.js, angular.js, Vue.js etc?
We are aiming to implement as much as we can within TypeScript utilising and re-using a number of angular UI components including ng-bootstrap and angular/cdk which provide a library of ui widgets. We felt mixing multiple frameworks would be unnecessary and would require more effort with upgrading and dependency management.
Q: Have you considered other collaborations or UI frameworks (Angular, Vue etc)?
Yes, which we took all into careful consideration but found that the licenses and/or copyright of the proposed collaborations and/or contributions were detrimental to the values of the community and the SuiteCRM ecosystem leading to an unfair and monopolised market. We also looked at other front end frameworks and felt that Angular was best suited to a large application like this, supported by a good developer community; solid and tested architecture and evident project sustainability.
Q: Will there be the ability to extend or add web components to allow better UI extendibility (like bit.dev)?
As extendibility is one of our core design principles we are ensuring that we make as many of our current ui components as flexible as possible, however at this time we are not focused on cross-platform web components but instead a library of SuiteCRM dependant components developers can re-use and publish within the community.
Q: Learning a new language can be an overhead, how will the SuiteCRM team help support developers with this learning curve?
Extremely good question which our team, including the community team, are working on together to ensure that from the get go the architecture, framework, technologies and designs are fully documented in a number of formats to encourage easy on-boarding. We do have on our roadmap to provide developers tools and an SDK that will encourage developers to utilise the new framework.
Q: Where is the public repository? Where will it be hosted?
We are still ironing out certain fundamental aspects and POCs (proof of concepts) before publishing our code to our GitHub repo.
Q: What Open Source license will it adopt?
We plan to release this as AGPL3.
Q: How much of the core will be changed (i.e. customisations in listviews, logichooks, jobs in the scheduler etc)?
The core business logic of SuiteCRM in 8.0 will still remain in SuiteCRM 7 (legacy) framework which will be accessed via the SuiteCRM 8 core. The SuiteCRM 8 core will act as the middle man between the rendering engine (Angular) and data which has been pre-processed by the SuiteCRM 7’s business logic including your logic hooks and customisations.
The long term goal for SuiteCRM is, with the community’s collaboration, to replace the existing codebase with some that will provide the same level of extendibility whilst being fully tested, documented and more importantly following best practises.
Q: How will data migration be handled?
As described above, the fundamental of the back-end will rely on the current SuiteCRM 7 entity mapping, so if we were to add any new database tables they would be prefixed to highlight as specifically for SuiteCRM 8’s mapping. We are aiming to keep the difference minimal and provide any tools to assist with data migration.
Q: Is there anything, as a user or developer of SuiteCRM, that we can do to prepare for SuiteCRM 8.0?
Not at the moment but there will be once alpha comes out! We will be setting up user groups to discuss one of the most important aspects of SuiteCRM: the extension framework. We want to hear from you. We want to know what you like and dislike about the existing framework, what other application’s extensions frameworks you might like to see in SuiteCRM so we can further explore how to make SuiteCRM an easy but powerful platform to build your solutions on.
Q: What steps are being taken to resolve existing fundamental pain points in SuiteCRM 8.0?
We are working in phases to ensure that there is enough time to transition from one big change to another. Since our community is so large we anticipate that some members would be apprehensive to dive straight into a backend framework that broke larger areas of backwards compatibilities. This is why we decided to tackle the front end framework and develop Suite 8 core to act as a buffer between old and new.
With this intermediary step we can still utilise older functionality from SuiteCRM 7 whilst working on replacing them with minimum disruption. Now some of the pain points can’t be resolved by a middle platform and some of them will have to be prioritised on the effort to implement in the older framework or, just accept that using the new technology would be better in the long run.
I’ll highlight a few of the pain points we have identified and will be tackling: multi-database and platform support, this including containerised setups and official SuiteCRM image; interfacing certain areas of the system like search engines and email setup; and re-factoring the upgrading aspects.
Q: What API will SuiteCRM 8.0 support?
The current V8 and V4 API will still be supported in 8.0. A new API will also be introduced in SuiteCRM 8, specifically aimed at optimising the platform for the new UI. For this we have made the decision to focus on a GraphQL API but by using API Platform. The biggest benefit of a GraphQL vs REST API is the flexibility to call only the required information (fields, entities) needed using the query language which will link in multiple entities for a single call. This will help save on those annoying round trips for related resources and over fetching of data that isn’t needed thus improving performance.
Q: What is the SuiteCRM 8.0 timeline?
Our team are currently working hard to provide an accurate roadmap for the SuiteCRM 8 release. We are currently focused on delivering a SuiteCRM 8 Alpha Q2 2020.
We are looking to have another major SuiteCRM 7.x release before 8.0.
Q: How can we contribute and collaborate?
The community team are working on a number of initiatives to increase direct and frequent communication. This includes developing a clear community backlog, strong feedback loop, including our partners, conducting interviews, surveys and advocacy programmes.
At the moment the chance to collaborate is here, so please share your ideas and suggestions. All of these collaborations will be added to the community backlog for review.
We would like to end on this note. This isn’t a closed topic and we encourage discussions and questions but do keep it productive and respectful as we know making big directional decisions can be controversial. We will do our best to provide answers to as many additional questions as possible.
Added on 4th May
Q: Are you planning to release 8.0 as a “preproduction” version for development, or is 8.0 going to be production-grade and ready for implementation/upgrading?
SuiteCRM 8.0 will be a full production release of SuiteCRM.
Q: You will inject Angular directly as View layer or will implement by Twig template engine?
SuiteCRM 8 will utilise Angular directly as the view layer.
Q: Will possible using the SuiteCRM 8 with API Platform as Headless CRM ? (that means custom applications based on API Platform + Core ) without interact with Angular UI but can work only by API in other applications and there can be created the views layers that v8 can stay in position as middleman or heavy lifter.
The new API will be like any other API, and could be used with other applications. Therefore this will be possible
Added on 10th June
Q: You said V8 would, at first, use V7’s core to do the heavy lifting. Should we expect this to mean an additional performance hit until V7 can be left completely?
SuiteCRM 8.0 will be dependant on the SuiteCRM 7.x in many areas. This will allow for backward compatibility to work in a lot of areas, allowing us to focus on particular pieces of functionality/aspects in a phased approach to implement the SuiteCRM new core functionality. Performance is a key metric throughout our current development which we consider both the new and existing code base with the aim to improve and not cause deterioration of performance.
Q: Since this is a significant change, even with commitment to backwards compatibility V8 probably can’t support all customizations that were possible for V7, at least not without changing the customizations codebase. What do you expect to be the first non-supported V7 feats, i.e. what kinds of customizations must be upgraded most urgently?
There will be a few areas of SuiteCRM 8 that will not function in backward compatibility mode, yes but these will be primarily UI customisations in particular: the top global menu, sidebars and footer - also the login screen. There will likely be other areas that will not convert to the SuiteCRM 8 views, but it will be possible to run most if not all main and custom views in backward compatibility mode.
The SuiteCRM and Community team are working together to provide as much transitional documentation as possible to help our users and add-on developers to anticipate what will be affected as well as tutorials on the new UI framework and language.
Q: Implemented will Symfony 4.4+ ? or i hope for Symfony 5(means Symfony 4.4 without deprecated code) because the development will take few years and for this time will version 4 outdated
At the time of writing active development is using Symfony 4.4, where possible it will be written with the ability to upgrade in mind. We are of the opinion that adapting to Symfony 5 will not be large undertaking. Our key driver is to use have a stable and maintainable codebase, Symfony 4.4 LTS offer the long term stability we need for now but this under constant review.
Q: SecurityGroups will there as full usable part or will still need proprietorially software if you’re middle or bigger company.
All Security and Access roles will use the existing SuiteCRM 7 framework as is. We would be looking at each area of the new SuiteCRM 8 essential functionality (like access roles etc) in a phased approach to ensure that any new functionality introduced meets our users needs and is robust.
Q: Will current buggy PHPMailer v7 displaced by Symfony/Mailer in v8?
There are no current plan to replace PHPMailer in 8.0 as this moment in time. The SuiteCRM 8.0’s aim is to introduce the UI framework utilising the existing SuiteCRM 7 codebase and we are continuously assessing what areas of the older code we feel the need to replace with SuiteCRM 8’s framework. Mailing as this moment is utilising the existing SuiteCRM 7 but once we look into these areas we have the opportunity to evaluate what technology would be best.
Q: If you posted this informations about V8 here, should you create new post https://suitecrm.com/about/newsroom/news/ 3 that can know whole world whats will going on in alfa version?
This is of course is public so currently the world is able to view this but yes, we will in fact provide a blog post. We felt this was a good place to begin with so we can have the interaction with the other community members.