diff --git a/README.md b/README.md
index 5b88c4b..f7350a6 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,55 @@
# GlutSTBMiniAudio-Template
-To compile the project
+## Setup
+
+### For Windows
+1. Install Visual Studio
+Make sure you have installed Visual Studio, not Visual Studio Code, you need the MSVC Compiler installed which is bundled and accessible with Standard Visual Studio
+
+2. Open the Visual Installer
+
+
+3. Modify your Visual Studio Installation
+
+
+4. Make sure "Desktop Development wiht C++" is installed
+
+
+5. Once installed open Visual Studio and select "Open a folder", then find and select the folder of this project
+
+
+6. When the project opens, CMake should immedately start installing thirdparty dependencies. Please make sure you see *"CMake generation finished"* before continuing.
+
+
+7. Finally select the correct Target from the Target list, to the right of the run button.
+
+
+8. Finally press the run button and the application should just work
+
+
+### For MacOS
+
+1. There are many different ways to use CMake on Mac or Linux. Visual Studio works great, but its a [Command Line Interface](###CLI) application so it's easy to use anywhere.
+However, for this guide, install Visual Studio Code and [Brew](https://brew.sh). Brew is like apt for MacOS, if you don't want to install it, find some way to install CMake.
+
+2. Open this project in Visual Studio Code.
+3. In the extensions tab, find and install "CMake Tools"
+
+4. You may need to reload the project, so do that with CMD+Shift+P, search for *"Reload Window"*, and Press *enter*
+5. When the project opens, it should immediately start downloading the libraries that this project needs. Please wait until it completes or you see *"CMake generation finished"* in the console.
+6. Once CMake has finished configuring, press Shift+F5 (You may also need to press fn depending on how your mac is setup), and the application will run.
+
+
+
+
+
+
+### CLI
+To compile the project with normal cmake, it's stupid easy.
```
-cmake .; make; ./GSM_TEMPLATE
+cmake .; make;
+```
+The binary should be in the root of the project after it is installed so run
+```
+./GSM_TEMPLATE
```
\ No newline at end of file
diff --git a/docs/images/CMAKE_TUTORIAL_MAC_STEP3.png b/docs/images/CMAKE_TUTORIAL_MAC_STEP3.png
new file mode 100644
index 0000000..7efbe4c
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_MAC_STEP3.png differ
diff --git a/docs/images/CMAKE_TUTORIAL_WIN_STEP1.png b/docs/images/CMAKE_TUTORIAL_WIN_STEP1.png
new file mode 100644
index 0000000..a32eaf6
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_WIN_STEP1.png differ
diff --git a/docs/images/CMAKE_TUTORIAL_WIN_STEP2.png b/docs/images/CMAKE_TUTORIAL_WIN_STEP2.png
new file mode 100644
index 0000000..a27f98c
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_WIN_STEP2.png differ
diff --git a/docs/images/CMAKE_TUTORIAL_WIN_STEP3.png b/docs/images/CMAKE_TUTORIAL_WIN_STEP3.png
new file mode 100644
index 0000000..69d74ad
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_WIN_STEP3.png differ
diff --git a/docs/images/CMAKE_TUTORIAL_WIN_STEP4.png b/docs/images/CMAKE_TUTORIAL_WIN_STEP4.png
new file mode 100644
index 0000000..a041c93
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_WIN_STEP4.png differ
diff --git a/docs/images/CMAKE_TUTORIAL_WIN_STEP5.png b/docs/images/CMAKE_TUTORIAL_WIN_STEP5.png
new file mode 100644
index 0000000..21ab5a4
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_WIN_STEP5.png differ
diff --git a/docs/images/CMAKE_TUTORIAL_WIN_STEP6.png b/docs/images/CMAKE_TUTORIAL_WIN_STEP6.png
new file mode 100644
index 0000000..2b83c3c
Binary files /dev/null and b/docs/images/CMAKE_TUTORIAL_WIN_STEP6.png differ