📬 Chatify ·
A realtime chat app built with TypeScript, React, Node.js, and AWS. It allows users to log in easily using OAuth 2.0 (Google, GitHub, email/password). Users can connect with others and send text messages, emojis, stickers, media, files, and more. The chat offers many features found in popular messaging apps like WhatsApp.
- Fronted:
TypeScript
·React
·Vite
·TailwindCSS
·Zustand
·Auth0
- Backend:
TypeScript
·Node.js
·Express
·Turso
·Socket.io
·REST
·JWT Auth
- Infra:
AWS: EC2 - S3 - CloudFront
·Cloudflare Pages
·PNPM Workspaces
·PM2
·GitHub Actions
- Linting and Formatting:
StandarJS
·EsLint
·Prettier
-
🔐 Sign in/Sign up with Google, GitHub, or email/password
-
💬 Initiate personalized chats with other users.
-
📩 Messaging Options:
- 🗃️ Share any file type.
- 📷 Exchange images.
- ✏️ Send and receive text messages.
- 🎥 Share videos.
- 😁 Express with fun stickers.
- 🎞️ Share animated GIFs.
- 😀 Add emojis to convey emotions.
-
🌐 Automatically identify links and provide clickable anchor tags.
-
🔄 Respond to messages to maintain clear and contextual conversations.
-
🔮 Stay updated with notifications for unseen messages.
-
🧐 Track message read status for improved communication clarity.
-
😄 React to messages with emojis to express feelings and responses.
-
😊 Access a wide array of emojis through an intuitive emoji picker.
-
🎈 Send stickers using an intuitive sticker picker powered by Tenor.
-
📷 Preview sent images and files directly within the chat interface.
-
📬 Message Management:
- 🗑️ Delete messages with a note indicating removal.
- 🔎 Filter chats and messages efficiently using the search bar.
- 🧮 Sort messages by file type, media, and more.
-
🔥 Chat Actions:
- 📌 Pin/Unpin
- 👀 Hide/Unhide
- 🔕 Mute/Unmute
- 🔵 Mark Read/Unread
- 🔐 Block/Unblock
- 🧼 Clear
- ❌ Delete
To run the project in your local environment, follow these steps:
- Clone the repository to your local machine.
- Rename the files:
client/.env.example
to.env.local
and/server/.env.example
to.env.local
. - Fill in the values of the environment variables in the newly created
.env.local
files with your own data. - Ensure you have Node.js and pnpm installed on your machine.
- Navigate to the
server
directory of the project and install dependencies and run the server by runningnpm i && npm start
. - Open another terminal, navigate to the
client
directory, install the dependencies, and start the client by running:npm i && npm start
- You can access the app at: http://localhost:5173.
That's it! Your project should now be up and running locally.
Thank you for exploring this project! If you find the structure or features useful, feel free to use this code for your project. Contributions are welcome! If you have ideas, corrections, or improvements, please open an issue or send a pull request. Your collaboration is valued and appreciated! 🚀
Chatify is MIT licensed. ❤️