diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
new file mode 100644
index 0000000..5c67df4
--- /dev/null
+++ b/.github/workflows/deploy-docs.yml
@@ -0,0 +1,73 @@
+# Simple workflow for deploying static content to GitHub Pages
+name: Deploy Docs to Github Pages
+
+on:
+  # Runs on pushes targeting the default branch
+  push:
+    branches: ["main"]
+
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+  contents: read
+  pages: write
+  id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+  group: "pages"
+  cancel-in-progress: false
+
+jobs:
+  # Build docs job
+  build_docs:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Setup Pages
+        uses: actions/configure-pages@v4
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+      - name: Build docs
+        uses: actions-rs/cargo@v1
+        with:
+          command: doc
+          args: --no-deps
+      - name: Fix docs
+        run: |
+          rm -rf ./docs
+          echo "<meta http-equiv=\"refresh\" content=\"0; url=csflow/index.html\">" > target/doc/index.html
+          cp -r target/doc ./docs
+          chmod -c -R +rX "./docs/" | while read line; do
+            echo "::warning title=Invalid file permissions automatically fixed::$line"
+          done
+      - name: Upload pages artifact
+        uses: actions/upload-pages-artifact@v3
+        with:
+          path: './docs'
+
+  # Deploy job
+  deploy:
+   # Add a dependency to the build job
+    needs: build_docs
+
+    # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
+    permissions:
+      pages: write      # to deploy to Pages
+      id-token: write   # to verify the deployment originates from an appropriate source
+
+    # Deploy to the github-pages environment
+    environment:
+      name: github-pages
+      url: ${{ steps.deployment.outputs.page_url }}
+
+    # Specify runner + deployment step
+    runs-on: ubuntu-latest
+    steps:
+      - name: Deploy to GitHub Pages
+        id: deployment
+        uses: actions/deploy-pages@v4
diff --git a/README.md b/README.md
index 67ef781..eb399e0 100644
--- a/README.md
+++ b/README.md
@@ -8,8 +8,9 @@ This is a repository for my CS2 cheats which utilize [memflow](https://github.co
 
 ### Todo
 - csflow
-    - [ ] Documentation
+    - [ ] Better Documentation with a "getting started"
     - [ ] Test with pcileech hardware
 - radarflow
     - [ ] Test with pcileech hardware
+    - [ ] Optimization
     - [ ] More useful logging, maybe a TUI to write statistics?
diff --git a/csflow/README.md b/csflow/README.md
index 2ff8e84..0d0ce48 100644
--- a/csflow/README.md
+++ b/csflow/README.md
@@ -1,2 +1,5 @@
 # csflow
-SDK for CS2 cheats utilizing [memflow](https://github.com/memflow/memflow)
\ No newline at end of file
+SDK for CS2 cheats utilizing [memflow](https://github.com/memflow/memflow)
+
+## Documentation
+Documentation can be found [here](https://superyu1337.github.io/cs2-memflow/csflow/index.html)