{"id":13450185,"url":"https://github.com/dotnize/chessu","last_synced_at":"2025-04-05T21:06:45.616Z","repository":{"id":65310894,"uuid":"584663562","full_name":"dotnize/chessu","owner":"dotnize","description":"Online multiplayer chess built with Next.js, Express, \u0026 socket.io","archived":false,"fork":false,"pushed_at":"2025-03-31T09:14:27.000Z","size":2022,"stargazers_count":89,"open_issues_count":6,"forks_count":33,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-03T11:12:45.721Z","etag":null,"topics":["chess","express","full-stack","fullstack","game","hacktoberfest","javascript","multiplayer","next-js","nextjs","postgresql","react","reactjs","socket","socket-io","socketio","sql","tailwind-css","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"","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/dotnize.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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},"funding":{"github":["dotnize"]}},"created_at":"2023-01-03T07:35:17.000Z","updated_at":"2025-03-24T15:18:04.000Z","dependencies_parsed_at":"2023-08-25T12:44:42.807Z","dependency_job_id":"e7fbedb7-8e03-4732-abca-52e494828901","html_url":"https://github.com/dotnize/chessu","commit_stats":{"total_commits":299,"total_committers":6,"mean_commits":"49.833333333333336","dds":0.1505016722408027,"last_synced_commit":"29968f023da244d6ae1ff10c09577b1b5d53c123"},"previous_names":["nizefoo/chessu","99nize/chessu","ninetynize/chessu","ntampus/chessu","dotnize/chessu","nizewn/chessu"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Fchessu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Fchessu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Fchessu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Fchessu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnize","download_url":"https://codeload.github.com/dotnize/chessu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399873,"owners_count":20932876,"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":["chess","express","full-stack","fullstack","game","hacktoberfest","javascript","multiplayer","next-js","nextjs","postgresql","react","reactjs","socket","socket-io","socketio","sql","tailwind-css","tailwindcss","typescript"],"created_at":"2024-07-31T07:00:31.962Z","updated_at":"2025-04-05T21:06:45.598Z","avatar_url":"https://github.com/dotnize.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"./assets/chessu.png\" alt=\"chessu\" height=\"128\" /\u003e\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ches.su\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/deployments/dotnize/chessu/Production?label=deployment\u0026style=for-the-badge\u0026color=blue\" alt=\"ches.su\" /\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/dotnize/chessu?style=for-the-badge\" alt=\"Last commit\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eYet another Chess web app.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/demo.jpg\" alt=\"chessu\" width=\"640\" /\u003e\n\u003c/p\u003e\n\n- play against other users in real-time\n- spectate and chat in ongoing games with other users\n- _optional_ user accounts for tracking stats and game history\n- ~~play solo against Stockfish~~ (wip)\n- mobile-friendly\n- ... and more ([view roadmap](https://github.com/users/dotnize/projects/2))\n\nBuilt with Next.js 14, Tailwind CSS + daisyUI, react-chessboard, chess.js, Express.js, socket.io and PostgreSQL.\n\n## Development\n\n\u003e Node.js 20 or newer is recommended.\n\nThis project is structured as a monorepo using **pnpm** workspaces, separated into three packages:\n\n- `client` - Next.js application for the front-end, ~~deployed to ches.su via Vercel~~.\n- `server` - Node/Express.js application for the back-end, ~~deployed to server.ches.su via Railway~~.\n- `types` - Shared type definitions required by the client and server.\n\n### Getting started\n\n1. Install [pnpm](https://pnpm.io/installation).\n2. Install the necessary dependencies by running `pnpm install` in the root directory of the project.\n3. In the `server` directory, create a `.env` file for your PostgreSQL database. You can try [ElephantSQL](https://www.elephantsql.com/) or [Aiven](https://aiven.io/postgresql) for a free hosted database.\n   ```env\n   PGHOST=db.example.com\n   PGUSER=exampleuser\n   PGPASSWORD=examplepassword\n   PGDATABASE=chessu\n   ```\n4. Run the development servers with `pnpm dev`.\n   - To run the frontend and backend servers separately, use `pnpm dev:client` and `pnpm dev:server`, respectively.\n5. You can now access the frontend at http://localhost:3000 and the backend at http://localhost:3001.\n\n## Running chessu with Docker\n\nTo build the project with Docker, you can use the provided `Dockerfile`.\n```sh\ndocker build -t chessu .\n```\n\nThis command will build the Docker image with the name `chessu`. You can then run the image with the following command:\n```sh\ndocker run -p 3000:3000 -p 3001:3001 chessu\n```\n\nOnce built, to start the project with POSTGRES, you can use the provided `docker-compose.yml` file.\n```sh\ndocker-compose up\n```\nPlease make sure to modify the values in the `server/.env` file to match the values in the `docker-compose.yml` file or vice versa.\n\nThe entrypoint for the Docker image is set to run pnpm.\nThe Dockerfile's `CMD` instruction is set to run the project in production mode. \nIf you want to run the project in development mode, you can override the `CMD` instruction by running the following command:\n```sh\ndocker run -p 3000:3000 -p 3001:3001 chessu dev # runs both client and server in development mode\ndocker run -p 3000:3000 -p 3001:3001 chessu dev:client # runs only the client in development mode\ndocker run -p 3000:3000 -p 3001:3001 chessu dev:server # runs only the server in development mode\n```\n## Contributing\n\nPlease read our [Contributing Guidelines](./CONTRIBUTING.md) before starting a pull request.\n\n## License\n\n[MIT](./LICENSE)\n","funding_links":["https://github.com/sponsors/dotnize"],"categories":["chessu"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnize%2Fchessu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnize%2Fchessu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnize%2Fchessu/lists"}