Welcome to this brief article where I'm excited to share the inspiration behind this project and its intended goals.
Let's dive into a key insight from my frontend development experience: your application is more than just its framework or library. Whether it's React, Vue, or any other technology, these should ideally form just one layer of your application – a replaceable one at that. The aim is to have a setup where the data presentation layer can be switched out with relative ease.
Of course, swapping out frameworks or libraries isn't as simple as changing a lightbulb. It's a complex task in the real world, but we can streamline the process for a potential shift in the future.
The need to switch technologies is rare. I've encountered it just once, needing to replace one library with another. This principle is also applicable to major updates within a framework or library, like the transition to Vue 3.
To facilitate this ease of transition, I believe applications should function independently of their "face" or user interface. Imagine a "console mode," where the UI simply triggers underlying operations which occur elsewhere. This approach involves treating your application not just as a web-based tool but as a standard program with distinct data and service layers, a data store, and a component responsible for the UI. This concept led me to discover Vuex ORM and its evolution into Vuex ORM Next. Initially, adapting to a structured approach where data manipulation is constrained was challenging. Yet, I quickly saw the benefits of an organized, model-centric structure.
However, one concern persisted. Suppose I'm developing web applications with Vue, following this structured principle. What if, in the future, I want to branch out to mobile apps with React Native? My existing data and service layers would be rendered unusable, being too intertwined with Vue and Vuex. I wished for a Vuex ORM equivalent for other frameworks like React or Svelte.
Thus, Rattus ORM was born. It aims to bring the ORM experience to any application, effortlessly. The key is to develop a versatile Data Provider and devise a way to integrate it with component interactions. This approach drastically reduces the time and effort needed to migrate to a different platform.
As of now, Rattus ORM is in its nascent stage. Contributions, issues, and pull requests are always welcome.
Looking forward to what lies ahead!