diff --git a/TODO.md b/TODO.md
index 2d0e27e..9042aa3 100644
--- a/TODO.md
+++ b/TODO.md
@@ -4,6 +4,7 @@ A list of all tasks that need to be completed in the app
A more complex version of this list is available [here](https://trello.com/b/kJw6Aapn/svchat).
- [x] Account / Profile management
+- [x] Avatar cropping
- [ ] Channel context menus
- [x] Containerization with docker and docker-compose
- [ ] Editing messages
diff --git a/bun.lockb b/bun.lockb
index 4aba811..f7d3f0c 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/package.json b/package.json
index 83de4a3..92fe675 100644
--- a/package.json
+++ b/package.json
@@ -49,21 +49,24 @@
"autoprefixer": "^10.4.20",
"better-auth": "^1.1.16",
"better-sqlite3": "^11.8.1",
- "bits-ui": "^1.3.5",
+ "bits-ui": "1.3.2",
"cassandra-driver": "^4.7.2",
"dotenv": "^16.4.7",
"express": "^4.21.2",
- "lucide-svelte": "^0.477.0",
+ "lucide-svelte": "^0.475.0",
"markdown-it": "^14.1.0",
"markdown-it-highlightjs": "^4.2.0",
"markdown-it-link-attributes": "^4.0.1",
"minio": "^8.0.4",
"mode-watcher": "^0.5.1",
+ "runed": "^0.23.4",
"socket.io": "^4.8.1",
"socket.io-client": "^4.8.1",
+ "svelte-easy-crop": "^4.0.0",
"svelte-radix": "^2.0.1",
+ "svelte-toolbelt": "^0.7.1",
"sveltekit-superforms": "^2.23.1",
- "tailwind-merge": "^3.0.2",
+ "tailwind-merge": "^2.6.0",
"tailwind-variants": "^0.3.1",
"tailwindcss": "^3.4.17",
"tsm": "^2.3.0",
diff --git a/src/lib/components/forms/updatePFP.svelte b/src/lib/components/forms/updatePFP.svelte
index 0721fc0..9aeaed7 100644
--- a/src/lib/components/forms/updatePFP.svelte
+++ b/src/lib/components/forms/updatePFP.svelte
@@ -1,29 +1,49 @@
-