{"id":20087033,"url":"https://github.com/ahoward2/nest-react-websockets","last_synced_at":"2025-09-03T17:46:35.561Z","repository":{"id":64457023,"uuid":"562328362","full_name":"ahoward2/nest-react-websockets","owner":"ahoward2","description":"Real-time chat application with NestJS websockets and a React frontend.","archived":false,"fork":false,"pushed_at":"2022-12-27T23:58:06.000Z","size":1169,"stargazers_count":34,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T02:39:09.121Z","etag":null,"topics":["nestjs","react","socket-io","websockets"],"latest_commit_sha":null,"homepage":"https://www.delightfulengineering.com/blog/nest-websockets/basics","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/ahoward2.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}},"created_at":"2022-11-06T01:38:15.000Z","updated_at":"2025-03-15T17:06:31.000Z","dependencies_parsed_at":"2023-01-31T05:45:45.152Z","dependency_job_id":null,"html_url":"https://github.com/ahoward2/nest-react-websockets","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ahoward2/nest-react-websockets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahoward2%2Fnest-react-websockets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahoward2%2Fnest-react-websockets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahoward2%2Fnest-react-websockets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahoward2%2Fnest-react-websockets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahoward2","download_url":"https://codeload.github.com/ahoward2/nest-react-websockets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahoward2%2Fnest-react-websockets/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261653262,"owners_count":23190424,"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","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":["nestjs","react","socket-io","websockets"],"created_at":"2024-11-13T16:03:40.245Z","updated_at":"2025-06-24T10:38:21.104Z","avatar_url":"https://github.com/ahoward2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![React, Socket.io and Nest JS logos image](/public/static/readme-logo.png)\n\n## Description\n\n\u003e This is a realtime chat application built with NestJS, React and Socket.io. Nest provides support out of the box for websockets via Socket.io while we're using a Socket.io client in the React application. Users can login and create or join existing chat rooms!\n\n## Design\n\n![basic architecture](./public/static/architecture.png)\n\n### Server\n\n- Chat websocket [gateway](https://docs.nestjs.com/websockets/gateways).\n- Object schema validation via [pipes](https://docs.nestjs.com/pipes) with [zod](https://github.com/colinhacks/zod).\n- Attribute-based access control authorization via [guards](https://docs.nestjs.com/guards) with [CASL](https://casl.js.org/v6/en).\n\n### Client\n\n- Socket.io client to interact with the server through websockets.\n- Client/server state management with [Tanstack Query](https://tanstack.com/query/v4).\n- CSS styling with [tailwindcss](https://tailwindcss.com/).\n- Client-side routing with [Tanstack Location](https://react-location.tanstack.com/).\n- Forms with [react-hook-form](https://react-hook-form.com/).\n- Object schema validation for events, forms, and more with [zod](https://github.com/colinhacks/zod).\n\n## Installation\n\n```bash\n$ yarn\n```\n\n## Running the app\n\n```bash\n# start client and server in development mode\n$ yarn dev\n\n# build client and server for production\n$ yarn build\n\n# start server in production\n$ yarn start:prodserver\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahoward2%2Fnest-react-websockets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahoward2%2Fnest-react-websockets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahoward2%2Fnest-react-websockets/lists"}