Agiliway Wed, 17 Oct 2018 09:04:18 +0000 en-US hourly 1 What I Like About OXID Wed, 10 Oct 2018 12:11:58 +0000 Read more »]]> what i like about Oxid

Having developed a competency in OXID eShop, Agiliway has been constantly looking into advantages and disadvantages of the platform. In one of the recent articles, we have compared OXID and Magento, as the two platforms are known to target at the same audience. Now, we have decided to show this e-commerce platform from a viewpoint of a developer. Our leading OXID engineer, Oleksiy G., has told us what he likes and doesn’t like about OXID in the interview we invite you to join.

Q.: Hello, Oleksiy. Please, tell us how you started working with OXID. What motivated you to come to grips with the platform?

O.G.: Hello! What motivated me? A project to complete! (Laughing) OXID eSales is not as popular in our region as Magento or WooCommerce and I did not consider mastering it rather than another e-commerce platform. However, now, having worked with OXID for a longer time, I am eager to work with it and develop proficiency in the software even further.

Q.: Does OXID have a steep learning curve? How long does it normally take to learn it?

O.G.: Well, if you start with a real project, a month or two are generally enough. It obviously takes less to learn OXID than to learn Magento. Of course, the process of learning is not easy, as OXID eShop has poor documentation. There are no documented cases, with the help of which you can learn to resolve issues, and there are almost no explanations of basic notions. Eventually, the solution may turn out to be simple but you can search for it for a very long time, collecting tiny bits of information from various resources. And, yes, this is important to know that to learn OXID, you need to know or learn German first as all of the resources are available only in a German language. However, as soon as you understand specific features of the system, you start to appreciate tons of benefits it provides.

Q.: Please, tell us more about these benefits. What do you like about OXID?

O.G.: The software is really great. First of all, object oriented programming allows much flexibility. Of course, OXID does not have the flexibility of a framework, but I think some flexibility was intentionally sacrificed for the sake of rapid realization of an e-commerce project. You do have the ability to rapidly carry out an e-commerce project, which is highly valued on the market. In addition, a lot of features are available already in the community version, so you can accomplish much satisfying and often exceeding clients’ expectations.

Another thing I like about OXID is that the software actively incorporates latest solutions. In particular, it uses a few Symfony components and smarty templates that are not difficult to create and that actually abound in the Internet. In addition, it is great that you can create modules with the help of separate composer packets. The case is you often need the same basic modules for many projects. With a composer, you just write a list of modules you need and they are installed automatically as soon as you roll out the new project.

Q.: What makes the work with OXID eShop complicated?

O.G.: The lack of documentation is the greatest downside of the software, I quess. Another disadvantage is that a class extension system, which you need to use to create custom features, is rather tangled. The class extension system is not bad in itself, but it can be very confusing, because if your code is a bit incorrect, you will have a great dependency and it will cause much inconvenience. For example, you will have to activate modules in certain order. If two or more developers work on one project, the chances of disrupting dependencies are high. This is why coders working on the project need to create a documentation determining who does what from the very beginning.

Q.: Experts say that with its latest version, OXID eSales has made a profound change from a “dinosaur-ridden” company to the top e-commerce software, similar to Magento. How do you assess OXID eShop 6.0.0 in comparison to older versions?

O.G.: Actually, all the advantages I have mentioned relate to the sixth version. I had a chance to work with an earlier version, OXID eShop 4.7, and the difference between the two versions is really profound. The company did not only resolve some issues, it modernised the core code of the software, as many features were not possible because of the outdated version of PHP the software used. OXID 6.0.0 has much more features, but it is still transitional, because it supports the old code. New versions, which are to come, will no longer support it.

Q.: What other improvements do you expect from OXID eSales?

O.G.: First of all, they have to remake the admin panel, which is not user-friendly now. I expect they will change this in the new versions. There are some other things, which should be attended to, but they are all details, which do not make any considerable difference.

Q.: Do you share your insights with an OXID community? How big and active is it?

O.G.: OXID community is not very big and it is exclusively German speaking. You cannot find any meaningful support in another language. The community has its events to share knowledge and resolve issues and our clients have attended them (the events, again, are organised mostly in Germany). We are proud to know that one of our clients has even taken part in the community competition for the title of the largest project carried out on OXID.

