An application framework enabling app developers to manage data on front-end and back-end with less code, automatically managing asynchronous tasks like data fetching.
We've built the Prodo Declare framework for two main reasons.
First, we wanted to define a framework that would allow both humans and AI-powered tools to reason easily about the code. One learning from our AI experiments was indeed that Neural Networks struggle to deal with stateful, object-oriented code, whereas they performed better on declarative, functional code. So we wanted to make it easier for developers to built apps in simpler, more declarative ways.
Second, we became ourselves frusturated with existing state managment solutions such as Redux and MobX because they only handle front-end state, whereas we would have loved a full-stack solution when building our own applications. We wanted
to use the Flux architecture
didn't want to spend an endless amount of time configuring libraries.
We also heavily rely on TypeScript to catch bugs and prevent runtime
errors, but most existing libraries did not have native support.
We believe Prodo Declare checks most of our boxes and is a really nice state management solution to use in your next app. However, there were some challenges we encountered along the way when trying to make it a popular open source tools. Most importantly, our users sometimes struggled with the fact that Declare felt more "magical" than other frameworks, and they had to unlearn what they had previously learned from Redux. For instance, users would sometimes expect to manually control how data is mapped from the application state to the React components (using Redux-style mapStateToProps functions), when this step is in fact automated with Declare.
The Prodo Declare framework is already mature enough for small applications and it could grow in multiple ways, but we believe the roadmap should first be driven by a first large customer, so that it can be tested at scale and gain the necessary credibility for wider adoption. We're currently in the process of finding this first customer.