diff --git a/constraints.txt b/constraints.txt
index 6b2b4fd..8cf3161 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -20,7 +20,7 @@ charset-normalizer==3.4.0
     # via requests
 confusable-homoglyphs==3.3.1
     # via django-registration
-django==5.1.2
+django==5.1.3
     # via
     #   -r requirements.in
     #   django-anymail
@@ -43,7 +43,7 @@ django-htmx==1.21.0
     # via -r requirements.in
 django-linear-migrations==2.16.0
     # via -r requirements.in
-django-registration==3.4
+django-registration==5.1.0
     # via -r requirements.in
 gunicorn==23.0.0
     # via -r requirements.in
@@ -57,7 +57,7 @@ markdown==3.7
     # via -r requirements.in
 outcome==1.3.0.post0
     # via trio
-packaging==24.1
+packaging==24.2
     # via gunicorn
 pillow==11.0.0
     # via -r requirements.in
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 691f9ec..48013fd 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -48,7 +48,7 @@ cwcwidth==0.1.9
     #   curtsies
 distlib==0.3.9
     # via virtualenv
-django==5.1.2
+django==5.1.3
     # via
     #   -c constraints.txt
     #   django-browser-reload
@@ -66,9 +66,9 @@ h11==0.14.0
     # via
     #   -c constraints.txt
     #   wsproto
-hypothesis==6.116.0
+hypothesis==6.118.7
     # via -r requirements-dev.in
-identify==2.6.1
+identify==2.6.2
     # via pre-commit
 idna==3.10
     # via
@@ -93,7 +93,7 @@ outcome==1.3.0.post0
     # via
     #   -c constraints.txt
     #   trio
-packaging==24.1
+packaging==24.2
     # via
     #   -c constraints.txt
     #   black
@@ -155,7 +155,7 @@ requests==2.32.3
     #   bpython
     #   pytest-base-url
     #   pytest-selenium
-ruff==0.7.2
+ruff==0.7.3
     # via -r requirements-dev.in
 selenium==4.26.1
     # via
@@ -205,7 +205,7 @@ websocket-client==1.8.0
     # via
     #   -c constraints.txt
     #   selenium
-wheel==0.44.0
+wheel==0.45.0
     # via pip-tools
 wsproto==1.2.0
     # via
diff --git a/requirements.txt b/requirements.txt
index 2c8d2c0..b52bc7f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -20,7 +20,7 @@ charset-normalizer==3.4.0
     # via requests
 confusable-homoglyphs==3.3.1
     # via django-registration
-django==5.1.2
+django==5.1.3
     # via
     #   -r requirements.in
     #   django-anymail
@@ -43,7 +43,7 @@ django-htmx==1.21.0
     # via -r requirements.in
 django-linear-migrations==2.16.0
     # via -r requirements.in
-django-registration==3.4
+django-registration==5.1.0
     # via -r requirements.in
 gunicorn==23.0.0
     # via -r requirements.in
@@ -57,7 +57,7 @@ markdown==3.7
     # via -r requirements.in
 outcome==1.3.0.post0
     # via trio
-packaging==24.1
+packaging==24.2
     # via gunicorn
 pillow==11.0.0
     # via -r requirements.in