Q.: Sounds great! So will you recommend OXID to other developers and customers?

O.G.: Yes, I will. OXID eShop is great for programming. Comparing to using Magento or WooCommerce you can really do much with a code here. You do not have to create hooks to have your code called under certain circumstances, and then create hooks to enable hooks… You just make respective changes in the class extension system. It is very comfortable. Thus, anyone who codes well in PHP should not be afraid of taking up a project on OXID. Concerning customers, OXID eSales allows to create great scalable projects with a short time to market and provides many useful marketing tools, so I do recommend to choose this platform for e-commerce solutions. I or my colleagues from Agiliway will eagerly assist our clients in this venture.

Q.: Thank you very much for sharing your insights with us.

O.G.: Thank you.

ReactJS, AngularJS or EmberJS – Choosing a Right JavaScript Framework for a Project Wed, 03 Oct 2018 08:48:22 +0000 Read more »]]>

Most of our clients are already familiar with JavaScript – a lightweight cross-platform   programming language used to create modern interactive designs and complex dynamic objects. Still, the mention of the JavaScript framework we recommend makes them confused. As we want to make the logic behind the provided solutions clear and justified, we have set out to briefly explain why developers need a JS framework and how the most popular JS frameworks differ.

Why Use a Framework?

First of all, frameworks give structure to the code and make it organised. In addition, frameworks have multiple pre-built functions and ready solutions, which allow to avoid hundreds of coding lines. This allows to complete a project in a much shorter term. In addition, most frameworks are open-source technologies, which means that they are supported by large online communities (at least the most popular ones), have adopted documentation, and are regularly tested and debugged.

There are hundreds of JavaScript frameworks, but it is always safer to choose the most popular ones, considering the availability of active communities and long-term support. AngularJS, EmberJS and ReactJS are three great options to choose from. Since it is not easy to migrate from one JavaScript framework to another, it is worth considering the benefits and the drawbacks of each technology from the very beginning.


AngularJS is a Google product released in 2009, which makes it the oldest JavaScript framework. It is a complete solution with a Model-View-Controller architecture, declarative programming style and strong feature set. AngularJS provides simple routing, intuitive alteration and straightforward UI design. Directives of AngularJS allow adding special behavior to parts of the DOM, thus, facilitating extension of HTML. Another great feature is dependency injection, which allows adding services to the modules or injection of mock data into components for testing.

A two-way data binding seems to be simultaneously the most appreciated and the most detested feature of AngularJS. On the one hand, it significantly reduces the amount of code needed for the creation of dynamic views; on the other hand, it hurts performance and complicates debugging.

Other drawbacks of AngularJS are its slow speed for pages with many interactive elements, complex third-party integration and the complexity of directives API.


EmberJS is another popular open-source framework used for creating client-side web applications. It has superior performance characteristics and works well with large application ecosystems. EmberJS supports two-way binding and server-side rendering. The major peculiarity of EmberJS is rooted in its guiding principle “convention over configuration”. This means that the framework can automatically infer the configuration and generate the resulting code letting developers avoid much of the routine work. EmberJS minimizes DOM and relies upon dynamic building of HTML document using a fully-fledged templating mechanism.

All these advantages come with some obvious drawbacks of the framework. In particular, EmberJS is the heaviest and the most opinionated framework of the three. Its steep learning curve is further complicated by a wealth of outdated tutorials circulating the net and a relatively small community.


ReactJS is a JavaScript library developed and powered by Facebook. It has proven to be efficient for large scale high traffic applications such as Facebook, Instagram, BBC and Netflix. ReactJS assures faster updates creating and synchronising minimal lists of update portions. It has easy learning API and interface and is great for debugging. The technology has a component-based architecture making a code highly reusable. Other benefits of ReactJS are React Native library and server-side rendering, which allows to solve SEO and performance issues. In addition, React has a JSX, a JavaScript extension syntax that allows to quote HTML and use HTML tag syntax to render subcomponents.

