This extended version.
We also have a minimum version, it includes only React Native App.
This application is a complete product and currently works in several large companies at high loads.
For the convenience of customers, the project has been adapted for expo.
In order to understand the stack, you can read documentation.
You must understand that the product was created by a team of professionals, and hundreds of times more was spent on this product.
Desktop App (responsive demo)
<iframe width=”100%” height=”350” src=”https://www.youtube.com/embed/ARWlbalR8a0” frameborder=”0” allow=”accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture” allowfullscreen=””></iframe>
Mobile (React Native)
- Unlimited group chats (it all depends on your infrastructure)
- Contact Sync
- Status message read/unread
- Count unread messages
- Online Statuses
- Typing statuses
- Sending photo
- Theme: dark / light
- Push notifications
- Authentication with sms code
- Saving 5×5px preview picture, for showing when picture download
- Snap to close keyboard in conversation screen
- Service messages
- Own UI kit
- Clean design
- Web version
- Mobile web version
- Desktop version for mac, linux and windows
Backend and mobile application written in TypeScript.
All components and data are typed.
The backend works on GraphQL
To create types on the client and on the server, is used graphql-codegen
For state management used Apollo Cache
All components are functional, everything is written using React Hooks
No legacy code
Read the documentation: https://weeego.gitbook.io/chat-app-monorepo/
The whole architecture is microservice.
All database queries are optimized and built on aggregation, which allows you to work under high loads.
In addition, the socket server has been moved to a separate service that allows you to replicate it as a microservice for load balancing.