diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html
index e1d10889..7882d4ea 100644
--- a/docs/_templates/footer.html
+++ b/docs/_templates/footer.html
@@ -80,7 +80,7 @@
{%- endif %}
- {% if has_contributor_listing and display_contributors and pagename and page_source_suffix %}
+ {% if display_contributors and pagename and page_source_suffix %}
{% set contributors = get_contributors_for_file(pagename, page_source_suffix) %}
{% if contributors %}
{% if contributors | length > 1 %}
@@ -100,4 +100,4 @@
{% endif %}
-
\ No newline at end of file
+
diff --git a/docs/canary-page.md b/docs/canary-page.md
new file mode 100644
index 00000000..5d1ebb73
--- /dev/null
+++ b/docs/canary-page.md
@@ -0,0 +1,694 @@
+---
+relatedlinks: "[Example link](https://example.com)"
+hide-toc: true
+---
+
+# Test page for default extensions
+
+This page contains basic example structures from every MyST and rST extension that is included in the Sphinx Stack by default.
+
+## `canonical_sphinx`
+
+Below are the default extensions bundled into `canonical_sphinx`.
+
+### Furo theme
+
+This is partially tested by setting Furo's `hide-toc` feature to `true` in this page's metadata.
+
+**Expectation**: The right side of the page should **not** contain a table of contents.
+
+**HTML check**: The HTML of this page does **not** contain the following `` classes:
+
+```html
+
+ (...)
+
+ (...)
+```
+
+### MyST parser
+
+This is tested with the `{sub-ref}` MyST directive to count words through `wordcount-words`.
+
+**Expectation**: There is a number in the sentence "This page has {sub-ref}`wordcount-words` words".
+
+### linkify-it-py
+
+This is tested by writing a URL in plain text and checking that it turns into a link.
+
+**Expectation**: //localhost is a clickable link.
+
+**HTML check**:
+
+```html
+
//localhost
+```
+
+## `notfound.extension`
+
+This is tested by accessing a non-existent sub-page of this documentation set.
+
+**Expectation**: https://documentation.ubuntu.com/sphinx-stack/a renders a "Page not found" message with the same CSS styling as the rest of the documentation, maintaining the left-side navigation and upper menu.
+
+## `sphinx_design`
+
+This is tested by rendering sample structures based on [`sphinx-design` documentation examples](https://sphinx-design.readthedocs.io/en/latest/index.html).
+
+### Grids
+
+#### Basic grid
+
+**Expectation**: The following grids have an outer outline and three grid items.
+
+````{grid}
+:outline:
+
+```{grid-item}
+MyST grid item 1
+```
+```{grid-item}
+MyST grid item 2
+```
+```{grid-item}
+MyST grid item 3
+```
+````
+
+```{eval-rst}
+.. grid::
+ :outline:
+
+ .. grid-item::
+ reST grid item 1
+
+ .. grid-item::
+ reST grid item 2
+
+ .. grid-item::
+ reST grid item 3
+```
+
+**HTML check**:
+
+```html
+
+ (...)
+```
+
+#### Card grids
+
+**Expectation**: The following grids are composed of cards.
+
+````{grid}
+```{grid-item-card} Title 1
+MyST grid item card 1
+```
+```{grid-item-card} Title 2
+MyST grid item card 2
+```
+```{grid-item-card} Title 3
+MyST grid item card 3
+```
+````
+
+```{eval-rst}
+.. grid::
+
+ .. grid-item-card:: Title 1
+
+ reST grid item card 1
+
+ .. grid-item-card:: Title 2
+
+ reST grid item card 2
+
+ .. grid-item-card:: Title 3
+
+ reST grid item card 3
+```
+
+**HTML check**:
+
+```html
+
+ (...)
+```
+
+### Cards
+
+#### Basic card
+
+```{card} MyST card title
+Card content
+```
+
+```{eval-rst}
+.. card:: reST card title
+
+ Card content
+```
+
+**HTML check**:
+
+```html
+
+ (...)
+```
+
+#### Card with header and footer
+
+**Expectation**: The following cards have header and footer text.
+
+```{card} MyST card title
+Header
+^^^
+Card content
++++
+Footer
+```
+
+```{eval-rst}
+.. card:: reST card title
+
+ Header
+ ^^^
+ Card content
+ +++
+ Footer
+```
+
+**HTML check**:
+
+```html
+