Despite all these benefits, ReactJS is essentially a library, not a full framework. It is focused on a View in the Model-View-Controller paradigm, while routing, data fetching and state management need to be tackled with the help of third parties. In addition, the absence of templates and the use of Components for the UI generation may be confusing for programmers who do not specialize in React.

What Javascript Framework to Choose?

As it has been mentioned, AngularJS, EmberJS and ReactJS are all good choices for your web applications in terms of communities and support. AngularJS is the most popular of the three, but it is used mostly for single page applications considering some performance reasons. EmberJS is an all-tools-included solution, but it is heavy and takes long to learn, so it is suitable rather for big long-term projects. ReactJS is lightweight and is great for building UI for large-scale dynamic applications, but this solution is not a one-stop-shop and you will have to look for other solutions to use with it. Knowing the peculiarities of each framework, you can decide which will be better for your project. Agiliway has experts and active projects in all the three frameworks and is ready to help you develop your web application using the technology you prefer.

TYPO3 East Europe: New Knowledge and Certification for Agiliway Tue, 25 Sep 2018 18:35:48 +0000 Read more »]]>

The middle of September has been a very hectic period for Agiliway in terms of travelling. While a part of our team presented our company at an exhibition stand at DMEXCO, our CTO Bohdan Dmytryshyn and TYPO3 engineer Andriy K. attended TYPO3 East Europe conference held in Romania on the 14th-16th of September. Agiliway is a recognised TYPO3 expert, actively promotes this technology and has one of the biggest pools of TYPO3 specialists in Ukraine. Thus, it is critical for us to attend such community events and stay on top of the TYPO3 news.

TYPO3 has an active community and organizes dozens of events each year: conferences, camps, sprints, DevDays, etc. TYPO3 East Europe (T3EE) is held annually in Cluj-Napoca, which is one of the biggest centres of IT industry in the country and boasts an incredibly high concentration of TYPO3 developers. The goal of the conference is to involve developers and enthusiasts to further popularise TYPO3 in the countries where it is not yet well known. Besides this, TYPO3 community events are used for the official certification of TYPO3 specialists.

TYPO3 Engineer Andriy at T3EE 2018

Our leading TYPO3 engineer, Andriy, who has multi-year experience with TYPO3 and earned a certificate of a TYPO3 CMS Integrator few years ago, used this chance to gain another official recognition from a TYPO3 community and took the certification exam. Thus, we can proudly congratulate him on successfully passing the exam and getting an international recognition and an official title of a Certified TYPO3 Developer.

Agiliway team is always looking for new knowledge and experience, and the conference was another means to gain it. We could listen to the latest TYPO3 news and plans, in particular, obtain first-hand insights into the latest TYPO3 version. In addition, having reported on a case when it took 10 years to detect and correct a bug, a conference speaker initiated a heated discussion of issues other companies and developers faced and the ways, in which they resolved them. Our CTO, Bohdan, was also invited to participate in a roundtable on the opportunities for TYPO3 education as appreciating a great learning curve of TYPO3 and a high entry level, the community seeks opportunities to introduce TYPO3 as a course in educational establishments.

Overall, the audience of T3EE conference was well-prepared and added to the quality of reports by insightful questions and comments. The attendees marked the open and friendly atmosphere of the conference, which ‘sometimes resembled team building,’ as Andriy has noted. Bohdan adds a great resume too, ‘One could perceive that people did not come here to promote their own varying interests but to share with each other and promote common interests. This is why it’s called a community and it feels great to be a part of it.’

An active member of a TYPO3 community and a leading company with a strong TYPO3 expertise in Ukraine, Agiliway is happy to share our thoughts and experience with the community and bring new ideas back to Ukraine. We are looking forward to visiting other community events. Whether you are planning your attendance too or need TYPO3 development or integration assistance, don’t hesitate to contact us.

Agiliway at DMEXCO 2018 Wed, 19 Sep 2018 09:58:16 +0000 Read more »]]>

On September 12-13, 2018 Agiliway attended DMEXCO – one of the major digital marketing conferences in the world that defines itself as ‘the meeting place for key players in digital business, marketing and innovation’. This year, the event traditionally held in Cologne, Germany has attracted over 1,000 exhibitors from 40 countries to shake the 100,000-square-meter Koelnmesse Expo space with latest products and most topical discussions. Agiliway has been one of the exhibitors presenting its mobile application for CiviCRM users – CiviMobile and other software development and consulting services we provide.

