There are many hard and risky decisions that need to be made when starting a new open-source project. We wanted to share with you how for OroCRM one of the best decisions we have made so far is selecting the Symfony2 framework to create our vision.

Our Story

Oro's founders spent 5 years building and designing the Magento eCommerce product. During our years at Magento we worked with thousands of companies. As we did, we learned that there is a gap in Customer Relationship Management tools. There was no tool in the market that allowed businesses to manage both their B2C and B2B customers in one system. Moreover, there was no open source solution that allowed businesses full flexibility and control over their business applications. After leaving Magento we started working on OroCRM, an Open Source Customer Relationship Management application that addresses the needs of small and medium businesses. OroCRM is specifically designed to fill the CRM gap in the multi-channel and eCommerce space. When we started designing our new application we looked for a platform that would give us the right starting point, as we did not want to recreate basic back-office features like, User Management, Global Record Search, Data Audit, Permissions Management (ACL), etcÉ We were surprised that no such platform written in PHP existed. We decided in parallel to creating OroCRM, we would also create a Business Application Platform (BAP) that would include these basic application building blocks. And thus the Oro Platform was born. We are happy to share that aside from our application, Akeneo, the open-source PIM application, is already using the Oro Platform to create their application and are actively contributing back to the platform. We also know of many others building business applications for internal company use, or product commercialization.

Choosing Symfony2

Having developed in PHP for the last 10 years, we were committed to it as our programming language, but wanted to find the right framework to build our new vision. We quickly fell in Love with Symfony2 and the choice was made. Symfony2 is easy to use and develop with. The framework guides the developer to write code in a clear and straightforward way, which helps to assure we maintain a consistent development approach in a large project like Oro. The framework is mature and utilizes the right design patterns for fundamental components. It is flexible, configurable and extendible with a very powerful bundle based modular model that allows us to easily introduce new functionality as well as customize and extend existing capabilities. Because performance is key for Oro, we benchmarked Symfony2 against some of the other frameworks on the market and found it to be one of the faster ones, and with all things considered not as greedy as one might expect.

There are a plethora of developer resources and documentation to get started with Symfony2, which makes it easy to adopt, and our developers learned the framework quickly, writing code within just a few days. With so much on the line in terms of time and investment that goes in to building a new product we needed a framework that would be continuously supported and developed for years to come. With Symfony2 being backed by SensioLabs we know there is a strong company that supports this project and is committed to its success.

Community

For any open-source project, having a large and vibrant community is critical to success. We were amazed by the ecosystem around the Symfony2 project and are looking forward to collaborating and contributing back to it. We were also impressed with the level of some of the 3rd party vendors like BeSimple, Liip, Doctrine, Friends of Symfony and KNPLabs and are using some of their bundles in Oro. We also hope that Symfony2 developers find opportunity with OroCRM and Oro Platform, by either, contributing code, developing new features and extensions for OroCRM or building new applications using the Oro Platform. We are in the process of finalizing our contribution process and working on our extension market place that will allow developers to list their extensions and their applications. One aspect that we need help with right away is documentation, so if anyone is interested in helping please feel free to contact us at info at orocrm.com.

We are happy to be a part of this community and are looking forward to helping it grow and succeed.

Thank you and stay open!