{"id":25510350,"url":"https://github.com/kustiks/simple-chat","last_synced_at":"2026-04-13T04:51:36.651Z","repository":{"id":159582180,"uuid":"525880970","full_name":"KUSTIKs/simple-chat","owner":"KUSTIKs","description":"Simple chat is an application that helps you to communicate with other people in real time","archived":false,"fork":false,"pushed_at":"2023-06-09T20:19:41.000Z","size":886,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T04:58:36.367Z","etag":null,"topics":["chat","chat-app-using-firebase","chat-application","firebase","firebase-auth","firestore","react","redux-toolkit","storybook","styled-components","typescript","vite"],"latest_commit_sha":null,"homepage":"https://simple-chat-71ab0.web.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KUSTIKs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-08-17T16:51:21.000Z","updated_at":"2025-01-11T18:52:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"723c78b3-1c1e-42bf-acca-f223cd4aa588","html_url":"https://github.com/KUSTIKs/simple-chat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/KUSTIKs/simple-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KUSTIKs%2Fsimple-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KUSTIKs%2Fsimple-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KUSTIKs%2Fsimple-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KUSTIKs%2Fsimple-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KUSTIKs","download_url":"https://codeload.github.com/KUSTIKs/simple-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KUSTIKs%2Fsimple-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"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-11-24T02:00:07.096Z","response_time":68,"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":["chat","chat-app-using-firebase","chat-application","firebase","firebase-auth","firestore","react","redux-toolkit","storybook","styled-components","typescript","vite"],"created_at":"2025-02-19T09:39:11.259Z","updated_at":"2025-11-24T23:30:21.974Z","avatar_url":"https://github.com/KUSTIKs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://lslang-demo.netlify.app/\"\u003e\n    \u003cimg src=\"/public/favicon.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eSimple Chat\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Application that helps you to communicate with other in real time\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003ca href=\"https://simple-chat-71ab0.web.app/\"\u003eLive Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://youtu.be/Iubl6Bh2obI\"\u003eVideo Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/KUSTIKs/simple-chat/issues/new\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/KUSTIKs/simple-chat/issues/new\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## About this project\n\n![preview](/public/screenshot.png)\n\nSimple chat is an application that helps you to communicate with other in real time\n\n### Built With\n\n- [React](https://reactjs.org/)\n- [Typescript](https://www.typescriptlang.org/)\n- [Firebase](https://firebase.google.com/)\n- [Vite](https://vitejs.dev/)\n- [Redux Toolkit](https://redux-toolkit.js.org/)\n- [Styled Components](https://styled-components.com/)\n\n### Additional Tools\n\n- [Storybook](https://storybook.js.org/)\n- [Figma](https://www.figma.com/)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Getting Started\n\n### Prerequisites\n\nIn this project yarn is used, so make sure, you have it installed\n\n```sh\nnpm install yarn@latest -g\n```\n\n### Installation\n\n1. Clone the repo\n\n   ```sh\n   git clone https://github.com/KUSTIKs/simple-chat.git\n   ```\n\n   or\n\n   ```sh\n   git clone git@github.com:KUSTIKs/simple-chat.git\n   ```\n\n1. Install dependencies\n\n   ```sh\n   yarn\n   ```\n\n1. To start a project run\n\n   ```sh\n   yarn dev\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Mobile adaptive\n\nThis application is fully mobile responsive\n![mobile_chat-page](https://user-images.githubusercontent.com/62993891/185960537-a4d4ad3a-5ab9-49af-937b-911a9b27c0a4.png) | ![mobile_chats-page](https://user-images.githubusercontent.com/62993891/185962139-7d04a01d-afad-4629-95f7-ae41bb90021d.png) | ![mobile_auth-page](https://user-images.githubusercontent.com/62993891/185960587-74ddfbe8-573b-4d75-8841-02b89d1ac620.png)\n---|---|---\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Bot\n\nBot is just a user, which responds with joke from [chucknorris.io](https://api.chucknorris.io/) api on every user message\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Data\n\nThis project is using Firebase auth for authentication and Firestore to manage data. Interfaces of entities look look like so\n\n```typescript\ntype Account = {\n  id: string;\n  name: string;\n  avatarUrl: string;\n  isOnline: boolean;\n  lastTimeOnlineAt: Timestamp;\n  email: string;\n};\n\ntype Chat = {\n  id: string;\n  members: [Account, Account];\n  messages: Message[];\n};\n\ntype Message = {\n  id: string;\n  author: Account;\n  content: string;\n  createdAt: Timestamp;\n};\n```\n\nBy the help of firebase `onSnapshot` function, real time updating is working. For example, when you send message, it immediately appears on both accounts\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Storybook\n\nTo start storybook locally, use following command\n\n```sh\n  yarn storybook\n```\n\n![storybook preview](/public/storybook-screenshot.png)\n\nthere are two groups of components here: components, and widgets, that can use other components and have some side effects\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkustiks%2Fsimple-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkustiks%2Fsimple-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkustiks%2Fsimple-chat/lists"}