Agiliway Booth at DMEXCO 2018

Although it was difficult for other participants to match the popularity of the stands of Google, Spotify or LinkedIn, our stand has gained much attention. All day long, our team responded to questions of the enquiring visitors and discussed latest trends and partnership opportunities with colleagues. We have luckily met our existing clients visiting DMEXCO and made many new contacts. Visitors were particularly interested in our expertise in TYPO3, e-commerce and mobile development and we have even received several requests to build mobile versions of existing products.

The motto of the DMEXCO exposition and conference of 2018 was Take C.A.R.E. emphasizing Curiosity, Action, Responsibility and Experience. Thus, Agiliway had these expectations of DMEXCO in mind when planning its stand and its participation in the way that fueled curiosity among visitors, demonstrated corporate responsibility, and provided visitors with a chance to experience our products. We also cared to create little cute surprises for our visitors, so that people from around the world could taste original ‘Agiliway’ sweets.

Agiliway Fliers at DMEXCO 2018

At the same time, we did use a few spare moments to attend to the top speakers that define the course of development of the industry today. In particular, Karl Bunch, Technical Leader of Amazon Web Services, Philipp Schindler, Chief Business Officer at Google, or Nico Rosberg, former Formula 1 world champion and investor. We were also interested in presenters at Startup Village who inspired us with creative innovative ideas and interesting cases.

Overall, DMEXCO has become a good experience for Agiliway and a great chance to claim ourselves as serious industry players. We are eager to participate in DMEXCO in future years too, so that it becomes a meeting place with our partners and clients. If you want to meet Agiliway on this or another international event, please contact us for details.

TYPO3 Sprints – An Interview With Our TYPO3 Engineer Mon, 20 Aug 2018 14:43:36 +0000 Read more »]]> TYPO3 Specialist

TYPO3, a flexible and powerful open source CMS, has long become one of the important competencies of our company. Agiliway works with TYPO3 on a regular basis to provide top-notch IT solutions and carry out ambitious projects for our clients. More than that, our TYPO3 engineers are active contributors to the open source project regularly participating of TYPO3 sprints. In this short interview, we asked one of such TYPO3 specialists, Yaroslav, to share with us his experience and ideas about this TYPO3 event.

Q.: Yaroslav, please, tell us how you got engaged in TYPO3 sprints?

Y.T.: I had been working with TYPO3 for four years already when my friend and coworker told me about TYPO3 sprints. It was he who introduced me to the community and facilitated my participation in sprints. At that time, we were creating, and websites, so the sprint was meant to solve some practical issues we were facing. For example, on October 2017 sprint in Stuttgart, I teamed up with Harry Glatz to solve layout issues. We added sortable tables, ajax login state, improved the layout of a slider and font loading. In January, 2018, we have developed a lot of improvements to the layout too (More details about this sprint may be found in this TYPO3 article)

Q.: There are many events related to TYPO3, TYPO3camp and TYPO3 Developer Days (DevDays) among them. How do sprints differ from other events?

Y.T.: DevDays and TYPO3camps are great events too, but they do differ from code sprints. For example, although DevDays may host sprints where practical issues are resolved (for example, we had a sprint night during a DevDay in Malmo, Sweden), they are primarily developer oriented.

TYPO3camps are the community events, which cater to the needs and interests of the participants. They gather developers, companies and simply interested people to share and generate new ideas and make new contacts. TYPO3 sprints in their turn are designed to make the very project, not only individual TYPO3 developers better. Sprints are practically oriented and each sprint is organised to solve a certain issue or improve a definite feature. They are not necessarily code oriented, as there are sprints for improving design, documentation or education too. The TYPO3 community has a roadmap for improving the project, which clearly shows the schedule of sprints, the goals of each sprint, and their statuses: finished, in progress or planned. Thus, the peculiarity of this event is that each sprint has a clear practical goal and tangible results.

Q.: How many sprints have you attended? How does a TYPO3 sprint look like?

