diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 459df85f16..08c3a4596f 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -64,3 +64,8 @@ repos:
rev: 0.2.2
hooks:
- id: checkmake
+ - repo: https://github.com/adamchainz/djade-pre-commit
+ rev: 1.6.0
+ hooks:
+ - id: djade
+ args: [--target-version, "5.2"]
diff --git a/dashboard/templates/base_dashboard.html b/dashboard/templates/base_dashboard.html
index 19773bd20f..15d419ba67 100644
--- a/dashboard/templates/base_dashboard.html
+++ b/dashboard/templates/base_dashboard.html
@@ -1,17 +1,18 @@
{% extends "base.html" %}
-{% load i18n %}
-{% load static %}
+{% load i18n static %}
{% block sectionid %}dashboard{% endblock %}
{% block title %}{% translate 'Development dashboard' %}{% endblock %}
+
{% block layout_class %}full-width{% endblock %}
+
{% block header %}
Development dashboard
-{% endblock %}
+{% endblock header %}
{% block javascript %}
-{% endblock %}
+{% endblock javascript %}
diff --git a/dashboard/templates/dashboard/detail.html b/dashboard/templates/dashboard/detail.html
index 7484d964c8..2d08950dda 100644
--- a/dashboard/templates/dashboard/detail.html
+++ b/dashboard/templates/dashboard/detail.html
@@ -11,10 +11,10 @@
{% translate "All metrics" %}
-{% endblock %}
+{% endblock content %}
{% block javascript %}
{{ block.super }}
-{% endblock %}
+{% endblock javascript %}
diff --git a/dashboard/templates/dashboard/index.html b/dashboard/templates/dashboard/index.html
index 276a1b0107..8908f379ea 100644
--- a/dashboard/templates/dashboard/index.html
+++ b/dashboard/templates/dashboard/index.html
@@ -1,6 +1,5 @@
{% extends "base_dashboard.html" %}
-{% load i18n %}
-{% load static %}
+{% load i18n static %}
{% block content %}
@@ -23,10 +22,10 @@
{% blocktranslate with timestamp=data.0.latest.timestamp|timesince %}Updated {{ timestamp }} ago.{% endblocktranslate %}
-{% endblock %}
+{% endblock content %}
{% block javascript %}
{{ block.super }}
-{% endblock %}
+{% endblock javascript %}
diff --git a/djangoproject/templates/400.html b/djangoproject/templates/400.html
index 0437552b64..79fd91a25c 100644
--- a/djangoproject/templates/400.html
+++ b/djangoproject/templates/400.html
@@ -9,4 +9,4 @@
{% translate "Bad request" %}
{% translate "Yikes, this was a bad request. Not sure why, but it sure was bad." %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/403.html b/djangoproject/templates/403.html
index 77393a6da2..caa65eabaf 100644
--- a/djangoproject/templates/403.html
+++ b/djangoproject/templates/403.html
@@ -9,4 +9,4 @@
{% translate "Permission denied" %}
{% translate "Apologies, but it seems as if you're not allowed to access this page. We honestly hope this is just a mistake." %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/404.html b/djangoproject/templates/404.html
index c34e301e7e..2aded54348 100644
--- a/djangoproject/templates/404.html
+++ b/djangoproject/templates/404.html
@@ -20,4 +20,4 @@ {% translate "Page not found" %}
Here's a link to the homepage . You know, just in case.
{% endblocktranslate %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/410.html b/djangoproject/templates/410.html
index 2129e8b211..78b6446077 100644
--- a/djangoproject/templates/410.html
+++ b/djangoproject/templates/410.html
@@ -23,4 +23,4 @@ {% translate "Page removed." %}
{% endblocktranslate %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/500.html b/djangoproject/templates/500.html
index a590f2be1f..602872a22d 100644
--- a/djangoproject/templates/500.html
+++ b/djangoproject/templates/500.html
@@ -13,4 +13,4 @@ {% translate "Page unavailable" %}
{% translate "We're messing around with things internally, and the server had a bit of a hiccup." %}
{% translate "Please try again later." %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/accounts/delete_profile.html b/djangoproject/templates/accounts/delete_profile.html
index af9175673a..a84f41a009 100644
--- a/djangoproject/templates/accounts/delete_profile.html
+++ b/djangoproject/templates/accounts/delete_profile.html
@@ -37,4 +37,4 @@ {% translate "Are you sure?" %}
{% endif %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/accounts/delete_profile_success.html b/djangoproject/templates/accounts/delete_profile_success.html
index bb1bab64ab..096280203f 100644
--- a/djangoproject/templates/accounts/delete_profile_success.html
+++ b/djangoproject/templates/accounts/delete_profile_success.html
@@ -13,4 +13,4 @@ {% translate "Account deleted" %}
around on our various community spaces , online and off.
{% endblocktranslate %}
-{% endblock %}
+{% endblock content %}
diff --git a/djangoproject/templates/accounts/edit_profile.html b/djangoproject/templates/accounts/edit_profile.html
index 29d5dfc2d9..9bd5803f6e 100644
--- a/djangoproject/templates/accounts/edit_profile.html
+++ b/djangoproject/templates/accounts/edit_profile.html
@@ -31,7 +31,7 @@ {% translate "Edit your profile" %}
-{% endblock %}
+{% endblock content %}
{% block content-related %}
@@ -56,4 +56,4 @@
-{% endblock %}
+{% endblock content-related %}
diff --git a/djangoproject/templates/accounts/user_profile.html b/djangoproject/templates/accounts/user_profile.html
index 1c89ed9eab..698699992b 100644
--- a/djangoproject/templates/accounts/user_profile.html
+++ b/djangoproject/templates/accounts/user_profile.html
@@ -30,7 +30,7 @@