Essential Development Tools
Git/GitHub
We use Git & GitHub for our version control software. This allows us to incrementally make changes to our code base and provides a method of going back to an old version of the code should we need to. You can install it here:

A link to our repo can be found here (you will need to be a member of the organisation to access it):
You can clone our repo with the following command in the terminal
git clone https://github.com/Forumm-Limited/forumm-monorepo.git
Rush
Once you have the repo on your computer you first need to install all of the external packages and dependencies required for the website to run. Typically you'd have a package manager that is responsible for managing, fetching, updating and installing new packages as required.
Our repo is split into several sections e.g. a section for the main website and a separate section for cloud functions. This would normally lead to a duplicate installation of some packages as both sections require the same package to be installed. To get around this issue we use Rush. Rush ensures that we only have one copy of each of the packages we need and it reuses it across the different parts of the repo.
To setup rush follow these instructions:
- Install NodeJS if you haven't already from here:Download | Node.jsNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
https://nodejs.org/en/download/

- Install rush with the following command:
npm install -g @microsoft/rush
- Make sure you have pulled the latest version of the code with:
git pull
- Run
rush updateto install the NPM packages as required (this may take some time)
- You can run
pnpm run serveto start the development server to start the website.
rush update.WebStorm
WebStorm is our prefered IDE (Integrated Development Environment) for writitng code. You can download it here:
https://www.jetbrains.com/webstorm/download/
When making changes to the code base for the website you want to open the directory forumm-monorepo/apps/web when you open the editor (and not just the main forumm-monorepo directory). For editing other parts of the system such as the Firebase Cloud functions code you should open a seperate window in WebStorm.
If you open a new terminal window in the editor you should be able to run the local web server using the following command:
pnpm run serve