Y.T.: I have been on TYPO3 sprints for 5 or 6 times in different cities of Germany. Last year, all the sprints I have attended in Germany accounted for one month I guess. Sprints took place in companies, which were platinum partners of TYPO3. We assembled early in the morning, outlined the tasks we had to complete to reach the sprint’s goals, split into teams, and… coded until late at night. A friend of mine, Mattias Nilsson who introduced me to the relaunch team, says he’s too old for this thing, sprints! (Laughing). Of course, we had breaks, but everyone was so passionate about what he did, that it was impossible to keep us away from work for too long. Now, sprints are mostly remote. Each Friday, there is a call during which open issues and projects we are trying to implement are discussed, so it is even easier to join.

Q.: Please, tell more about this. How can a developer join a TYPO3 sprint? Are there any requirements in terms of experience or a level of expertise?

Y.T.: No, there are no specific requirements, just the wish to contribute to the open source project is needed. Of course, the biggest contribution is delivered by guru developers, but juniors and testers can provide valuable assistance too. Links inviting to join the sprints may be easily found on the TYPO3 website. I would be happy to refer somebody directly too.

Q.: Yaroslav, what have TYPO3 sprints meant for you? What change have they made?

Y.T.: TYPO3 sprints have been an incredible experience for me. Of course, they have affected my career, but they have also boosted my motivation. I was really amazed at how big and well-organised an open source community can be, and it feels great to be a part of it. In addition to increasing TYPO3 skills, I have learned a lot about how various IT companies work and can now share this experience within Agiliway too. What’s more, I have made friends with great like-minded people from other countries who helped me to progress and whom I love to meet on Dev Days now.

Stuttgart TYPO3 Sprints

Yaroslav (on the left) with other members of October 2017 sprint in Stuttgart (Photo by

Q.: Would you recommend other developers to attend TYPO3 sprints?

For sure! All events of the project are great, but if you really want to make your contribution to the CMS, which makes your job, your specialisation, your passion – TYPO3 sprint is right for you! I have always been trying to engage developers from Ukraine to attend sprints and I have actually discussed the development of TYPO3 association in Ukraine with Olivier Dobberkau, the President of TYPO3 Association. He emphasised that he places the high priority on the development of community and promised to support the development of our association and its participation in various events, so I do encourage Ukrainian TYPO3 specialists to lean in.

Q.: Thank you! It is great to have you on board!

Y.T.: Thank you.

P.S. Agiliway continues to actively interact with a TYPO3 community. Already this September, our engineers are participating in TYPO3 East Europe (T3EE) in Cluj-Napoca, Romania. Hope to see some of our readers there!

Agiliway Has Turned Three! Company Day 2018 Sun, 05 Aug 2018 08:10:43 +0000 Read more »]]>

The beginning of August is a much anticipated period among the Agiliway team. We have already established a tradition of celebrating a Company Day in an exceptional and unforgettable way, and it is great we can share this tradition with new members of our ever-growing family. This year, Agiliway has turned three, and it is as ambitious and bold as heroes of Wild West, which was the theme of our great celebration party!

Quests at Agiliway 3rd Birthday Party

The event was held on 3rd of August in the Vikings Bay resort complex. After a short trip to the complex, everyone could have refreshment drinks, aperitifs and appetizers, walk around the enjoyable and picturesque spot, or have fun taking cool photos at the photozone. Pistols, cowboy hats and boots, and a large bag of money were unlikely to stay out of sight 🙂

Wild West Party at Agiliway 3rd Birthday Party

It was great to hear the words of inspiration and appreciation from our founders who announced the latest information: amazingly, the company grew to 99 people in just three years! Some of us have already noticed this change, as it took 5 large tables to host us all. Still, neither comfy tables nor tasty treats could keep us long from the active pastime offered: traditional football competition, swimming and sunbathing by the lake, and an exciting quest where teams could compete each other in climbing a rope course, riding velomobiles and scoring points in a shooting gallery. The heat of the competition continued on the dance floor where teams contested in speed and creativity.

Celebrating Agiliway's 3rd Birthday Party

It was incredible to see so many people dancing to the music played by a live band and enjoying themselves all evening long. For sure, Agiliway has gathered not only the best experts, but also young (irrespective of age) and positive people!

