{"id":21762408,"url":"https://github.com/fraineralex/chatify","last_synced_at":"2025-08-08T01:32:47.890Z","repository":{"id":245780895,"uuid":"775255099","full_name":"fraineralex/chatify","owner":"fraineralex","description":"📬 Realtime chat app with rich media support, built with React and Node.js.","archived":false,"fork":false,"pushed_at":"2025-05-27T17:46:24.000Z","size":4638,"stargazers_count":15,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-31T00:13:45.030Z","etag":null,"topics":["aws","nodejs","react","realtime-chat","socket-io","turso"],"latest_commit_sha":null,"homepage":"https://chatify.fraineralex.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fraineralex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-21T03:20:05.000Z","updated_at":"2025-05-27T17:46:28.000Z","dependencies_parsed_at":"2024-06-24T05:26:24.196Z","dependency_job_id":"1558f251-5ab3-4ae4-b561-ede42cfbedaf","html_url":"https://github.com/fraineralex/chatify","commit_stats":null,"previous_names":["fraineralex/chatify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fraineralex/chatify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fraineralex%2Fchatify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fraineralex%2Fchatify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fraineralex%2Fchatify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fraineralex%2Fchatify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fraineralex","download_url":"https://codeload.github.com/fraineralex/chatify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fraineralex%2Fchatify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269352444,"owners_count":24402668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","nodejs","react","realtime-chat","socket-io","turso"],"created_at":"2024-11-26T12:12:06.394Z","updated_at":"2025-08-08T01:32:47.844Z","avatar_url":"https://github.com/fraineralex.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📬 [Chatify](https://chatify.fraineralex.dev/) \u0026middot; [![EC2 Deployment Pipeline](https://github.com/fraineralex/chatify/actions/workflows/deployement-pipeline.yaml/badge.svg)](https://github.com/fraineralex/chatify/actions/workflows/deployement-pipeline.yaml) [![GitHub license](https://img.shields.io/badge/license-MIT-004DFF.svg)](https://github.com/fraineralex/chatify/blob/main/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-FF0065.svg)](https://legacy.reactjs.org/docs/how-to-contribute.html#your-first-pull-request) ![Website](https://img.shields.io/website-running-stopped-7B2EFF-red/https/chatify.fraineralex.dev.svg)\n\nA 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.\n\n![Open graph image of Chatify](/client/public/og.webp)\n\n## 📦 Technologies\n\n[![Main Technologies](https://skillicons.dev/icons?i=ts,react,vite,tailwind,css,html,nodejs,express,sqlite,aws,cloudflare,pnpm,githubactions,ubuntu)](https://skillicons.dev) \n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003eAll Technologies ⚡\u003c/h3\u003e\u003c/summary\u003e\n  \n  - **Fronted:** `TypeScript` \u0026middot; `React` \u0026middot; `Vite` \u0026middot; `TailwindCSS` \u0026middot; `Zustand` \u0026middot; `Auth0`\n  - **Backend:** `TypeScript` \u0026middot; `Node.js` \u0026middot; `Express` \u0026middot; `Turso` \u0026middot; `Socket.io` \u0026middot; `REST` \u0026middot; `JWT Auth`\n  - **Infra:** `AWS: EC2 - S3 - CloudFront` \u0026middot; `Cloudflare Pages` \u0026middot; `PNPM Workspaces` \u0026middot; `PM2` \u0026middot; `GitHub Actions`\n  - **Linting and Formatting:** `StandarJS` \u0026middot; `EsLint` \u0026middot; `Prettier`\n    \n\u003c/details\u003e\n\n## 🚀 Features\n\n- 🔐 Sign in/Sign up with Google, GitHub, or email/password\n- 💬 Initiate personalized chats with other users.\n- 📩 **Messaging Options:**\n\n  - 🗃️ Share any file type.\n  - 📷 Exchange images.\n  - ✏️ Send and receive text messages.\n  - 🎥 Share videos.\n  - 😁 Express with fun stickers.\n  - 🎞️ Share animated GIFs.\n  - 😀 Add emojis to convey emotions.\n\n- 🌐 Automatically identify links and provide clickable anchor tags.\n\n- 🔄 Respond to messages to maintain clear and contextual conversations.\n\n- 🔮 Stay updated with notifications for unseen messages.\n\n- 🧐 Track message read status for improved communication clarity.\n\n- 😄 React to messages with emojis to express feelings and responses.\n\n- 😊 Access a wide array of emojis through an intuitive emoji picker.\n- 🎈 Send stickers using an intuitive sticker picker powered by Tenor.\n- 📷 Preview sent images and files directly within the chat interface.\n\n- 📬 **Message Management:**\n  - 🗑️ Delete messages with a note indicating removal.\n  - 🔎 Filter chats and messages efficiently using the search bar.\n  - 🧮 Sort messages by file type, media, and more.\n- 🔥 **Chat Actions:**\n  - 📌 Pin/Unpin\n  - 👀 Hide/Unhide\n  - 🔕 Mute/Unmute\n  - 🔵 Mark Read/Unread\n  - 🔐 Block/Unblock\n  - 🧼 Clear\n  - ❌ Delete\n\n## 🚦Running the Project\n\nTo run the project in your local environment, follow these steps:\n\n1. Clone the repository to your local machine.\n2. Rename the files: `client/.env.example` to `.env.local` and `/server/.env.example` to `.env.local`.\n3. Fill in the values of the environment variables in the newly created `.env.local` files with your own data.\n4. Ensure you have [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) installed on your machine.\n5. Navigate to the `server` directory of the project and install dependencies and run the server by running `npm i \u0026\u0026 npm start`.\n6. Open another terminal, navigate to the `client` directory, install the dependencies, and start the client by running: `npm i \u0026\u0026 npm start`\n7. You can access the app at: [http://localhost:5173](http://localhost:5173).\n\nThat's it! Your project should now be up and running locally.\n\n## 🌟 Contributions\n\nThank 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! 🚀\n\nChatify is [MIT licensed](/LICENSE). ❤️\n\n## 🍿 Video\n\nhttps://github.com/fraineralex/chatify/assets/89224196/d194bb34-df03-4496-a4b0-fe1e3af00bbf\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffraineralex%2Fchatify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffraineralex%2Fchatify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffraineralex%2Fchatify/lists"}