A brief description of the Clearmove architecture
The Clearmove app is a classic SaaS platform. The platform consists of three parts written in JS/TS. Two parts of the platform are classic web SPA. The third part is a mobile application written in React-native.
The backend part uses the NestJS framework and several databases, the main relational one is PostgreSQL, and the Redis database to organize caches. Also, we have Integration that has been implemented with several APIs in different areas. For the configuration of different clients and partners, a multi-tenant architecture was implemented using wildcard subdomains.
The basis of the frontend part is the React-native-web framework, which allows you to reuse components between React-native and React-dom applications. It also uses Redux and Redux-observable for application state management and side effects processing.
As transport between the backend and the frontend, GraphQL is used in conjunction with Apollo. Thanks to the mono-repository, communication through TS contracts is implemented: the backend implements contracts, and the frontend uses APIs based on the same contracts.