The official chess web-based app of BoldChess.com. It is a responsive web GUI for the Stockfish chess engine, offering analysis, evaluation, and graphical features.
Our mission is to create a modern, mobile-friendly, free, and open-source web-based chess app, powered by the advanced Stockfish chess engine.
Prerequisites:
Repository Setup:
Dependency Installation:
npm install
Local Server:
npm run start
http://localhost:3000
in a web browser.The app is currently using Stockfish 16.1 JS, which utilizes the SharedArrayBuffer
. To ensure the engine functions correctly, you need to enable SharedArrayBuffer support both locally and on your server. This involves setting appropriate HTTP headers.
To enable SharedArrayBuffer
, you must configure the following HTTP headers:
same-origin
.require-corp
.These headers isolate the context of your page and provide the necessary security guarantees for using SharedArrayBuffer
. Properly configuring these headers will allow the Stockfish 16.1 JS engine to operate efficiently. Alternatively, you can switch to the Stockfish 16.1 Single JS which does not utilize the SharedArrayBuffer
.
Read more about ShreadArrayBuffer
at this link.
The application is designed for easy deployment in any standard Node.js environment.
Running the Server: The main entry point is server.js
, which serves the static files in the public
directory, eliminating the need for a build process. This simplifies deployment and development.
No Build Required: Reflecting the application's simplicity and the direct use of vanilla JavaScript, the 'build' script in package.json
is intentionally minimal: echo 'No build required'
. This is due to the architecture's focus on serving static assets without complex build processes or server-side rendering.
For a list of important improvements and known issues, visit our GitHub Issues page.
We welcome all developers to contribute by adding features or fixing bugs.
Visit the Contributors page to see the list of current contributors.
This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE (AGPLv3). For more details, see the AGPLv3 License.