{"id":13883513,"url":"https://github.com/lichess-org/chessground","last_synced_at":"2026-02-06T12:31:21.072Z","repository":{"id":17503194,"uuid":"20291042","full_name":"lichess-org/chessground","owner":"lichess-org","description":"Mobile/Web chess UI for lichess.org","archived":false,"fork":false,"pushed_at":"2026-01-28T16:41:40.000Z","size":11112,"stargazers_count":1272,"open_issues_count":30,"forks_count":304,"subscribers_count":31,"default_branch":"master","last_synced_at":"2026-01-29T07:29:49.225Z","etag":null,"topics":["board","chess","lichess","typescript","ui"],"latest_commit_sha":null,"homepage":"https://lichess.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lichess-org.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://lichess.org/patron"}},"created_at":"2014-05-29T11:01:53.000Z","updated_at":"2026-01-28T16:41:44.000Z","dependencies_parsed_at":"2024-04-18T15:41:08.777Z","dependency_job_id":"fdbbc20c-3167-40c5-9360-651a1b49efee","html_url":"https://github.com/lichess-org/chessground","commit_stats":{"total_commits":1642,"total_committers":51,"mean_commits":32.19607843137255,"dds":"0.36053593179049936","last_synced_commit":"bf80008877d1b36132c35279c9cb063e05c9ee3e"},"previous_names":["ornicar/chessground"],"tags_count":273,"template":false,"template_full_name":null,"purl":"pkg:github/lichess-org/chessground","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Fchessground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Fchessground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Fchessground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Fchessground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lichess-org","download_url":"https://codeload.github.com/lichess-org/chessground/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Fchessground/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29160816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T07:18:23.844Z","status":"ssl_error","status_checked_at":"2026-02-06T07:13:32.659Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["board","chess","lichess","typescript","ui"],"created_at":"2024-08-06T09:01:35.990Z","updated_at":"2026-02-06T12:31:21.045Z","avatar_url":"https://github.com/lichess-org.png","language":"TypeScript","funding_links":["https://lichess.org/patron"],"categories":["TypeScript"],"sub_categories":[],"readme":"# Chessground\n\n[![Continuous Integration](https://github.com/lichess-org/chessground/workflows/Continuous%20Integration/badge.svg)](https://github.com/lichess-org/chessground/actions?query=workflow%3A%22Continuous+Integration%22)\n[![npm](https://img.shields.io/npm/v/@lichess-org/chessground)](https://www.npmjs.com/package/@lichess-org/chessground)\n\n![Chessground in 2D and 3D](/screenshot/twin.jpg)\n\n_Chessground_ is a free/libre open source chess UI developed for\n[lichess.org](https://lichess.org).\nIt targets modern browsers, as well as mobile development using Cordova.\n\n## License\n\nChessground is distributed under the **GPL-3.0 license** (or any later version,\nat your option).\nWhen you use Chessground for your website, your combined work may be\ndistributed only under the GPL. **You must release your source code** to the\nusers of your website.\n\nPlease read more about GPL for JavaScript on [greendrake.info](https://greendrake.info/publications/js-gpl).\n\n## Demos\n\n- [Embedded PGN viewer](https://github.com/lichess-org/pgn-viewer)\n- [Chess TV](https://lichess.org/tv)\n- [Board editor](https://lichess.org/editor)\n- [Puzzles](https://lichess.org/training)\n- [Analysis board](https://lichess.org/ofWXRFGy)\n- [Game preview](https://lichess.org/games)\n\n## Features\n\nChessground is designed to fulfill all lichess.org web and mobile apps needs, so it is pretty featureful.\n\n- Well typed with TypeScript\n- Fast. Uses a custom DOM diff algorithm to reduce DOM writes to the absolute minimum.\n- Small footprint: 10K gzipped (31K unzipped). No dependencies.\n- SVG drawing of circles, arrows, and custom user shapes on the board\n- Arrows snap to valid moves. Freehand arrows can be drawn by dragging the mouse off the board and back while drawing an arrow.\n- Entirely configurable and reconfigurable at any time\n- Styling with CSS only: board and pieces can be changed by simply switching a class\n- Fluid layout: board can be resized at any time\n- Support for 3D pieces and boards\n- Full mobile support (touchstart, touchmove, touchend)\n- Move pieces by click\n- Move pieces by drag \u0026 drop\n  - Minimum distance before drag\n  - Centralisation of the piece under the cursor\n  - Piece ghost element\n  - Drop off revert or trash\n- Premove by click or drag\n- Drag new pieces onto the board (editor, Crazyhouse)\n- Animation of pieces: moving and fading away\n- Display last move, check, move destinations, and premove destinations (hover effects possible)\n- Import and export positions in FEN notation\n- User callbacks\n- No chess logic inside: can be used for [chess variants](https://lichess.org/variant)\n\n## Installation\n\n```sh\nnpm install --save @lichess-org/chessground\n```\n\n### Usage\n\n```js\nimport { Chessground } from '@lichess-org/chessground';\n\nconst config = {};\nconst ground = Chessground(document.body, config);\n```\n\n### Wrappers\n\n- React: [react-chess/chessground](https://github.com/react-chess/chessground), [ruilisi/react-chessground](https://github.com/ruilisi/react-chessground)\n- Vue.js: [vitogit/vue-chessboard](https://github.com/vitogit/vue-chessboard), [qwerty084/vue3-chessboard](https://github.com/qwerty084/vue3-chessboard)\n- Angular: [topce/ngx-chessground](https://github.com/topce/ngx-chessground)\n- Svelte: [Janldeboer/svelte5-chessground](https://github.com/Janldeboer/svelte5-chessground), [agelas/svelte-chessground-ui (Svelte 4)](https://github.com/agelas/svelte-chessground-ui), [gtim/svelte-chessground (Svelte3)](https://github.com/gtim/svelte-chessground),\n\nMore? Please make a pull request to include it here.\n\n## Documentation\n\n- [Config types](https://github.com/lichess-org/chessground/tree/master/src/config.ts)\n- [Default config values](https://github.com/lichess-org/chessground/tree/master/src/state.ts)\n- [API type signatures](https://github.com/lichess-org/chessground/tree/master/src/api.ts)\n- [Simple standalone example](https://github.com/lichess-org/chessground/blob/master/demo.html)\n- [Examples repo](https://github.com/lichess-org/chessground-examples/tree/master/src/units)\n- [Base CSS](https://github.com/lichess-org/chessground-examples/blob/master/assets/chessground.css)\n\n## Development\n\nInstall build dependencies:\n\n```sh\npnpm install\n```\n\nTo build the node module:\n\n```sh\npnpm run compile --watch\n```\n\nTo build the standalone:\n\n```sh\npnpm run dist\n```\n\nTo run tests:\n\n```sh\npnpm test\n## or\npnpm test:watch\n```\n\n## Release procedure\n\n- https://github.com/lichess-org/chessground/actions/workflows/release.yaml\n- [Run workflow]\n- Branch: master\n- Version tag: vX.Y.Z\n\nThe release workflow will increment the package.json version, create the tag, the github release, and publish to npm\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flichess-org%2Fchessground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flichess-org%2Fchessground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flichess-org%2Fchessground/lists"}