Under the hood

Chessicals is a pure web app, implemented with JavaScript (well, TypeScript). All game logic lives inside the app, there is no server backend. This was one of the main motivations behind the original vision - to create an alternative to Zillions et al that didn't require installation or backend roundtrips.

TS-powered JSON

The games are defined through a JSON-based language. As you work on a game we generate TypeScript types on the fly, meaning you get game-specific code completion to help you out.

Here for example we're editing the Amazons data file, and when we want to refer to a layer our editor can show us what the valid references are for this particular game:

Game-specific code completion
Game-specific code completion

Compiled JavaScript

In earlier generations the JSON definitions of a game was fed into the app, and voilĂ  - now you can play the game. However, this meant that performance took a hit whenever we expanded the language grammar, which didn't scale.

The latest generation of Chessicals therefore generates JavaSript code from each JSON definitions, writing code optimised for the inidividual games.

Custom content pipeline

To make adding contents easier we've created a Chessicals-flavoured version of Markdown. Here for example is a peek at the source code for the Chameleon rules description:

Chessicals-flavoured Markdown
Chessicals-flavoured Markdown

Web app

Finally, this web app is built using React, with a NextJS layer on top.

Used technologies
Used technologies