Dancing at Agiliway 3rd Birthday Party

We revelled, chanted and blew off the candles on the cake together feeling proud of the company that has united us into a big yet close-knit team. Happy birthday to you, Agiliway! Grow big and successful!

Birthday Cake at Agiliway 3rd Birthday Party

]]> CiviMobile – a Native Mobile Application for CiviCRM Thu, 26 Jul 2018 08:26:11 +0000 Read more »]]> The constituents of NGOs and nonprofits regularly leave the workplace to work with the local communities or vulnerable groups. As a result, members of organisations often lack an access to the CRM system and cannot find the necessary information on their cases during the fieldwork. Agiliway has developed a mobile application for CiviCRM – CiviMobile – that allows organisations’ members to reach their CiviCRM databases anywhere and anytime.

Magento vs. OXID: Which E-commerce Solution To Choose? Sat, 19 May 2018 13:03:33 +0000 Read more »]]>

Agiliway continues familiarising current and prospective website owners with various e-commerce platforms so that they make a good and well-informed choice, which will have an ultimate effect on their businesses. We have already presented the comparison of different popular solutions for e-shops such as Magento, Woo-Commerce, Shopify, Aimeos, Opencart, E-Commerce module of Odoo ERP in our previous articles. Now, when Agiliway has developed a new e-commerce competency – OXID, we would like to share our insights into the platform comparing it with Magento.

It should be noted that while OXID has only 0,2% of the global e-commerce platforms market share comparing to Magento’s 10,8%, it is a very popular e-commerce platform in Germany, its “home country”, where Magento and OXID are the two market leaders. This might be due to the lack of English documentation and support, which prevents OXID from becoming better known in other countries. Despite the low market share, the two systems are definitely worth attention.

Magento and OXID have free open source Community and paid Enterprise editions. The Enterprise Edition of Magento would cost you a bit more than OXID’s (18,000 Euro vs 15,000 Euro respectively), but the support will be included into the price, while OXID will additionally charge 270 Euros per month for this service. What is more, the interface and each new tenant in the OXID EE will cost you additional 3,000 Euros. B2B functions within the Enterprise Edition of OXID are also optional and cost extra money.

Let us have a closer look at the two e-commerce platforms comparing them against the following characteristics:

  1. Functionality.Both Magento and OXID have great functional depth and are highly customisable. Both platforms integrate ERP, CRM and social media and suggest a wide variety of promotional and marketing tools. Both platforms are good for creating multilingual websites with the support of multiple payment options. However, while the ability to create multiple stores and advanced individual customisation options via templates is available in Magento already in the community version, you will have to buy an Oxid Enterprise Edition to benefit from these features. The responsive templates and ability to distribute rights and roles, which are basic features of Magento, are also not available in OXID’s free edition too.
  2. E-commerce. It is important that Magento and OXID allow creating an omnichannel customer experience, linking on-sight and online means of interaction with the customer in particular. In addition, Magento allows instant purchases for recurring buyers and has a number of features designed specifically for B2B business (advanced workflow promoting quote responsiveness, permission to edit company accounts and track quotes history, ability to assign custom catalogues and pricing to a particular customer, etc.), which has made the platform the leader of B2B commerce in 2017. OXID has been serving B2B since 2015 too, but one has to buy a special Enterprise edition for B2B marketing.
  3. Customization and development. Both platforms are highly customisable and use object-oriented programming (OOP), the great benefit of which is encapsulation allowing work on different objects simultaneously and easier troubleshooting. However, Magento has a steep learning curve and is generally considered more difficult to program, so inexperienced users with limited tech knowledge will have to spend much time learning to configure and customise the platform. OXID, on the other hand, is considered less difficult to learn. In addition, our experts point to the platforms’ use of the Smarty template engine, used for the creation of unique front-end designs. The latter feature, which Magento lacks, considerably facilitates and speeds up the creation of templates. The recent OXID decision to work with Symphony, a popular PHP framework, further contributes to faster and easier coding experience. Still, Magento is very well-documented and have a very large online community to help the programmer learn, while mastering OXID resembles collecting tiny bits of information from various sources. The lower popularity of the platform also translates into fewer cases considered on the net, which programmers can make use of. And… of course, there is no way of coming to grips with OXID speaking no German, as OXID’s documentation, support and community is almost all German-speaking.
  4. Support. In Magento, support is fast and free, although users often emphasise that any related question seem to have been already answered and available on the net. As it has already been mentioned, the OXID’s support is mainly German-speaking. In addition, it is not free even in an enterprise version.
  5. Cost of Hosting. Being a high-performance platform, Magento requires a good hosting solution, which may drive the hosting cost up. In particular, Magento servers must run modern Linux kernel, Apache or Nginx web daemon, and PHP versions. Comparing to Magento, OXID is more lightweight and easier to host. For one e-shop with a few thousand articles, a shared hosting will suffice.


