Please as a first start, tell the community about your intent to develop a feature or fix a bug. Search for the associated issue if it exists or open one with steps to reproduce (for bugs) or a [user story](https://en.wikipedia.org/wiki/User_story#Principle) (for features).
## Setup
### Prerequisites
To setup your environment, you would need to install the following dependencies:
- git
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md) (recommended) or nodejs installed on your system
You need to install the supported nodejs version as well as yarn. To do so, in the grist-core root directory, run the following command to install nodejs via nvm:
```bash
$ nvm install
```
Now check that node is installed in the version specified in the `.nvmrc` file:
```bash
$ node --version
```
Then install yarn (the `-g` flag here means that yarn will be available globally):
```bash
$ npm install -g yarn
```
Now each time you want to load nodejs and yarn in your environment, just run the following command at grist-core root directory:
```bash
$ nvm use
```
#### Using nodejs
You can also use nodejs installed in your system. To prevent incompatibilities, ensure that the `node --version` command reports a version equal or greater to the one in `.nvmrc`.
### Install the python packages
Be sure to have Python and virtualenv installed. On debian-based Linux distributions, you can simply run the following command as root:
You can debug the NodeJS application using this command:
```bash
$ yarn start:debug
```
And start using your nodejs debugger client (like the Chrome Devtools). See https://nodejs.org/en/docs/guides/debugging-getting-started#inspector-clients