diff --git a/CHANGELOG.md b/CHANGELOG.md
index 23c8d45..ea847d6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,12 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
 ## [Unreleased]
 
+## [0.20.0] - 2024-11-24
+
+### Changed
+
+-   Updated dependencies.
+
 ## [0.19.1] - 2024-09-10
 
 ### Fixed
@@ -390,7 +396,9 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 -   Gradle helpers for Fabric and Forge projects.
 -   CI workflows.
 
-[Unreleased]: https://github.com/refinedmods/refinedarchitect/compare/v0.19.1...HEAD
+[Unreleased]: https://github.com/refinedmods/refinedarchitect/compare/v0.20.0...HEAD
+
+[0.20.0]: https://github.com/refinedmods/refinedarchitect/compare/v0.19.1...v0.20.0
 
 [0.19.1]: https://github.com/refinedmods/refinedarchitect/compare/v0.19.0...v0.19.1
 
diff --git a/README.md b/README.md
index d77c767..320c099 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,6 @@ See [refinedarchitect-template](https://github.com/refinedmods/refinedarchitect-
     - [Refined Mods on GitHub](https://github.com/refinedmods)
 - [Discord](https://discordapp.com/invite/VYzsydb)
 - [Twitter](https://twitter.com/refinedmods)
-- [Mastodon](https://anvil.social/@refinedmods)
 
 ## Building
 
diff --git a/refinedarchitect-plugin/build.gradle.kts b/refinedarchitect-plugin/build.gradle.kts
index b21b6ae..ff2b761 100644
--- a/refinedarchitect-plugin/build.gradle.kts
+++ b/refinedarchitect-plugin/build.gradle.kts
@@ -25,12 +25,12 @@ repositories {
 }
 
 dependencies {
-    implementation("net.neoforged:moddev-gradle:2.0.27-beta")
-    implementation("fabric-loom:fabric-loom.gradle.plugin:1.8.0-alpha.9")
+    implementation("net.neoforged:moddev-gradle:2.0.47-beta")
+    implementation("fabric-loom:fabric-loom.gradle.plugin:1.8.12")
     implementation("gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:1.1.8")
     implementation("info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.15.0")
     implementation("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:4.4.1.3373")
-    implementation("me.modmuss50:mod-publish-plugin:0.7.3")
+    implementation("me.modmuss50:mod-publish-plugin:0.8.0")
 }
 
 publishing {
diff --git a/refinedarchitect-plugin/src/main/kotlin/versions.kt b/refinedarchitect-plugin/src/main/kotlin/versions.kt
index 5fe636e..d47c13a 100644
--- a/refinedarchitect-plugin/src/main/kotlin/versions.kt
+++ b/refinedarchitect-plugin/src/main/kotlin/versions.kt
@@ -1,10 +1,11 @@
 const val mcVersion = "1.21.1"
 const val parchmentMcVersion = "1.21"
 // See: https://projects.neoforged.net/neoforged/neoforge
-const val neoForgeVersion = "21.1.1"
-const val fabricLoaderVersion = "0.16.0"
-const val fabricApiVersion = "0.102.0+1.21.1"
-const val parchmentVersion = "2024.07.28"
+const val neoForgeVersion = "21.1.80"
+// See: https://fabricmc.net/develop/
+const val fabricLoaderVersion = "0.16.9"
+const val fabricApiVersion = "0.109.0+1.21.1"
+const val parchmentVersion = "2024.11.10"
 // See: https://projects.neoforged.net/neoforged/neoform
 const val nfVersion = "1.21.1-20240808.144430"
 const val javaVersion = 21
\ No newline at end of file
diff --git a/refinedarchitect-versioning/build.gradle.kts b/refinedarchitect-versioning/build.gradle.kts
index e2348be..61d744b 100644
--- a/refinedarchitect-versioning/build.gradle.kts
+++ b/refinedarchitect-versioning/build.gradle.kts
@@ -13,22 +13,22 @@ catalog {
         val apiGuardian = version("apiGuardian", "1.1.2")
         library("apiguardian", "org.apiguardian", "apiguardian-api").versionRef(apiGuardian)
 
-        val junit5 = version("junit5", "5.10.3")
+        val junit5 = version("junit5", "5.11.3")
         library("junit-api", "org.junit.jupiter", "junit-jupiter-api").versionRef(junit5)
         library("junit-engine", "org.junit.jupiter", "junit-jupiter-engine").versionRef(junit5)
         library("junit-params", "org.junit.jupiter", "junit-jupiter-params").versionRef(junit5)
 
-        val assertJ = version("assertJ", "3.26.0")
+        val assertJ = version("assertJ", "3.26.3")
         library("assertj", "org.assertj", "assertj-core").versionRef(assertJ)
 
-        val mockito = version("mockito", "5.12.0")
+        val mockito = version("mockito", "5.14.2")
         library("mockito", "org.mockito", "mockito-core").versionRef(mockito)
 
-        val equalsVerifier = version("equalsverifier", "3.16.1")
+        val equalsVerifier = version("equalsverifier", "3.17.3")
         library("equalsverifier", "nl.jqno.equalsverifier", "equalsverifier").versionRef(equalsVerifier)
 
         // https://www.curseforge.com/minecraft/mc-mods/cloth-config/files
-        val clothConfig = version("cloth-config-fabric", "15.0.127")
+        val clothConfig = version("cloth-config-fabric", "15.0.140")
         library("cloth-config", "me.shedaniel.cloth", "cloth-config-fabric").versionRef(clothConfig)
 
         // https://github.com/TechReborn/Energy (https://maven.fabricmc.net/teamreborn/energy/)
@@ -36,7 +36,7 @@ catalog {
         library("teamreborn-energy", "teamreborn", "energy").versionRef(energy)
 
         // https://modrinth.com/mod/modmenu
-        val modmenu = version("modmenu", "11.0.1")
+        val modmenu = version("modmenu", "11.0.3")
         library("modmenu", "com.terraformersmc", "modmenu").versionRef(modmenu)
     }
 }