+++
title = "Dynamic languages"
weight = 2
+++
# Dynamic languages
For dynamic languages you can use `gw` very simply with [processes](/usage/actions#processes).
## Configuration
Wrap the way you normally start your program with the `--process` flag.
### Node.js
For example for Node.js programs, use the usual `npm run start` script with a process:
```sh
gw /path/to/repo -p 'npm run start'
```
You can also run the unit tests first, if you want to make sure to restart if the code is in a correct state:
```sh
gw /path/to/repo -s 'npm run test' -p 'npm run start'
```
If you want to use a build step, for example for TypeScript or Next.js, look at the [TypeScript guide](/guides/compiled#typescript).
### Python
Use the same idea with Python, wrap your program's entrypoint in a process:
```sh
gw /path/to/repo -p 'python manage.py runserver'
```
### Ruby
Same thing with Ruby, add process to your program's entrypoint:
```sh
gw /path/to/repo -p 'bin/rails server'
```