VI Messenger is a feature rich chat application meticulously crafted from the ground up, utilizing modern technologies to deliver a seamless user experience. Built with React, Typescript, Tailwind CSS, Zustand, Socket.io, Express JS, Node JS, and MongoDB.
Experience VI Messenger live at https://vi-messenger.onrender.com/
For an in-depth technical analysis, check out the LinkedIn post here
- Node JS v18 or above.
- MongoDB - Database can either be configured locally or any cloud instance URL can be passed to
.env
file.
- Clone this repository using
git clone
. - Navigate to the project directory.
- Run
npm i
to install dependencies. - Start the server with
npm run dev -w apps/server
(using npm workspaces). - Start the client with
npm run dev -w apps\web
. - Access the application at http://localhost:3000.
- AI Chat - Generates rich text responses with LLAMA-3 and streams it, supports code highlighting, copying etc...
- Progressive Web Application(PWA) capabilites.
- Message replies.
- In addition to image/video sharing, added file sharing capabilities - Supported formats -
pdf
,mp3
,docx
,xlsx
,pptx
,txt
,zip
. - Media Previews in full screen.
- Filter chats
- Personal chats.
- Group chat creation and management.
- Support for text, image, video, emojis, and GIF sharing.
- Real-time unread message counts.
- Automatic scroll restoration for unread messages.
- Real-time online/away indicators.
- Typing indicators akin to MS Teams.
- Time-based message modifications and deletions with real-time updates.
- In-chat and external notification sounds.
- Paginated message history for seamless user experience.
- Real-time message reactions and summaries.
- Message Seen status for personal and group chats.
- User profile customization with high-quality profile pictures.
- Ability to update account info and delete account on demand.
- Fully mobile-friendly.
- Continuously evolving with new features; open to suggestions and contributions.
- Email: varad2k12@gmail.com
- LinkedIn: Varadarajan M
Feel free to reach out with any questions, feedback, or collaboration opportunities. Let's connect and enhance the VI Messenger experience together!