Magento and OXID are two great e-commerce solutions in terms of functionality and marketing solutions. When choosing what platform to work with, you should remember that Magento has bigger learning curve and higher hosting demands, but a much bigger community and a reliable free support. On the other hand, OXID is easier to host and to program, but has no structured documentation and little information about the platform is provided in English. If your organisation lacks skilled professionals or knowledge of German, do not give up on your prefered choice – you may refer to our team, having strong expertise in both Magento and OXID to help you install and customize your ecommerce platform, as well as add custom extensions addressing specific needs of your business.

KPI Module for CiviCRM Tue, 24 Apr 2018 01:43:42 +0000 Read more »]]> To lead an organization to the top-notch performance and reach strategic goals, the management should have an elaborate system of measuring a key performance indicator (KPI), which further can be used to develop performance improvement initiatives. NGOs and non-profits typically measure KPI using parameters such as members/supporters growth and retention ratio, the number of constituent requests served, the speed of case resolution or the number of contributions and funds risen. All this data is already available in CiviCRM, so it makes sense to use it to build a system for measuring KPIs. This is what Agiliway has recently done developing a KPI module, which is integrated with CiviCRM solution we have implemented for one of our clients.

TYPO3 Performance Issue: How We Resolved It Tue, 10 Apr 2018 15:31:38 +0000 Read more »]]>

When a new product is launched, the task that tops the to-do list is usually predetermined. The team concentrates its efforts on building the minimum viable product (MVP) and thus turns an idea into something tangible for users at the earliest date. By getting the product in the MVP stage out to the focus group, the team collects feedback, modifies the concept in line with the user preferences and sets priorities for the future rollout version.

This is how ROI4CIO project started off. From day one this project had all the hallmarks of a unique venture that promised to revolutionalize collaboration and sales processes in the IT sector. Cutting-edge AI technology, new business model and dedicated focus on detail-oriented execution, it stands to reason why the ROI4CIO release was so much anticipated. As a proof of concept, Agiliway team implemented a quick solution with TYPO3 CMS. At this stage, the solution had all those core features sufficient to deploy the product. TYPO3 CMS successfully covered the necessary functionality (user interface visualization, data storage, processing of customer requests and responses).

Further, the original roadmap anticipated building fully functioning solution within Laravel framework after successful MVP. Such migration to PHP framework had to step up an early prototype to the scalable and fully reliable version that works under a heavy load. Yet the client decided to put the migration on hold until new important features were added.

As we integrated new features, turned ROI4CIO into a TYPO3 collaboration platform with advanced logic and complex configuration options, a system performance issues started to interfere.

Troubleshooting TYPO3 Performance Issue

CMS was running slow, took longer to respond or stopped responding. Large ORM objects caused average response time to fall dramatically under peak load. Accordingly, too many queries running at page load created bad experiences with performance.

Before users could start taking advantage of all that added functionality, Agiliway team had to find a way to reconcile complex system models with slow website load and response time. The solution came gradually. Neither a short-cut nor a trap of never-ending missteps, the problem-solving process took place in several stages.

Stage 1: Utilizing TYPO3 default settings of cache configuration

