Typi 💬 is a simple web chat project features End-to-End Encryption (E2EE) using hybrid encryption.
I am a person who use messaging platforms a lot, both on web and on my phone. But most messaging app that features E2EE would require installing an app, either Android or iOS or Windows. An app is needed to encrypt/decrypt messages. But computers have gotten better, browsers have gotten better and most importantly Node.js and React, which bring this project to life.
Instead of using an app, a website can be accessed anytime and anywhere while maintaining security. Yes, there are compromises need to be made but I believe it is possible.
First version was using Vue.js for frontend (as at the time I heard it was good so I gave it a try), I learned a lot about it while working on the project but soon realised Vue did not have the community who provides plugins for it like React. Therefore for the second attempt, I chose React and also rethink how I will build components because it was a mess the first time working with a component-based UI framework. Following MVC design pattern, I plan to create a better looking source code.
As for backend, the aim is to create a RESTful API that can be easy to extend. Currently, I am using Swagger to declare the endpoints that frontend needs to operate and build on that. Current endpoints: https://app.swaggerhub.com/apis/ducng99/typi-api/1.0.
The project is still under development, a lot can change.
If you want, please take a look at the project: TypiMess GitHub