You can explore our open-source GitHub repo here: https://github.com/causalens/dara
2 years ago, our Data Scientists at causaLens were solving real world problems with our tech - causalAI. They found themselves impeded to turn their work into interactive visuals that allow informed decision-making.
To overcome this, we built a framework designed to empower our Data Scientists to work effectively with the language they know, and get great looking apps powered by their work. The framework is a facilitating, but non-core capability of ours, so we decided to open source it and give back to the community. We want to see what we can learn from challenges that come from outside our key focus on causality driven problems.
These were our guiding principles:
Native Support for Causality: At causaLens, we believe that understanding of cause-effect relationships is a foundation to empower informed decision making. To understand the intricate structures within causal graphs we have built a set of interactive components that let you visualize, modify, and explore them.
Build Apps in Pure Python: We designed the framework mainly for Data Scientists, aiming for a straightforward development with a wide range of ready-to-use components. At the same time, we kept the flexibility to customize the apps for more advanced use cases such as extending the backend FastAPI server with extra endpoints.
Standing on the shoulders of giants: The frontend is implemented using React, Typescript and Recoil. Using those state-of-the-art technologies means that we can use the vast ecosystem of packages available. We made sure adding custom components is as simple as defining a new React component and a corresponding Python class mapping its props.
Move Beyond Dashboards: Make anything from simple dashboards to complex multi-page apps with lots of interactivity whilst keeping the code maintainable and retaining native web app performance. To ensure scalability, our architecture is designed with reducing the client-server back-and-forth in mind. Therefore, rendering happens mostly in the browser. Your application will only call into the Python side when absolutely necessary.
We understand that your time is valuable, which is why Dara is designed to provide a simple and user-friendly development experience!
We are actively working on this framework and we welcome your contributions. If you find yourself missing a feature or stumble upon a bug please open up an issue. Star us on GitHub to follow the development of Dara!