Ladda was created to solve a real problem at Small Improvements. At Small Improvements we are developing an application to manage and facilitate feedback within a company. Both more formal, such as the yearly performance appraisals many companies have, but also less formal such as an employee wanting to praise another employee or request feedback from a couple employees, for example after having a presentation or after finishing a project. In addition to this, we handle many more things, such as goals or objectives and a vast number of integrations and customizations. The main point is that it is a fairly complex piece of software, and it is built as a single page application.
The issue we started to encounter was that loading all the data took quite a while, especially for large companies. First step was to ensure that we only loaded the data that is needed. However, even this was quite a lot of data. We started to explore different solutions. Therefore we invested quite a lot in evaluating GraphQL and Relay. But we didn't find anything that made us happy. We previously switched from Angular 1 to React and we wanted a solution that would make it easier, rather than harder, to jump single page application framework the next time. In addition to this, we didn't want our application code to get more complex, but if anything, we would like it to get less complex. We didn't feel that any existing solution fullfilled all our wishes.
A couple of developers at Small Improvements got really intrerested in this topic. We started to look around for external solutions yet experimented with our own solutions. Finally we discussed our findings. We picked Ladda for its simplicity, it living outside of the application code and it promoting something that we thought is a good idea in general: well-defined entities. We also realized that using something that is not aware of the framework would help us to synchronize data between React and Angular (we are still using both SPA solutions). Ladda doesn't care if the request comes from React or Angular, and the cache works regardless of where the request originated. Hence, we could synchronize data between Angular and React without doing anything more than using Ladda. If we loaded all users in Angular, updated one of them, and then loaded all users in React, we would get the latest data in React without the need for an API-request. This is how Ladda was born. But enough history, let's get more concrete and look at what benefits you can get.