diff --git a/pyproject.toml b/pyproject.toml
index 326ef81fc61c9148b5274deb1f4236da8b3a1182..9186582df3d164b99fad51ee1f4f55da8f7b20b6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -148,10 +148,10 @@ sentry = ["sentry-sdk"]
 aleksis-admin = 'aleksis.core.__main__:aleksis_cmd'
 
 [tool.poetry.group.dev.dependencies]
-django-stubs = "^4.2"
+django-stubs = "^5.0.0"
 safety = "^2.3.5"
 
-ruff = "^0.8.2"
+ruff = "^0.11.0"
 
 [tool.poetry.group.test.dependencies]
 pytest = "^8.3"
@@ -166,11 +166,11 @@ freezegun = "^1.5.0"
 optional = true
 
 [tool.poetry.group.docs.dependencies]
-sphinx = "^7.0"
+sphinx = "^8.0.0"
 sphinxcontrib-django = "^2.3.0"
 sphinxcontrib-svg2pdfconverter = "^1.1.1"
 sphinx-autodoc-typehints = "^1.7"
-sphinx_material = "^0.0.35"
+sphinx_material = "^0.0.36"
 [tool.ruff]
 exclude = ["migrations"]
 line-length = 100
@@ -179,7 +179,7 @@ line-length = 100
 select = ["E", "F", "UP", "B", "SIM", "I", "DJ", "A", "S"]
 ignore = ["UP034", "UP015", "B028"]
 [tool.ruff.lint.extend-per-file-ignores]
-"**/*/tests/**/*.py" = ["S101", "ARG", "FBT", "PLR2004", "S311", "S105", "S107"]
+"**/*/tests/**/*.py" = ["S101", "ARG", "FBT", "PLR2004", "S311", "S105"]
 [tool.ruff.lint.isort]
 known-first-party = ["aleksis"]
 section-order = ["future", "standard-library", "django", "third-party", "first-party", "local-folder"]