Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ tsconfig.tsbuildinfo
.cdk.staging
cdk.out
cdk.context.json
._*
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
legacy-peer-deps=true
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@

## I want to contribute code

- [Set up your development environment](https://github.com/GuillaumeSD/Chesskit?tab=readme-ov-file#running-the-app-in-dev-mode).
- [Set up your development environment](https://github.com/Theprathamshah/Freechess?tab=readme-ov-file#running-the-app-in-dev-mode).
- Communicate with contributors on [Discord](https://discord.com/invite/Yr99abAcUr).
- [Pick a backlog card to work on](https://chesskit.notion.site/4cf7823836724432b71aa8932ba7d5bb). To get started, it is recommended you pick a card with the `good first issue` tag.
- [Pick a backlog card to work on](https://freechess.notion.site/4cf7823836724432b71aa8932ba7d5bb). To get started, it is recommended you pick a card with the `good first issue` tag.
- Before starting to code, you should engage in conversation with contributors on [Discord](https://discord.com/invite/Yr99abAcUr) to ensure that the card is still relevant and get help or additional context if needed.

## I want to contribute artwork/design

Reach out to contributors on [Discord](https://discord.com/invite/Yr99abAcUr) to discuss what you want to contribute. You can also check the [backlog](https://chesskit.notion.site/4cf7823836724432b71aa8932ba7d5bb) for cards related to design.
Reach out to contributors on [Discord](https://discord.com/invite/Yr99abAcUr) to discuss what you want to contribute. You can also check the [backlog](https://freechess.notion.site/4cf7823836724432b71aa8932ba7d5bb) for cards related to design.

## I want to report a bug or a problem

[**Make an issue**](https://github.com/GuillaumeSD/Chesskit/issues/new). Before creating an issue, make sure that:
[**Make an issue**](https://github.com/Theprathamshah/Freechess/issues/new). Before creating an issue, make sure that:

1. You list the steps to reproduce the problem to show that other users may experience it as well, if the issue is not self-descriptive.
2. You provide a clear description of the problem, including any error messages or unexpected behavior.
Expand All @@ -26,5 +26,5 @@ Discussions regarding whether a proposed new feature would be useful should be d

1. Is **effective in delivering a goal**. A feature that adds nothing new or improves nothing is purely fancy.
2. Is **clear and concise**. If ambiguities exist, define them or propose options.
3. Is **not a duplicate**. Check the [backlog](https://chesskit.notion.site/4cf7823836724432b71aa8932ba7d5bb) to see if the feature is already planned or in progress.
3. Is **not a duplicate**. Check the [backlog](https://freechess.notion.site/4cf7823836724432b71aa8932ba7d5bb) to see if the feature is already planned or in progress.
4. Doesn't rely on mundane assumptions. Non-technical people have the tendency to measure how difficult / easy a feature is to implement based on their unreliable instincts, and such assumptions waste everyone's time. **Point out what needs to happen**, not what you think will happen.
6 changes: 3 additions & 3 deletions COPYING.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Copying Chesskit
# Copying Freechess

Any file in this project that does not state otherwise and is not listed as an
exception below is part of chesskit.
exception below is part of freechess.

Chesskit is free software; you can redistribute and/or modify it under the terms
Freechess is free software; you can redistribute and/or modify it under the terms
of the GNU Affero General Public License as published by the Free Software
Foundation; version 3 of the License.

Expand Down
38 changes: 22 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
<div align="center">
<a href="https://github.com/GuillaumeSD/Chesskit">
<img width="120" height="120" src="https://github.com/GuillaumeSD/Chesskit/blob/main/public/android-chrome-192x192.png" alt="Logo">
<a href="https://github.com/Theprathamshah/Freechess">
<img width="120" height="120" src="https://github.com/Theprathamshah/Freechess/blob/main/public/android-chrome-192x192.png" alt="Logo">
</a>

<h3 align="center">Chesskit</h3>
<h3 align="center">Freechess</h3>

<p align="center">
The Ultimate Chess Web App
Enjoy your chess games for free.
<br />
<a href="https://freechess.org/" target="_blank" rel="noopener noreferrer"><strong>freechess.org</strong></a>
<br />
<a href="https://chesskit.org/" target="_blank" rel="noopener noreferrer"><strong>chesskit.org</strong></a>
<br />
<a href="https://discord.com/invite/Yr99abAcUr" target="_blank" rel="noopener noreferrer">Discord Server</a>
·
<a href="https://chesskit.notion.site/4cf7823836724432b71aa8932ba7d5bb" target="_blank" rel="noopener noreferrer">Features Backlog</a>
</p>
</div>
<br />

Chesskit is an open-source chess website to play, view, analyze and review your chess games for free on any device with Stockfish !
## About The Project

Freechess is an open-source chess website to play, view, analyze and review your chess games for free on any device with Stockfish !

## Mission
Play chess, evaluate the positions, analyze your games and save them securely on database, 100% free!

Chesskit aims to offer all the chess related features it can, while being free and open-source. It is designed to be easy to use, fast, and reliable.
Freechess aims to offer all the chess related features it can, while being free and open-source. It is designed to be easy to use, fast, and reliable.

## Features

Expand All @@ -31,13 +33,17 @@ Chesskit aims to offer all the chess related features it can, while being free a
- Play against Stockfish at any elo
- Store your games in your browser database

<img src="https://github.com/GuillaumeSD/Chesskit/blob/main/assets/showcase.png" />
<img src="https://github.com/Theprathamshah/Freechess/blob/main/assets/showcase.png" />

### How to use?

Go to [freechess.org](https://freechess.org) on any device and start playing !

## Stack

Built with [Next.js](https://nextjs.org/docs), [React](https://react.dev/learn/describing-the-ui), [Material UI](https://mui.com/material-ui/getting-started/overview/), and [TypeScript](https://www.typescriptlang.org/docs/handbook/typescript-from-scratch.html).

Deployed on AWS with [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html), see it live [here](https://chesskit.org).
Deployed on AWS with [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html), see it live [here](https://freechess.org).

## Running the app in dev mode

Expand Down Expand Up @@ -98,12 +104,12 @@ npm run deploy

## License

Chesskit is licensed under the GNU Affero General Public License 3. See [copying](COPYING.md) for
details.
Freechess is licensed under the GNU Affero General Public License 3. See [copying](COPYING.md) for
full details.

## Growing thanks to you ❤️
---

[![Stargazers over time](https://starchart.cc/GuillaumeSD/Chesskit.svg?variant=adaptive)](https://starchart.cc/GuillaumeSD/Chesskit)
[![Stargazers over time](https://starchart.cc/Theprathamshah/Freechess.svg?variant=adaptive)](https://starchart.cc/Theprathamshah/Freechess)

## Self-hosting

Expand Down
2 changes: 1 addition & 1 deletion cdk.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"app": "npx tsx cdk/app.ts",
"profile": "chesskit",
"profile": "freechess",
"watch": {
"include": ["**"],
"exclude": [
Expand Down
2 changes: 1 addition & 1 deletion cdk/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ const app = new cdk.App();

new AppStack(app, "FreechessWebapp", {
env: { region: "eu-west-3", account: process.env.CDK_DEFAULT_ACCOUNT },
domainName: "chesskit.org",
domainName: "freechess.org",
pagePaths: ["play", "database"],
});
7 changes: 3 additions & 4 deletions docker/docker-compose-dev.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
services:
chesskit:
image: node:22-slim
container_name: chesskit
freechess:
build: ..
container_name: freechess
user: "${HOST_UID}:${HOST_GID}"
ports:
- "3000:3000"
volumes:
- .:/app
working_dir: /app
entrypoint: /bin/sh -c "npm install && npm run ${COMMAND}"
10 changes: 5 additions & 5 deletions docker/docker-compose-prod.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
services:
chesskit:
freechess:
build:
context: ..
dockerfile: ./docker/Dockerfile
image: chesskit:0.1.0
container_name: chesskit
image: freechess:0.1.0
container_name: freechess
ports:
- "10080:80"
- "10443:443"
volumes:
- ./certs/chesskit.org.pem.autosigned:/etc/letsencrypt/live/chesskit.org/fullchain.pem
- ./certs/chesskit.org.key.autosigned:/etc/letsencrypt/live/chesskit.org/privkey.pem
- ./certs/freechess.org.pem.autosigned:/etc/letsencrypt/live/freechess.org/fullchain.pem
- ./certs/freechess.org.key.autosigned:/etc/letsencrypt/live/freechess.org/privkey.pem
6 changes: 3 additions & 3 deletions docker/nginx.default.conf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
server {
listen 80;
listen [::]:80;
server_name chesskit.org;
server_name freechess.org;
return 302 https://$server_name:443$request_uri;
}
server {
Expand All @@ -16,8 +16,8 @@ server {
gzip_vary on;
gzip_http_version 1.0;

ssl_certificate /etc/letsencrypt/live/chesskit.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chesskit.org/privkey.pem;
ssl_certificate /etc/letsencrypt/live/freechess.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/freechess.org/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
Expand Down
1 change: 1 addition & 0 deletions next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
import "./.next/dev/types/routes.d.ts";

// NOTE: This file should not be edited
// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.
1 change: 1 addition & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const nextConfig = (phase: string): NextConfig => ({
output: phase === PHASE_PRODUCTION_BUILD ? "export" : undefined,
trailingSlash: false,
reactStrictMode: true,
turbopack: {},
images: {
unoptimized: true,
},
Expand Down
Loading