At the very outset using the default TYPO3 cache settings for the Redis cache seemed an obvious solution to the performance issue. Redis would cache queries, pages with static information and the front-end part. The measure significantly improved processes, yet the effect was only temporary. profiling for pages that send and receive multiple HTTP requests/responses located bottlenecks both in TYPO3 and server settings. In particular, inefficiencies associated with web service called for user data session management, created the need to cache ViewHelpers and Formhendler as well as use the lazy load design pattern to process large data objects. The issue was addressed by changing TYPO3 default settings and transferring the user data session from the database to Redis Cache. These measures improved the web site performance, optimized TYPO3 Fluid plugin and the TYPO3 extension Formhandler. For obvious reasons, the solution proved effective only in the short run.

Stage 2: Rebuilding TYPO3 data layer

As the solution grew, the new features started showing a growing number of related business objects with a large number of data records. TYPO3 has become slow in processing requests with multiple related objects, so we decided to review the ORM structure of TYPO3 and to optimize it. In the first place, we rewrote the main queries built by the core TYPO3 extensions.

Going further, we conducted a global analysis of the ORM relationships. As a result, the team constructed a new structure of database queries and redesigned the database structure. ORMs relationship was replaced with Individual Database Queries.

These actions reduced the number of requests from particular pages, which led to a dramatic impact on TYPO3 performance – page load speed increased 3-10 times depending on a page.

Stage 3: Upgrading to latest PHP 7.2 version

The project kept evolving, requests for new features and an improvement to an existing functionality kept pouring in, gradually wearing off this short-term effect of the suggested solution. Given the growing number of users and the vast amount of ever-expanding information on the website, Agiliway team considered moving away from the monolith system built for the beta version and adopt a scalable architecture for fast and stable website performance. In the light of new features, functions, and performance enhancements the latest PHP 7.2 version had to offer, migrating to PHP 7.2 was defined as an uppermost task.

PHP 7.2 offered around a 40% improvement in performance speed. For comparison, when using PHP 5.6, the page took about 3.5 seconds to load, while after moving to PHP 7.2 the page load time index dropped to 2 seconds. Similarly, Start Render and Response time indices increased by 30-40%.

Stage 4: Migration from Apache/ mod_php to Nginx / PHP-FPM

Equipped with some great new features and improvements following PHP 7.2 upgrade, we went for another important update, that is migration from Apache/ mod_php to Nginx / PHP-FPM. Apache/ mod_php, though popular and easy-to-setup web server, is quite inefficient for PHP applications where performance is a crucial quality attribute. On the contrary, built for maximum performance and stability, Nginx displays features fairly fit for the purpose:

  • fast, reliable, highly customizable web server;
  • effectively maintains static content and redirects dynamic queries to PHP-FPM;
  • highly modular for extensive functionality;
  • uses a reactor pattern (event-driven approach) to handle a large amount of simultaneous connections;
  • excellent documentation and strong tech support from Nginx team.

The transition to Nginx ensured a 30% increase in speed and efficiency with which requests are processed to the database. Such improvement positively affected the website performance and increased the max number of simultaneous user connections 3 times.

Stage 5: Leveraging Amazon Web Services

When a website experiences increased traffic and offers extensive functionality, a strain is also put on a cloud service platform. For this reason, Agiliway team set out to ensure a cloud service platform can efficiently deliver the solution by leveraging the latest powerful cloud-based best services. The decision was made to move to AWS (Amazon Web Services) platform known for its increased scalability. To solve the problem of a high load on the website and database, the cluster group was created and certain features added, in particular:

  • Database server copy and two read replicas. Read-only queries to a database would be read from the read replica while write-only queries written in the database;
  • ROI4CIO service containerization was implemented;
  • Amazon ECS would support multiple containers. When the generator uses over 80% CPU an additional container is launched;
  • Amazon CloudFront service was configured for media content management. All content would be stored in an Amazon S3 bucket that supports CloudFront content distribution;
  • Amazon ElasticCache service (Redis) was installed and configured for ROI4CIO service.

In retrospect, resolving TYPO3 performance issue at times felt like breaking the back of the beast. With our backs to the wall, our team rose to the challenge by upgrading the entire system based on TYPO3 CMS to the new PHP version, simultaneously migrating from Apache to Nginx and stepping up cloud hosting services. We had to fix malfunctioning extensions, change server configurations and TYPO3 settings. With all these actions, not only did we speed up request processing and shortened the website response time, but also took the load off the primary as well as the database server.