diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..6a3a65c
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,13 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [1.0.0] - 2025-04-11
+
+### Added
+- Add versioning
+- Add setup instructions for local development
+- Add badges
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9069167
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+# Loom Forge | Customisation Files
+
+<div>
+<!-- Version Badge -->
+<img src="https://img.shields.io/badge/Version-1.0.0-blue" alt="Version 1.0.0">
+<!-- License Badge -->
+<img src="https://img.shields.io/badge/License-GPL--3.0--or--later-34ad9b" alt="License GPL--3.0--or--later">
+</div>
+
+This repo contains the customisation files for this website (Loom Forge). Loom Forge uses Forgejo, an open-source, self-hosted Git hosting solution.
+
+# Environment Setup
+
+## Create Local Forge Instance
+
+- Create a new folder anywhere on your system, e.g. `C:/Forge`
+- Enter your Forge directory: `cd /c/Forge`
+- Create a `docker-compose.yml` file: `touch docker-compose.yml`
+- Paste in the contents of the `yaml` file shown below
+- Build your containers: `docker compose up -d`
+- Assuming you are using the default settings your Forge instance should be available at `http://localhost:3000`
+
+```yaml
+services:
+  forgejo:
+    image: codeberg.org/forgejo/forgejo:10
+    container_name: forgejo
+    ports:
+      - "3000:3000"
+    volumes:
+      - ./data:/data
+      - ./custom:/data/gitea/custom
+    environment:
+      - USER_UID=1000
+      - USER_GID=1000
+      - FORGEJO_CUSTOM=/data/gitea/custom
+```
+
+## Clone Repository
+
+- Still inside your Forge directory, clone this repository as `custom` e.g. `git clone https://forge.winningsoftware.co.uk/LoomLabs/loom.forge.git custom`
+- Navigate to repository: `cd custom`
+- Install assets: `npm install && npm run dev`
+- Restart containers to see changes: `docker restart forgejo`
\ No newline at end of file
diff --git a/package.json b/package.json
index 0c6e5cf..c6c37cd 100644
--- a/package.json
+++ b/package.json
@@ -2,11 +2,11 @@
     "scripts": {
         "build": "webpack --config webpack.config.js --mode=production",
         "dev": "webpack --config webpack.config.js --mode=development",
-        "watch": "webpack --config webpack.config.js --mode=development --watch"
+        "watch": "webpack --config webpack.config.js --mode=development --watch",
+        "badge": "npx badger --version ./package.json && npx badger --license ./package.json"
     },
     "devDependencies": {
-        "webpack": "^5.99.5",
-        "webpack-cli": "^6.0.1",
+        "@dannyxcii/badger": "^0.5.0",
         "autoprefixer": "^10.4.21",
         "css-loader": "^7.1.2",
         "css-minimizer-webpack-plugin": "^7.0.2",
@@ -18,6 +18,10 @@
         "sass-loader": "^16.0.5",
         "terser-webpack-plugin": "^5.3.14",
         "ts-loader": "^9.5.2",
-        "typescript": "^5.8.3"
-    }
-}
\ No newline at end of file
+        "typescript": "^5.8.3",
+        "webpack": "^5.99.5",
+        "webpack-cli": "^6.0.1"
+    },
+    "version": "1.0.0",
+    "license": "GPL-3.0-or-later"
+}