All data comes from my project ChessMonitor, which maintains one of the largest chess databases in the world. Feel free to check it out! :)
100 karma · joined July 5, 2021
All data comes from my project ChessMonitor, which maintains one of the largest chess databases in the world. Feel free to check it out! :)
That said, there are also some unique features like "Openings" which allows you to quickly identify your best/worst openings.
Like the author, I also use regression, but extended to non-title players. More information: https://www.chessmonitor.com/blog/2023-elo-calculation
If anyone wants more info on how this works, check out this post with more details: https://www.chessmonitor.com/blog/2023-elo-calculation
Another key feature Lichess does not have, is the Openings page. It is very powerful when used correctly. You can look at your openings and immediately see for which openings you might need to consume more theory (or which you should not play at all).
Here is an example: https://www.chessmonitor.com/u/cdPiOkUArRJ7shVNJcT3/openings...
My code for that is rather simple. I'm using Next.js and the code looks something like this (a little simplified):
const router = useRouter(); // get the router/location object
const information = useFetch({ position: router.query.position }); // fetch information from the server
function changeChessPosition(newPosition) { // called when position changes
router.replace({ query: { postition: newPosition } }); // replaces the state in the URL
}
In addition, I have some caching in place so that each position is only downloaded once and the change function looks a little more complicated in my case as there are multiple values that can be change for each page.That said, there are some optimizations you can apply that will compress moves even further (for example the order of the moves as explained in the Lichess blog post is important). In the end it's a tradeoff between (de)serializing the game fast and reducing the size (even more).
I guess OAuth is relatively fast as I don't have a middleman (like Auth0) in there. It's just Passport.js.
Check out this great blog post of Lichess for more information: https://lichess.org/blog/Wqa7GiAAAOIpBLoY/developer-update-2...
And shameless plug: Using this encoding, I'm storing millions of games on https://www.chessmonitor.com/ There you can link your Chess.com or Lichess account and view all kind of statistics of your games.
Here is an example for the current world champion: https://www.chessmonitor.com/u/kcc58R9eeGY09ey5Rmoj
It stores your games and gives you an explorer for your games similar to what openingtree does.
Here is an example for the current world champion: https://www.chessmonitor.com/u/kcc58R9eeGY09ey5Rmoj/explorer
The openings page list your openings for white and black. If you click on an opening it takes you to the explorer which shows the stats for only one color (white by default). Therefore, if you play an opening for black a lot it will appear in the list of your openings. But when you click on the opening, the explorer will show your stats for white.
There is also another problem, that the detection of openings (on the openings page) respects transpositions [1] while the explorer does not.
Maybe I'll remove the link to the explorer as this seems to cause a lot of confusion...
But there are many other features I want to implement first. I'm currently more focused on the statistics part than on the chess.com/lichess relation.
Here is an example for the current world champion: https://www.chessmonitor.com/u/kcc58R9eeGY09ey5Rmoj