diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8459385574dbb69d1bd90fc77f1818725550a387..e978f658c7e19aea923b9608685cc4c1f1e8189d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,7 +3,7 @@
 First off, thanks for taking the time to contribute!
 
 If there is anything you don't understand feel free to ask. Many of the more advanced tools are also not required for
-fixing small typos or other bugs.
+fixing small typos or simple bugs.
 
 ## Environment
 
@@ -18,76 +18,15 @@ To effectively work on the project the following tools are required:
 
 ### Setting everything up
 
-0. Clone the project from GitGud.io
+0. Clone the project from GitGud.io ([Detailed Git setup and work cycle](devNotes/gitSetup.md))
 1. Open a terminal (Linux) / cmd window (Windows) and navigate to the `fc-pregmod` root directory.
 2. Run `npm install`
 3. Open the directory in your preferred IDE
 4. Configure your IDE to use ESLint and the type checking capabilities of the TypeScript compiler.
 
-#### Git setup and work cycle
-
-First time setup:
-
-0. Follow the steps to clone the main repository if you haven't already.
-1. Create an account on gitgud if you don't have a usable one.
-
-* (optional) Add an SSH key to your account for easier pushing. This allows you to connect to gitgud through SHH, which
-  doesn't require your credentials every time.
-
-2. Fork the main repository through gitgud interface.
-
-* (optional) Delete all branches other than pregmod-master, so you don't get them locally when fetching.
-
-3. Setup your fork as a remote
-
-* (optional) Rename the main repository to upstream
-  * Via terminal: `git remote rename origin upstream`
-* Add your repo as remote
-  * Via terminal: `git remote add origin <url-to-your-fork>`
-  * The big clone button in the gitgud interface on your fork gives you the relevant URLs.
-
-4. Checkout `pregmod-master`
-
-* Via terminal: `git checkout pregmod-master`
-
-5. Make sure `fc-pregmod` tracks `upstream/master`
-
-* Via terminal: `git branch -u upstream/pregmod-master`
-
-Typical cycle with Git:
-
-1. Get changes from upstream
-
-* Via terminal: `git pull`
-* If you don't get new commits from `upstream` repeat steps 4&5 of the setup.
-
-2. Checkout a new branch for your work
-
-* Via terminal: `git checkout -b <branch-name>`
-
-3. Make your changes as you like
-4. Commit your changes
-
-* Via terminal: `git commit <files>`
-* Make the commit message useful (`Fix X`, `Add Y`, etc.)
-
-5. (optional, but recommended) Run sanityCheck before final push to catch any errors you missed. (You can ignore errors
-   unrelated to files you changed.)
-6. Push result into your forked repository
-
-* Via terminal:
-  * Initially `git push -u origin <branch-name>`
-  * Afterwards `git push` will suffice.
-
-7. Create merge request through gitgud interface.
-8. Checkout `pregmod-master` in preparation of next change.
-9. Once the merge request was accepted, delete your local branch.
-
-* Via terminal: `git branch -d <branch-name>`
-
 ## Compiling
 
-While you can compile it like usual (`compile.bat`/`compile.sh`/`make`), There is also a `Gulp script` that creates
+While you can compile it like usual (`compile.bat`/`compile.sh`/`make`), there is also a `Gulp script` that creates
 source files for easier debugging. Other than that there are no differences between compiling for development or
 compiling for playing the game.
 
@@ -95,8 +34,8 @@ compiling for playing the game.
 
 ## Code style
 
-Generally the code style is based on `.eslintrc.json`. If your IDE has an auto format feature it can often read the
-definitions from `.eslintrc.json`.
+Generally the code style is based on our `.eslintrc.json`. If your IDE has an auto format feature it can often read the
+rules from `.eslintrc.json`.
 
 ### Important Rules
 
@@ -123,7 +62,7 @@ of JSDoc.
   * all-caps for constants
 * CSS classes are kebob-case.
 
