chessrepeat is a free, open source chess opening training platform.
It features real-time, collaborative opening training, move scheduling with spaced repetition, a playground mode to train without logging in, and an intuitive, functional interface to edit your repertoire and surface training progress.
chessrepeat is built with a React + TypeScript frontend and Go backend. It makes use of WebSockets for real-time, collaborative training and PostgreSQL for the database. The frontend is served via Cloudflare and the backend runs in a Docker container on an OVHcloud VPS served with Nginx. Authentication is handled with Google OAuth. The frontend leverages chessground for the UI and chessops for chess logic.
chessrepeat schedules your reviews with spaced repetition, which rewards correct guesses with reviews that are scheduled at increasingly longer intervals (in 1 day, 3 days, a week, etc...). The goal here is to minimize the amount of time you spend reviewing moves that you already know.
More specifically, chessrepeat uses the FSRS algorithm to schedule moves. We store a stability and difficulty number in each move and use them to approximate when a move should be next trained.
Read more about FSRS here