-New code should generally get organized into the `App` namespace. See `fc-init-js.js` for a rough outline.
+New code should generally get organized into the `App` namespace. See `js/002-config/fc-init-js.js` for a rough outline.
 
 ## JavaScript Features
 
@@ -143,10 +82,10 @@ check.
 
 `ESLint` and `tsc` can be setup in most IDEs aimed at web development to show errors while editing the file.
 
-Contributions should generally not add any new sanity check errors, and it's especially important to check this if you'
-re making changes to .tw files. Use `./compile.sh --sanity` on *nix, or run `compile_debug+sanityCheck.bat` on Windows.
-It corrects common spelling errors and syntax errors in the twine files. Don't worry about preexisting errors, it's not
-totally clean as is and there are a few false positives.
+Contributions should generally not add any new sanity check errors, and it's especially important to check this if
+you're making changes to .tw files. Use `./compile.sh --dry --sanity` on *nix, or run `compile_debug+sanityCheck.bat` on
+Windows. It searches for common spelling errors and syntax errors in the twine files. Don't worry about preexisting
+errors, it's not totally clean as is and there are a few false positives.
 
 # Further Reading
 
@@ -164,7 +103,7 @@ totally clean as is and there are a few false positives.
 
 ## Useful issues
 
-* [Sort a map](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2642)
 * [Setting up VS Code](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2448)
-* [Self executing functions](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2325)
 * [Classes in Game State](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/696)
+* [Self executing functions](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2325)
+* [Sort a map](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2642)
diff --git a/devNotes/gitSetup.md b/devNotes/gitSetup.md
new file mode 100644
index 0000000000000000000000000000000000000000..42a5bff0c10961b522b1036937fe075d4a85ac6d
--- /dev/null
+++ b/devNotes/gitSetup.md
@@ -0,0 +1,59 @@
+# Git setup & work cycle
+
+## First time setup
+
+1. [Install Git for terminal](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) or a Git GUI of your
+   choice.
+
+2. Create an account on gitgud if you don't have a usable one.
+    * (optional) Add an SSH key to your account for easier pushing. This allows you to connect to gitgud through SHH,
+      which doesn't require your credentials every time.
+
+5. Fork the main repository through gitgud interface.
+   * (optional) Delete all branches other than pregmod-master, so you don't get them locally when fetching.
+
+3. Clone the repo
+    * Via terminal: `git clone --single-branch https://gitgud.io/pregmodfan/fc-pregmod.git`
+
+4. Get updates
+    * Via terminal: `git pull`
+
+6. Setup your fork as a remote
+    * Rename the main repository to upstream
+        * Via terminal: `git remote rename origin upstream`
+    * Add your repo as remote
+        * Via terminal: `git remote add origin <url-to-your-fork>`
+        * The big clone button in the gitgud interface on your fork gives you the relevant URLs.
+
+7. Checkout `pregmod-master`
+    * Via terminal: `git checkout pregmod-master`
+
+8. Make sure `fc-pregmod` tracks `upstream/master`
+    * Via terminal: `git branch -u upstream/pregmod-master`
+
+## Typical cycle with Git:
+
+1. Get changes from upstream
+    * Via terminal: `git pull`
+    * If you don't get new commits from `upstream` repeat steps 4&5 of the setup.
+
+2. Checkout a new branch for your work
+    * Via terminal: `git checkout -b <branch-name>`
+
+3. Make your changes as you like
+4. Commit your changes
+    * Via terminal: `git commit <files>`
+    * Make the commit message useful (`Fix X`, `Add Y`, etc.)
+
+5. (optional, but recommended) Run sanityCheck before final push to catch any errors you missed.
+    * You can ignore errors that already existed
+6. Push result into your forked repository
+    * Via terminal:
+        * Initially `git push -u origin <branch-name>`
+        * Afterwards `git push` will suffice.
+
+7. Create merge request through gitgud interface.
+8. Checkout `pregmod-master` in preparation of next change.
+    * Via terminal: `git checkout pregmod-master`
+9. Once the merge request was accepted, delete your local branch.
+    * Via terminal: `git branch -d <branch-name>`