diff --git a/docs/README.md b/docs/README.md
index 6048fb6ce99ea433a45282b2c2d1b47f35047ce4..b7fc40dfdfb5b1b56a4582a30e1be25163251a01 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,3 +1,7 @@
+---
+title: Metabase documentation
+---
+
 ## Getting started
 
 - [Getting started](/learn/getting-started/getting-started)
diff --git a/docs/accessibility.md b/docs/accessibility.md
index 5a619a097ec7c09a9d850a8fc2a28b302e9424f1..282bf47fc0a2c16793928f4c5cd43896f35bdb27 100644
--- a/docs/accessibility.md
+++ b/docs/accessibility.md
@@ -1,3 +1,7 @@
+---
+title: Accessibility in Metabase
+---
+
 # Accessibility in Metabase 
 
 Metabase is not yet fully compliant with [the US federal government's Section 508 standard][508-accessibility]. Some specific areas where Metabase we still have work to do include:
@@ -13,4 +17,4 @@ Metabase is not yet fully compliant with [the US federal government's Section 50
 If you'd like to help us address these accessibility gaps, please see [our developers' guide][developers-guide].
 
 [508-accessibility]: https://section508.gov/
-[developers-guide]: /docs/latest/developers-guide.html
+[developers-guide]: /docs/latest/developers-guide.html
\ No newline at end of file
diff --git a/docs/administration-guide/01-managing-databases.md b/docs/administration-guide/01-managing-databases.md
index 29086981eba3878f11e16644602ad3b67b2b4697..59bd5813aec3c6a7e85ac2358baf2999615b0bfb 100644
--- a/docs/administration-guide/01-managing-databases.md
+++ b/docs/administration-guide/01-managing-databases.md
@@ -1,3 +1,7 @@
+---
+title: Adding and managing databases
+---
+
 # Adding and managing databases
 
 - [Adding a database connection](#adding-a-database-connection)
@@ -154,4 +158,4 @@ If you're having trouble with your database connection, you can check out this [
 
 ## Next: enabling features that send email
 
-Metabase can send emails for certain features, like email invites, but first you need to [set up an email account](02-setting-up-email.md).
+Metabase can send emails for certain features, like email invites, but first you need to [set up an email account](02-setting-up-email.md).
\ No newline at end of file
diff --git a/docs/administration-guide/02-setting-up-email.md b/docs/administration-guide/02-setting-up-email.md
index c3398b24a39ce73424f1f66e22421b0661f3a06e..97fbacf4e4f97686c6f99b21795093f437a6001e 100644
--- a/docs/administration-guide/02-setting-up-email.md
+++ b/docs/administration-guide/02-setting-up-email.md
@@ -1,3 +1,6 @@
+---
+title: Setting up Email
+---
 
 ## Setting up Email
 
@@ -46,4 +49,4 @@ You should see this form:
 ---
 
 ## Next: setting up Slack
-If you want to use Slack to enhance the Metabase experience then lets do that now. Let’s learn [how to setup Slack](09-setting-up-slack.md).
+If you want to use Slack to enhance the Metabase experience then lets do that now. Let’s learn [how to setup Slack](09-setting-up-slack.md).
\ No newline at end of file
diff --git a/docs/administration-guide/03-metadata-editing.md b/docs/administration-guide/03-metadata-editing.md
index 8b6efe2ddf5141126318224a39a20f37659ff84d..bb3a48501b8bb72d36f22dc7f1ea8771e826f85a 100644
--- a/docs/administration-guide/03-metadata-editing.md
+++ b/docs/administration-guide/03-metadata-editing.md
@@ -1,4 +1,8 @@
-# The Data Model page: editing metadata
+---
+title: The Data Model page
+---
+
+# The Data Model page
 
 Metabase allows you to annotate the data in your database. Annotations can give Metabase a better understanding of what the data actually means, which allows Metabase to make more intelligent decisions when processing and displaying that data.
 
diff --git a/docs/administration-guide/04-managing-users.md b/docs/administration-guide/04-managing-users.md
index d5d2ee39a55669aa919d08b194869e929329ef54..aae23d7ce5589799fe4c8b96f22515234fa859a7 100644
--- a/docs/administration-guide/04-managing-users.md
+++ b/docs/administration-guide/04-managing-users.md
@@ -1,3 +1,7 @@
+---
+title: Managing people and groups
+---
+
 # Managing people and groups
 
 To start managing people, first go to the **Admin panel** by clicking on the **gear** icon in the bottom of the navigation sidebar and selecting **Admin settings**.
@@ -169,4 +173,4 @@ For guidance on which groups you should create for your Metabase, check out [Per
 
 - [Configure Single Sign-On](10-single-sign-on.md).
 - [Permissions overview](05-setting-permissions.md)
-- [Learn permissions](https://www.metabase.com/learn/permissions/)
+- [Learn permissions](https://www.metabase.com/learn/permissions/)
\ No newline at end of file
diff --git a/docs/administration-guide/05-setting-permissions.md b/docs/administration-guide/05-setting-permissions.md
index cb3f883bf034bad0ca48a1b9c69d81421d7d3715..dc868063dc58f3bccd739c3cde4585f4ee58cb85 100644
--- a/docs/administration-guide/05-setting-permissions.md
+++ b/docs/administration-guide/05-setting-permissions.md
@@ -1,3 +1,7 @@
+---
+title: Permissions overview
+---
+
 # Permissions overview
 
 There are always going to be sensitive bits of information in your data, and thankfully Metabase provides a rich set of tools to ensure that people on your team only see the data they’re supposed to.
@@ -67,4 +71,4 @@ Whenever you change permissions for a group, make sure you:
 [slack-integration]: 09-setting-up-slack.md
 [sql-snippet-folders]: ../enterprise-guide/sql-snippets.html
 [table-permissions]: data-permissions.md#table-permissions
-[troubleshooting-permissions]: ../troubleshooting-guide/permissions.html
+[troubleshooting-permissions]: ../troubleshooting-guide/permissions.html
\ No newline at end of file
diff --git a/docs/administration-guide/06-collections.md b/docs/administration-guide/06-collections.md
index 64ecc5fc72764491fd7e232d076fe556c8e8a80d..6c19bc1daffaf4e1705e8070b85b744d5af5abfa 100644
--- a/docs/administration-guide/06-collections.md
+++ b/docs/administration-guide/06-collections.md
@@ -1,3 +1,7 @@
+---
+title: Collection permissions
+---
+
 # Collection permissions
 
 ![Collection detail](images/collections/collection-detail.png)
@@ -72,4 +76,4 @@ A personal collection works just like any other collection except that its permi
 [sandbox-rows]: /learn/permissions/data-sandboxing-row-permissions.html
 [slack-integration]: 09-setting-up-slack.md
 [sql-snippet-folders]: ../enterprise-guide/sql-snippets.md
-[table-permissions]: data-permissions.md#table-permissions
+[table-permissions]: data-permissions.md#table-permissions
\ No newline at end of file
diff --git a/docs/administration-guide/07-segments-and-metrics.md b/docs/administration-guide/07-segments-and-metrics.md
index 268e2c6101f50b159bf577d691b1b3f2d374a243..fee31e9b653123f525efd42f6a200ecfcd9db52a 100644
--- a/docs/administration-guide/07-segments-and-metrics.md
+++ b/docs/administration-guide/07-segments-and-metrics.md
@@ -1,3 +1,7 @@
+---
+title: Creating Custom Segments and Metrics
+---
+
 # Creating Custom Segments and Metrics
 
 Metabase allows you to create your own segments and metrics so you can quickly and easily reference them in the query builder. Just head over to the **Admin Panel** and select **Data Model** from the top menu.
@@ -45,4 +49,4 @@ Lastly, you can also view the revision history for each segment and metric from
 ---
 
 ## Next: managing user accounts
-Let's learn how to [create and manage accounts for your users](04-managing-users.md).
+Let's learn how to [create and manage accounts for your users](04-managing-users.md).
\ No newline at end of file
diff --git a/docs/administration-guide/08-configuration-settings.md b/docs/administration-guide/08-configuration-settings.md
index f839809547e2ab4452117ed68e6691a9dfc9f860..7262cb97bdf6cc172e735e839b0a2c419fb92188 100644
--- a/docs/administration-guide/08-configuration-settings.md
+++ b/docs/administration-guide/08-configuration-settings.md
@@ -1,3 +1,7 @@
+---
+title: General settings
+---
+
 ## General settings
 
 This section contains settings for your whole instance, like its URL, the reporting timezone, and toggles for disabling or enabling some of Metabase's optional features.
@@ -54,4 +58,4 @@ To manually fix field or table names if they still look wrong, you can go to the
 
 ## Next: Formatting data
 
-Customize the default language for Metabase, as well as how numbers, dates, times, and currencies should be displayed in Metabase with [formatting settings](19-formatting-settings.md).
+Customize the default language for Metabase, as well as how numbers, dates, times, and currencies should be displayed in Metabase with [formatting settings](19-formatting-settings.md).
\ No newline at end of file
diff --git a/docs/administration-guide/09-setting-up-slack.md b/docs/administration-guide/09-setting-up-slack.md
index bdc27e93bfbc1dd072bd3ffe114f2af4f51ba3cc..d6404716cca5773ad0a0d5e303d4933a3f4269ed 100644
--- a/docs/administration-guide/09-setting-up-slack.md
+++ b/docs/administration-guide/09-setting-up-slack.md
@@ -1,3 +1,7 @@
+---
+title: Setting up Slack
+---
+
 # Setting up Slack
 
 If you want to have your [Dashboard subscriptions][dashboard-subscriptions] sent to Slack channels (or people on Slack), an admin must first integrate your Metabase with Slack.
@@ -83,4 +87,4 @@ In Metabase, click on the **Save changes** button and that’s it! Metabase will
 
 There are a few other settings you configure in Metabase. [Learn how](08-configuration-settings).
 
-[dashboard-subscriptions]: ../users-guide/dashboard-subscriptions.html
+[dashboard-subscriptions]: ../users-guide/dashboard-subscriptions.html
\ No newline at end of file
diff --git a/docs/administration-guide/10-single-sign-on.md b/docs/administration-guide/10-single-sign-on.md
index 332aa978658d86c3e012dc396fef4f9442e5355c..61b5788adb082112e7eadeec41b518f32c734a35 100644
--- a/docs/administration-guide/10-single-sign-on.md
+++ b/docs/administration-guide/10-single-sign-on.md
@@ -1,3 +1,7 @@
+---
+title: Authenticating with Google Sign-In or LDAP
+---
+
 # Authenticating with Google Sign-In or LDAP
 
 Enabling [Google Sign-In](#enabling-google-sign-in) or [LDAP](#enabling-ldap-authentication) for [single sign-on (SSO)][sso-docs] lets your team log in with a click instead of using email and password. It can also be used to let people sign up for Metabase accounts without an admin having to create them first. You can find these options in the **Settings** section of the **Admin Panel**, under **Authentication**.
@@ -143,4 +147,4 @@ If you're having trouble, go to [Troubleshooting logins](../troubleshooting-guid
 [sso-def]: /glossary/sso
 [sso-docs]: ../administration-guide/sso.html
 [user-attributes-docs]: ../enterprise-guide/data-sandboxes.html#getting-user-attributes
-[user-attributes-def]: /glossary/attribute#user-attributes-in-metabase
+[user-attributes-def]: /glossary/attribute#user-attributes-in-metabase
\ No newline at end of file
diff --git a/docs/administration-guide/11-getting-started-guide.md b/docs/administration-guide/11-getting-started-guide.md
index e4cbfcf74d2a269ba09bd74dbb85bb1b89fc54e7..2b2848b63eb6f6d2b26543098fca588d428e972c 100644
--- a/docs/administration-guide/11-getting-started-guide.md
+++ b/docs/administration-guide/11-getting-started-guide.md
@@ -1,3 +1,7 @@
+---
+title: Getting Started Guide
+---
+
 ## Getting Started Guide
 
-The Getting Started Guide was removed from Metabase in version 0.30. Instead, a great way of helping your teammates find their way around Metabase is by pinning the most important dashboards or questions in each of your collections to make it clear what's most important.
+The Getting Started Guide was removed from Metabase in version 0.30. Instead, a great way of helping your teammates find their way around Metabase is by pinning the most important dashboards or questions in each of your collections to make it clear what's most important.
\ No newline at end of file
diff --git a/docs/administration-guide/12-public-links.md b/docs/administration-guide/12-public-links.md
index 50aba49bd8efcd3dd0a30cb12d7a82405c88d3ef..a6da83cf47962c47ddfbdae96a2fbb9f73da9081 100644
--- a/docs/administration-guide/12-public-links.md
+++ b/docs/administration-guide/12-public-links.md
@@ -1,3 +1,7 @@
+---
+title: Sharing and embedding dashboards or questions
+---
+
 ## Sharing and embedding dashboards or questions
 
 Sometimes you'll want to share a dashboard or question you've saved with someone that isn't a part of your organization or company, or someone who doesn't need access to your full Metabase instance. Metabase lets administrators create public links and simple embeds to let you do just that.
@@ -57,4 +61,4 @@ To specify multiple values for filters, though, you'll need to separate them wit
 
 ## Next: embedding dashboards and charts in other applications
 
-If you're trying to do more complex, integrated embedding in your own web application, then you can check out the [documentation for that feature](13-embedding.md).
+If you're trying to do more complex, integrated embedding in your own web application, then you can check out the [documentation for that feature](13-embedding.md).
\ No newline at end of file
diff --git a/docs/administration-guide/13-embedding.md b/docs/administration-guide/13-embedding.md
index 6a1329f95e78eb0a9534b4579ac7abb15b0ca1e3..d425beb87b1ab1c811dd597df2e899fe8fc91994 100644
--- a/docs/administration-guide/13-embedding.md
+++ b/docs/administration-guide/13-embedding.md
@@ -1,3 +1,7 @@
+---
+title: Embedding Metabase in other applications
+---
+
 # Embedding Metabase in other applications
 
 Metabase includes a powerful application embedding feature that allows you to embed your saved questions or dashboards in your own web applications. You can even pass parameters to these embeds to customize them for different users.
@@ -138,4 +142,4 @@ To see concrete examples of how to embed Metabase in applications under a number
 
 ## Further reading
 
-Check out the [Embedding track](/learn/embedding) in Learn Metabase.
+Check out the [Embedding track](/learn/embedding) in Learn Metabase.
\ No newline at end of file
diff --git a/docs/administration-guide/14-caching.md b/docs/administration-guide/14-caching.md
index cbb84067342259bdfe19e06ed825101009b3089e..f330bbbac029155124e40cec6ccb63fdc148c07c 100644
--- a/docs/administration-guide/14-caching.md
+++ b/docs/administration-guide/14-caching.md
@@ -1,3 +1,7 @@
+---
+title: Caching query results
+---
+
 # Caching query results
 
 Metabase now gives you the ability to automatically cache the results of queries that take a long time to run.
@@ -32,4 +36,4 @@ Paid plans ship with [additional caching options](../enterprise-guide/cache.md).
 
 ## Next: map customization
 
-If you need to use a map tile server other than the one Metabase provides, you can find more information [on the next page](20-custom-maps.md).
+If you need to use a map tile server other than the one Metabase provides, you can find more information [on the next page](20-custom-maps.md).
\ No newline at end of file
diff --git a/docs/administration-guide/15-whitelabeling.md b/docs/administration-guide/15-whitelabeling.md
index 4a3bb7bc03d5380f29c6e62c540e7a4578bf9a9a..18cfae5b31459394a4c2c6b9cd7d42e77ee23668 100644
--- a/docs/administration-guide/15-whitelabeling.md
+++ b/docs/administration-guide/15-whitelabeling.md
@@ -1,3 +1,7 @@
+---
+title: White labeling Metabase
+---
+
 ## White labeling Metabase
 
-This page has been moved [here](../enterprise-guide/whitelabeling.md).
+This page has been moved [here](../enterprise-guide/whitelabeling.md).
\ No newline at end of file
diff --git a/docs/administration-guide/16-authenticating-with-saml.md b/docs/administration-guide/16-authenticating-with-saml.md
index 9fbc3de8f7c4d826d82faa1766f4e17080cc414a..ae509436741f1a69303276a29875e58006184819 100644
--- a/docs/administration-guide/16-authenticating-with-saml.md
+++ b/docs/administration-guide/16-authenticating-with-saml.md
@@ -1,3 +1,7 @@
+---
+title: Authenticating with SAML
+---
+
 ## Authenticating with SAML
 
-This page has been moved [here](../enterprise-guide/authenticating-with-saml.md).
+This page has been moved [here](../enterprise-guide/authenticating-with-saml.md).
\ No newline at end of file
diff --git a/docs/administration-guide/17-data-sandboxes.md b/docs/administration-guide/17-data-sandboxes.md
index 1adfba19946b15da1e57a6d35ca8179abbbd1481..df3e963a6a92867b781263bf9bf79fd54c787e36 100644
--- a/docs/administration-guide/17-data-sandboxes.md
+++ b/docs/administration-guide/17-data-sandboxes.md
@@ -1,3 +1,7 @@
+---
+title: Sandboxing your data
+---
+
 ## Sandboxing your data
 
-This page has been moved [here](../enterprise-guide/data-sandboxes.md).
+This page has been moved [here](../enterprise-guide/data-sandboxes.md).
\ No newline at end of file
diff --git a/docs/administration-guide/18-authenticating-with-jwt.md b/docs/administration-guide/18-authenticating-with-jwt.md
index f61e6d7cb6834142ff71284fdd0ba48dd18d3e63..cf3c990bbadf6c2707a7b34cffade3548602d6f8 100644
--- a/docs/administration-guide/18-authenticating-with-jwt.md
+++ b/docs/administration-guide/18-authenticating-with-jwt.md
@@ -1,3 +1,7 @@
+---
+title: JWT-based Authentication
+---
+
 ## JWT-based Authentication
 
-This page has been moved [here](../enterprise-guide/authenticating-with-jwt.md).
+This page has been moved [here](../enterprise-guide/authenticating-with-jwt.md).
\ No newline at end of file
diff --git a/docs/administration-guide/19-formatting-settings.md b/docs/administration-guide/19-formatting-settings.md
index 58b9859ea42d2a693a5a7fb9fd098d2aa343f8c8..ec3b0d97d778c3c982f2dd44679c9450702a4d82 100644
--- a/docs/administration-guide/19-formatting-settings.md
+++ b/docs/administration-guide/19-formatting-settings.md
@@ -1,3 +1,7 @@
+---
+title: Setting default formatting for your data
+---
+
 ## Setting default formatting for your data
 
 There are Metabase users around the world, each with different preferences for how dates, times, numbers, and currencies should be formatted and displayed. Metabase allows you to customize these formatting options at three different levels:
@@ -31,4 +35,4 @@ Lastly, you can override all formatting settings in any specific saved question
 ---
 
 ## Next: caching query results
-Metabase makes it easy to [automatically cache results](14-caching.md) for queries that take a long time to run.
+Metabase makes it easy to [automatically cache results](14-caching.md) for queries that take a long time to run.
\ No newline at end of file
diff --git a/docs/administration-guide/20-custom-maps.md b/docs/administration-guide/20-custom-maps.md
index 528de24a9978508cca338a56fd78ef0aa4e163ba..5179a55aeb783548ed5ca5941a3622f115f46373 100644
--- a/docs/administration-guide/20-custom-maps.md
+++ b/docs/administration-guide/20-custom-maps.md
@@ -1,3 +1,7 @@
+---
+title: Custom Maps
+---
+
 ## Custom Maps
 
 By default, Metabase uses OpenStreetMaps for map visualizations, but there are a few customization options.
@@ -37,4 +41,4 @@ GeoJSON, we recommend that you start [here](https://geojson.org/).
 
 ## Next: editing metadata
 Taking just a few minutes to edit and add info to your database’s metadata can greatly enhance your experience with
-Metabase. Let’s learn how to [edit your metadata](03-metadata-editing.md).
+Metabase. Let’s learn how to [edit your metadata](03-metadata-editing.md).
\ No newline at end of file
diff --git a/docs/administration-guide/application-permissions.md b/docs/administration-guide/application-permissions.md
index 8cf7aa6f4cb810ae2e173d52c9db8c56456c5d28..207454d47a1e065e585df2889e9d279210be3cf4 100644
--- a/docs/administration-guide/application-permissions.md
+++ b/docs/administration-guide/application-permissions.md
@@ -1,3 +1,7 @@
+---
+title: Application permissions
+---
+
 # Application permissions
 
 {% include plans-blockquote.html feature="Application permissions" %}
@@ -40,4 +44,4 @@ This setting determines who can set up:
 - [Dashboard subscriptions](../users-guide/dashboard-subscriptions.md)
 - [Alerts](../users-guide/15-alerts.md)
 
-People will need to be in groups with either view or edit access to the collection that contains the dashboard or question in order to set up alerts. See [Collection permissions](06-collections.md).
+People will need to be in groups with either view or edit access to the collection that contains the dashboard or question in order to set up alerts. See [Collection permissions](06-collections.md).
\ No newline at end of file
diff --git a/docs/administration-guide/data-permissions.md b/docs/administration-guide/data-permissions.md
index b5b44a072080e9f9d866b70a70607caacabe4dc3..501ab96c0ee5db9985196fbc98da265e8e74d08d 100644
--- a/docs/administration-guide/data-permissions.md
+++ b/docs/administration-guide/data-permissions.md
@@ -1,3 +1,7 @@
+---
+title: Data permissions
+---
+
 # Data permissions
 
 This page covers permissions for databases and tables. If you haven't already, check out our [Permissions overview][permissions-overview].
@@ -110,4 +114,4 @@ This setting defines whether a person can edit the connection settings for the d
 [permissions-overview]: 05-setting-permissions.md
 [sandbox-columns]: /learn/permissions/data-sandboxing-column-permissions.html
 [sandbox-rows]: /learn/permissions/data-sandboxing-row-permissions.html
-[sql-snippet-folders]: ../enterprise-guide/sql-snippets.md
+[sql-snippet-folders]: ../enterprise-guide/sql-snippets.md
\ No newline at end of file
diff --git a/docs/administration-guide/databases/aws-rds.md b/docs/administration-guide/databases/aws-rds.md
index 9f606898756b63672703af3794c1f53093142c12..2d46d29ba63b0ad055ce457319c8d4c89d0cda58 100644
--- a/docs/administration-guide/databases/aws-rds.md
+++ b/docs/administration-guide/databases/aws-rds.md
@@ -1,3 +1,7 @@
+---
+title: Connecting to AWS's Relational Database Service (RDS)
+---
+
 ## Connecting to AWS's Relational Database Service (RDS)
 
 RDS offers several databases that Metabase officially supports, including PostgreSQL, MySQL, MariaDB, Oracle, and SQL server.
@@ -14,5 +18,4 @@ Here's how to get connection information for databases on Amazon's RDS:
    - **Port**. Find the port parameter under Security and Network.
    - **Username**. Find this under Configuration Details.
    - **Database Name**. Find this under Configuration Details
-   - **Password**. Ask your database administrator for the password.
-
+   - **Password**. Ask your database administrator for the password.
\ No newline at end of file
diff --git a/docs/administration-guide/databases/bigquery.md b/docs/administration-guide/databases/bigquery.md
index bf538fa3b275291ceba89ddcec4fccd7610d0571..07cf3c2ba3e27803e2adac40ef3f07a038a92323 100644
--- a/docs/administration-guide/databases/bigquery.md
+++ b/docs/administration-guide/databases/bigquery.md
@@ -1,3 +1,7 @@
+---
+title: Working with Google BigQuery in Metabase
+---
+
 # Working with Google BigQuery in Metabase
 
 This page provides information on how to create and manage a connection to a Google [BigQuery](https://cloud.google.com/bigquery) dataset, including one that uses [files stored in Google Drive](https://cloud.google.com/bigquery/external-data-drive) as a data source, like Google Sheets (GSheets).
@@ -174,4 +178,4 @@ If you're having trouble with your BigQuery connection, you can check out this [
 - [Managing databases](https://www.metabase.com/docs/latest/administration-guide/01-managing-databases.html)
 - [Metadata editing](https://www.metabase.com/docs/latest/administration-guide/03-metadata-editing.html)
 - [Models](../../users-guide/models.md)
-- [Setting data access permissions](https://www.metabase.com/docs/latest/administration-guide/05-setting-permissions.html)
+- [Setting data access permissions](https://www.metabase.com/docs/latest/administration-guide/05-setting-permissions.html)
\ No newline at end of file
diff --git a/docs/administration-guide/databases/google-analytics.md b/docs/administration-guide/databases/google-analytics.md
index d78402096a6090dfbc0b793b634570d6e261f913..3b94b461e069f68e1305fdc7d1abd189a7601800 100644
--- a/docs/administration-guide/databases/google-analytics.md
+++ b/docs/administration-guide/databases/google-analytics.md
@@ -1,4 +1,8 @@
-## Working with Google Analytics in Metabase
+---
+title: Working with Google Analytics in Metabase
+---
+
+# Working with Google Analytics in Metabase
 
 This page provides information on how to create and manage a connection to a [Google Analytics][google-analytics] dataset.
 
@@ -104,4 +108,4 @@ If you're having trouble, see the guides under [Troubleshooting data sources][tr
 [google-oauth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
 [google-service-accounts]: https://cloud.google.com/iam/docs/service-accounts
 [sync-docs]: ../../administration-guide/01-managing-databases.html#choose-when-metabase-syncs-and-scans
-[troubleshooting-data-sources]: .../troubleshooting-guide/index.html#data-sources
\ No newline at end of file
+[troubleshooting-data-sources]: ../../troubleshooting-guide/index.html#data-sources
diff --git a/docs/administration-guide/databases/h2.md b/docs/administration-guide/databases/h2.md
index 879bf792c9320954b3f63e4fca6639e8afa2dbec..40ccdc3e968650755f7309a0e9ed54fbac72d787 100644
--- a/docs/administration-guide/databases/h2.md
+++ b/docs/administration-guide/databases/h2.md
@@ -1,7 +1,11 @@
+---
+title: H2
+---
+
 ## H2
 
 H2 is a lightweight, in-memory database; it’s perfect for getting spun up quickly, but not so good for long-term usage. By default, Metabase uses H2 to store its internal data. The Sample Database included with Metabase is also an H2 database.
 
 ## Avoid using H2 as your application database in production
 
-If you want to run Metabase in production, we recommend that you [migrate off H2](/docs/latest/operations-guide/migrating-from-h2.html).
+If you want to run Metabase in production, we recommend that you [migrate off H2](/docs/latest/operations-guide/migrating-from-h2.html).
\ No newline at end of file
diff --git a/docs/administration-guide/databases/mongodb.md b/docs/administration-guide/databases/mongodb.md
index babf7ec81eae106d5b2a447f711777ea56e9933c..079e0eb2286eb32a41bca49be248d4f8c6e2a498 100644
--- a/docs/administration-guide/databases/mongodb.md
+++ b/docs/administration-guide/databases/mongodb.md
@@ -1,3 +1,7 @@
+---
+title: Working with MongoDB in Metabase
+---
+
 # Working with MongoDB in Metabase
 
 This article covers:
@@ -111,4 +115,4 @@ One workaround is to include all possible keys in the first document of the coll
 
 ## Further reading
 
-See our troubleshooting guide for [troubleshooting your connection](../../troubleshooting-guide/datawarehouse.md).
+See our troubleshooting guide for [troubleshooting your connection](../../troubleshooting-guide/datawarehouse.md).
\ No newline at end of file
diff --git a/docs/administration-guide/databases/mysql.md b/docs/administration-guide/databases/mysql.md
index abb5aa8d77b7a93c2f829bed02a0828826ce6f09..61b91e8c191271fbecf144c892868f9df26d2223 100644
--- a/docs/administration-guide/databases/mysql.md
+++ b/docs/administration-guide/databases/mysql.md
@@ -1,3 +1,7 @@
+---
+title: Working with MySQL in Metabase
+---
+
 # Working with MySQL in Metabase
 
 This page includes some helpful info for connecting Metabase to your MySQL database.
@@ -59,5 +63,4 @@ mysql:
     volumes:
       - $PWD/mysql:/var/lib/mysql
     command: ['--default-authentication-plugin=mysql_native_password']
-```
-
+```
\ No newline at end of file
diff --git a/docs/administration-guide/databases/oracle.md b/docs/administration-guide/databases/oracle.md
index 6898a964bac50d10307832d5b7dc254eedb2989a..0e8287fefa1ebcf5ff5ddfb9759b0f171b8ed713 100644
--- a/docs/administration-guide/databases/oracle.md
+++ b/docs/administration-guide/databases/oracle.md
@@ -1,3 +1,7 @@
+---
+title: Working with Oracle in Metabase
+---
+
 # Working with Oracle in Metabase
 
 ## Downloading the Oracle JDBC Driver JAR
@@ -58,4 +62,4 @@ For example, if you're running Metabase from a directory called `/app/`, you sho
 
 ## When running from Docker
 
-The process for adding plugins when running via Docker is similar, but you'll need to mount the `plugins` directory. Refer to instructions [here](../../operations-guide/running-metabase-on-docker.html#adding-external-dependencies-or-plugins) for more details.
+The process for adding plugins when running via Docker is similar, but you'll need to mount the `plugins` directory. Refer to instructions [here](../../operations-guide/running-metabase-on-docker.html#adding-external-dependencies-or-plugins) for more details.
\ No newline at end of file
diff --git a/docs/administration-guide/databases/postgresql.md b/docs/administration-guide/databases/postgresql.md
index d8c262e4f90d757e87b26205910c18ec14367ae4..895a347b21a21c003065dc7c2d595ef0be9e4c78 100644
--- a/docs/administration-guide/databases/postgresql.md
+++ b/docs/administration-guide/databases/postgresql.md
@@ -1,3 +1,7 @@
+---
+title: Connecting to a PostgreSQL database
+---
+
 # Connecting to a PostgreSQL database
 
 In addition to specifying the host, port, database name and user credentials for the database connection, you have the option of securing that connection.
@@ -89,5 +93,4 @@ Postgres JSON fields don’t have schema, so Metabase can’t rely on table meta
 The problem is that if the keys in the JSON vary record to record, the first ten thousand rows may not capture all the keys used by JSON objects in that JSON field. To get Metabase to infer all the JSON keys, you'll need to add the additional keys to the JSON objects in the first ten thousand row.
 
 [ssl-modes]: https://jdbc.postgresql.org/documentation/head/ssl-client.html
-[ssh-tunnel]: ../ssh-tunnel-for-database-connections.html
-
+[ssh-tunnel]: ../ssh-tunnel-for-database-connections.html
\ No newline at end of file
diff --git a/docs/administration-guide/databases/redshift.md b/docs/administration-guide/databases/redshift.md
index e929ab71ac5aaa6635a7dff13f8b003a5e1003f2..81ec39e3736adda0a80a90fd448da8e0c125469e 100644
--- a/docs/administration-guide/databases/redshift.md
+++ b/docs/administration-guide/databases/redshift.md
@@ -1,3 +1,7 @@
+---
+title: Redshift
+---
+
 # Redshift
 
 ## Connection information
@@ -31,5 +35,4 @@ Let's say you have three schemas: foo, bar, and baz.
 - If you have **Only these...** set, and enter the string `b*`, you'll sync with bar and baz.
 - If you have **All except...** set, and enter the string `b*`, you'll just sync foo.
 
-Note that only the `*` wildcard is supported; you can't use other special characters or regexes.
-
+Note that only the `*` wildcard is supported; you can't use other special characters or regexes.
\ No newline at end of file
diff --git a/docs/administration-guide/databases/snowflake.md b/docs/administration-guide/databases/snowflake.md
index b758b79a19ae8660a24f6cbd8bfe536d8d025f96..3e1c59351ceffac05427d7944505b6cddc708772 100644
--- a/docs/administration-guide/databases/snowflake.md
+++ b/docs/administration-guide/databases/snowflake.md
@@ -1,3 +1,7 @@
+---
+title: Snowflake
+---
+
 # Snowflake
 
 ## Schemas
@@ -31,4 +35,4 @@ Here are some gotchas to look out for when connecting to Snowflake:
 
 - **The `Role` and `Schema` fields are optional**. Specifying a role will override the database user's default role. For example, if the database user is `REPORTER` with default role `REPORTER`, but the user also has access to role `REPORTERPRODUCT`, then filling in `REPORTERPRODUCT` in the `Role` field will ensure that the `REPORTERPRODUCT` role is used instead of the user's default `REPORTER` role. If no schema is passed, then all schema available to that user and role will be listed as folders in the Metabase UI.
 
-- **All other fields must be entered in upper case**. Excluding the password.
+- **All other fields must be entered in upper case**. Excluding the password.
\ No newline at end of file
diff --git a/docs/administration-guide/databases/vertica.md b/docs/administration-guide/databases/vertica.md
index 4ad480149022050218667aa8c53a1159553c82bf..fadadc47a63e18fb30eba37d7bd7b0c3b7d118f0 100644
--- a/docs/administration-guide/databases/vertica.md
+++ b/docs/administration-guide/databases/vertica.md
@@ -1,3 +1,7 @@
+---
+title: Working with Vertica in Metabase
+---
+
 # Working with Vertica in Metabase
 
 Starting in v0.20.0, Metabase provides a driver for connecting to Vertica databases. Under the hood, Metabase uses Vertica's JDBC driver;
@@ -33,4 +37,4 @@ For example, if you're running Metabase from a directory called `/app/`, you sho
 
 ### When running from Docker
 
-The process for adding plugins when running via Docker is similar, but you'll need to mount the `plugins` directory. Refer to instructions [here](../../operations-guide/running-metabase-on-docker.html#adding-external-dependencies-or-plugins) for more details.
+The process for adding plugins when running via Docker is similar, but you'll need to mount the `plugins` directory. Refer to instructions [here](../../operations-guide/running-metabase-on-docker.html#adding-external-dependencies-or-plugins) for more details.
\ No newline at end of file
diff --git a/docs/administration-guide/localization.md b/docs/administration-guide/localization.md
index 43c6da1a5bc703c4cd876357df8397fe6f8753fc..3c80aac998e10dd93e3b40727b9838fbc4d0a044 100644
--- a/docs/administration-guide/localization.md
+++ b/docs/administration-guide/localization.md
@@ -1,3 +1,7 @@
+---
+title: Languages and localization
+---
+
 # Languages and localization
 
 ## Supported languages
@@ -79,6 +83,4 @@ If you need to, you can change the first day of the week for your instance (the
 
 - `Unit of currency:` if you do most of your business in a particular currency, you can specify that here.
 - `Currency label style:` whether you want to have your currencies labeled with a symbol, a code (like `USD`), or its full name.
-- `Where to display the unit of currency:` this pertains specifically to tables, and lets you choose if you want the currency labels to appear only in the column heading, or next to each value in the column.
-
-
+- `Where to display the unit of currency:` this pertains specifically to tables, and lets you choose if you want the currency labels to appear only in the column heading, or next to each value in the column.
\ No newline at end of file
diff --git a/docs/administration-guide/secure-database-connections-with-ssl-certificates.md b/docs/administration-guide/secure-database-connections-with-ssl-certificates.md
index dee794c231178a049e56f8d4c26968e8bd073ff5..3d2480611208ce2667bc66da5afc642536f85a3b 100644
--- a/docs/administration-guide/secure-database-connections-with-ssl-certificates.md
+++ b/docs/administration-guide/secure-database-connections-with-ssl-certificates.md
@@ -1,3 +1,7 @@
+---
+title: Securing database connections using an SSL certificate
+---
+
 ## Securing database connections using an SSL certificate
 
 If you'd like to connect your Metabase Cloud or self-hosted instance to a database, you can secure the connection using Secure Socket Layer (SSL) encryption with a certificate.
@@ -78,4 +82,4 @@ If a truststore is provided to verify credentials, the client (your Metabase) ca
 
 ### Keystores
 
-If a keystore is used to provide credentials, then the server (the database server) can request the client (your Metabase) authenticate itself using that keystore. Keystores are used less frequently, and in some cases it's impossible to use a keystore (Amazon's RDS forbids keystores, for example). But you may want to use a keystore if you're hosting on prem.
+If a keystore is used to provide credentials, then the server (the database server) can request the client (your Metabase) authenticate itself using that keystore. Keystores are used less frequently, and in some cases it's impossible to use a keystore (Amazon's RDS forbids keystores, for example). But you may want to use a keystore if you're hosting on prem.
\ No newline at end of file
diff --git a/docs/administration-guide/ssh-tunnel-for-database-connections.md b/docs/administration-guide/ssh-tunnel-for-database-connections.md
index ef8dff277db0ffa7f7fc94892d4398bb55cb7dfe..ee6e6430dd48be7851c95e5668c3f90139e2e640 100644
--- a/docs/administration-guide/ssh-tunnel-for-database-connections.md
+++ b/docs/administration-guide/ssh-tunnel-for-database-connections.md
@@ -1,3 +1,7 @@
+---
+title: SSH tunneling in Metabase
+---
+
 ## SSH tunneling in Metabase
 
 Metabase can connect to some databases by first establishing a connection to a server in between Metabase and a data warehouse, then connecting to the data warehouse using that connection as a bridge. This makes connecting to some data warehouses possible in situations that would otherwise prevent the use of Metabase.
@@ -71,4 +75,4 @@ This allows you to use the full array of features included in SSH. If you find y
 
 ### Further reading
 
-For more on connecting a database to Metabase, see [Adding and managing databases](01-managing-databases.md).
+For more on connecting a database to Metabase, see [Adding and managing databases](01-managing-databases.md).
\ No newline at end of file
diff --git a/docs/administration-guide/sso.md b/docs/administration-guide/sso.md
index d148f2fb37ac15f0c2b408e32a8113b74e31e638..5b75284b270efaca08e30e75a9076d788f150a34 100644
--- a/docs/administration-guide/sso.md
+++ b/docs/administration-guide/sso.md
@@ -1,3 +1,7 @@
+---
+title: Setting up Single Sign-on (SSO)
+---
+
 ## Setting up Single Sign-on (SSO)
 
 We recommend that you set up [Single Sign-on][sso-def] for your Metabase installation.
@@ -31,4 +35,4 @@ With paid versions, you have more options to help manage lots of people and grou
 [saml-google]: ../enterprise-guide/saml-google.html
 [saml-keycloak]: ../enterprise-guide/saml-keycloak.html
 [saml-other-idps]: ../enterprise-guide/authenticating-with-saml.html#documentation-for-other-common-idps
-[sso-def]: /glossary/sso.html
+[sso-def]: /glossary/sso.html
\ No newline at end of file
diff --git a/docs/administration-guide/start.md b/docs/administration-guide/start.md
index 5175902d64e63db2a3904eae6e5d7a77092321ba..8c0026bda65bcc1a5aa57067e0b95923195c1206 100644
--- a/docs/administration-guide/start.md
+++ b/docs/administration-guide/start.md
@@ -1,3 +1,7 @@
+---
+title: Administration Guide
+---
+
 # Administration Guide
 
 Are you in charge of managing Metabase for your organization? Then you're in the right spot. You are the chosen one.
@@ -43,4 +47,4 @@ See [how to install Metabase](../operations-guide/installing-metabase.md).
 ## Embedding and sharing with public links
 
 - [Sharing dashboards and questions with public links](12-public-links.md)
-- [Embedding Metabase in other Applications](13-embedding.md)
+- [Embedding Metabase in other Applications](13-embedding.md)
\ No newline at end of file
diff --git a/docs/administration-guide/supported-browsers.md b/docs/administration-guide/supported-browsers.md
index ca28e01f0dea01148680d7055a92cd9a54f96946..1e0719afcadf834cec31fb9e48db23c900b220e4 100644
--- a/docs/administration-guide/supported-browsers.md
+++ b/docs/administration-guide/supported-browsers.md
@@ -1,3 +1,7 @@
+---
+title: Supported browsers
+---
+
 # Supported browsers
 
 We try our best to make sure Metabase works in as many browsers as possible, but as this is the Internet, there may be little quirks from time to time in different settings. We believe Metabase works on these versions of these browsers and will attempt to fix specific bugs if any are found:
@@ -9,4 +13,4 @@ We try our best to make sure Metabase works in as many browsers as possible, but
 
 Metabase may run perfectly well on older versions of these browsers or on specific browsers not listed above, but your mileage may vary. In particular, we ended support for IE11 in Metabase 0.40: it mostly still works, but you may see some unexpected behavior. 
 
-We recommend you use the most up-to-date browser you can.
+We recommend you use the most up-to-date browser you can.
\ No newline at end of file
diff --git a/docs/api/activity.md b/docs/api/activity.md
index ade999b406f316fdd65c34b53d54062a0ad29980..8ac6e3fd31d51431bb8f37c80d109cf32fc4a755 100644
--- a/docs/api/activity.md
+++ b/docs/api/activity.md
@@ -1,5 +1,12 @@
+---
+title: "Activity"
+summary: "API endpoints for Activity."
+---
+
 # Activity
 
+API endpoints for Activity.
+
   - [GET /api/activity/](#get-apiactivity)
   - [GET /api/activity/popular_items](#get-apiactivitypopular_items)
   - [GET /api/activity/recent_views](#get-apiactivityrecent_views)
diff --git a/docs/api/alert.md b/docs/api/alert.md
index d012832a20df982e2ac5cef61c87311838e3f69f..aceb57ffd6a27679f9a60f53c3b8118afef0bd01 100644
--- a/docs/api/alert.md
+++ b/docs/api/alert.md
@@ -1,3 +1,8 @@
+---
+title: "Alert"
+summary: "/api/alert endpoints."
+---
+
 # Alert
 
 /api/alert endpoints.
diff --git a/docs/api/automagic-dashboards.md b/docs/api/automagic-dashboards.md
index 60ef4eefd498b5a3695d81b876212b92d682e10f..4f4c3aa8ac5ff8df4f54011fd51a64e39cff4686 100644
--- a/docs/api/automagic-dashboards.md
+++ b/docs/api/automagic-dashboards.md
@@ -1,5 +1,12 @@
+---
+title: "Automagic dashboards"
+summary: "API endpoints for Automagic dashboards."
+---
+
 # Automagic dashboards
 
+API endpoints for Automagic dashboards.
+
   - [GET /api/automagic-dashboards/:entity/:entity-id-or-query](#get-apiautomagic-dashboardsentityentity-id-or-query)
   - [GET /api/automagic-dashboards/:entity/:entity-id-or-query/cell/:cell-query](#get-apiautomagic-dashboardsentityentity-id-or-querycellcell-query)
   - [GET /api/automagic-dashboards/:entity/:entity-id-or-query/cell/:cell-query/compare/:comparison-entity/:comparison-entity-id-or-query](#get-apiautomagic-dashboardsentityentity-id-or-querycellcell-querycomparecomparison-entitycomparison-entity-id-or-query)
diff --git a/docs/api/bookmark.md b/docs/api/bookmark.md
index 5e37c1c50157c0f7b0759c5c0bdafb479c47393e..8913ed0f139dc6e7a76c7578e914173bcb4d6cd2 100644
--- a/docs/api/bookmark.md
+++ b/docs/api/bookmark.md
@@ -1,9 +1,18 @@
+---
+title: "Bookmark"
+summary: "Handle creating bookmarks for the user. Bookmarks are in three tables and should be thought of as a tuple of (model,
+  model-id) rather than a row in a table with an id. The DELETE takes the model and id because DELETE's do not
+  necessarily support request bodies. The POST is therefore shaped in this same manner. Since there are three
+  underlying tables the id on the actual bookmark itself is not unique among 'bookmarks' and is not a good
+  identifier for using in the API."
+---
+
 # Bookmark
 
 Handle creating bookmarks for the user. Bookmarks are in three tables and should be thought of as a tuple of (model,
   model-id) rather than a row in a table with an id. The DELETE takes the model and id because DELETE's do not
   necessarily support request bodies. The POST is therefore shaped in this same manner. Since there are three
-  underlying tables the id on the actual bookmark itself is not unique among "bookmarks" and is not a good
+  underlying tables the id on the actual bookmark itself is not unique among 'bookmarks' and is not a good
   identifier for using in the API.
 
   - [DELETE /api/bookmark/:model/:id](#delete-apibookmarkmodelid)
diff --git a/docs/api/card.md b/docs/api/card.md
index 1b0f8b3b6dc1796b20436ac269fcfe7e55e7617f..43f836d06576c50680df43fc24136ca7240cab2a 100644
--- a/docs/api/card.md
+++ b/docs/api/card.md
@@ -1,3 +1,8 @@
+---
+title: "Card"
+summary: "/api/card endpoints."
+---
+
 # Card
 
 /api/card endpoints.
@@ -98,6 +103,8 @@ Create a new `Card`.
 
 *  **`visualization_settings`** value must be a map.
 
+*  **`parameters`** value may be nil, or if non-nil, value must be an array. Each parameter must be a map with String :id key
+
 *  **`description`** value may be nil, or if non-nil, value must be a non-blank string.
 
 *  **`collection_position`** value may be nil, or if non-nil, value must be an integer greater than zero.
@@ -112,6 +119,8 @@ Create a new `Card`.
 
 *  **`dataset_query`** 
 
+*  **`parameter_mappings`** value may be nil, or if non-nil, value must be an array. Each parameter mapping must be a String :parameter_id key
+
 *  **`display`** value must be a non-blank string.
 
 ## `POST /api/card/:card-id/persist`
@@ -228,6 +237,8 @@ Update a `Card`.
 
 *  **`visualization_settings`** value may be nil, or if non-nil, value must be a map.
 
+*  **`parameters`** value may be nil, or if non-nil, value must be an array. Each parameter must be a map with String :id key
+
 *  **`dataset`** value may be nil, or if non-nil, value must be a boolean.
 
 *  **`description`** value may be nil, or if non-nil, value must be a string.
diff --git a/docs/api/collection.md b/docs/api/collection.md
index 6bfe82c960babc4a651ff138a3745f06758cd71e..ddb826df36632db8730e827e408635a127a4ad6f 100644
--- a/docs/api/collection.md
+++ b/docs/api/collection.md
@@ -1,3 +1,12 @@
+---
+title: "Collection"
+summary: "`/api/collection` endpoints. By default, these endpoints operate on Collections in the 'default' namespace, which is
+  the one that has things like Dashboards and Cards. Other namespaces of Collections exist as well, such as the
+  `:snippet` namespace, (called 'Snippet folders' in the UI). These namespaces are completely independent hierarchies.
+  To use these endpoints for other Collections namespaces, you can pass the `?namespace=` parameter (e.g.
+  `?namespace=snippet`)."
+---
+
 # Collection
 
 `/api/collection` endpoints. By default, these endpoints operate on Collections in the 'default' namespace, which is
diff --git a/docs/api/dashboard.md b/docs/api/dashboard.md
index b27a5b0d6861961ffc1c4edf0abd4a7933239bba..dbebfedead030effd17d3d73cb42a92ca6c53955 100644
--- a/docs/api/dashboard.md
+++ b/docs/api/dashboard.md
@@ -1,3 +1,8 @@
+---
+title: "Dashboard"
+summary: "/api/dashboard endpoints."
+---
+
 # Dashboard
 
 /api/dashboard endpoints.
@@ -175,7 +180,7 @@ Create a new Dashboard.
 
 *  **`description`** value may be nil, or if non-nil, value must be a string.
 
-*  **`parameters`** value must be an array. Each value must be a map.
+*  **`parameters`** value may be nil, or if non-nil, value must be an array. Each parameter must be a map with String :id key
 
 *  **`cache_ttl`** value may be nil, or if non-nil, value must be an integer greater than zero.
 
@@ -317,7 +322,7 @@ Update a Dashboard.
 
 ### PARAMS:
 
-*  **`parameters`** value may be nil, or if non-nil, value must be an array. Each value must be a map.
+*  **`parameters`** value may be nil, or if non-nil, value must be an array. Each parameter must be a map with String :id key
 
 *  **`points_of_interest`** value may be nil, or if non-nil, value must be a string.
 
diff --git a/docs/api/database.md b/docs/api/database.md
index 8cda175af7394eaed4149a43badb56dc5f031d8b..3f6f115f1cf6143878f94d978de3f9afb9166291 100644
--- a/docs/api/database.md
+++ b/docs/api/database.md
@@ -1,3 +1,8 @@
+---
+title: "Database"
+summary: "/api/database endpoints."
+---
+
 # Database
 
 /api/database endpoints.
@@ -321,6 +326,8 @@ Update a `Database`.
 
 *  **`name`** value may be nil, or if non-nil, value must be a non-blank string.
 
+*  **`settings`** value may be nil, or if non-nil, value must be a map.
+
 *  **`caveats`** value may be nil, or if non-nil, value must be a string.
 
 *  **`is_full_sync`** 
diff --git a/docs/api/dataset.md b/docs/api/dataset.md
index 2316207bdef147d2df5e2ec9b0e60662ed3db3bf..311cc425a59a831c1f462c4f4efa62749e0c03c7 100644
--- a/docs/api/dataset.md
+++ b/docs/api/dataset.md
@@ -1,3 +1,8 @@
+---
+title: "Dataset"
+summary: "/api/dataset endpoints."
+---
+
 # Dataset
 
 /api/dataset endpoints.
diff --git a/docs/api/ee/advanced-permissions-application.md b/docs/api/ee/advanced-permissions-application.md
index a3623c7500536c507b6eac7dfebbc86af699429d..78a96187922e30de4141427ac5f5d6fe726bed25 100644
--- a/docs/api/ee/advanced-permissions-application.md
+++ b/docs/api/ee/advanced-permissions-application.md
@@ -1,3 +1,10 @@
+---
+title: "Advanced permissions application"
+summary: "`/advanced-permisisons/application` Routes.
+  Implements the Permissions routes needed for application permission - a class of permissions that control access to features
+  like access Setting pages, access monitoring tools ... etc."
+---
+
 # Advanced permissions application
 
 `/advanced-permisisons/application` Routes.
diff --git a/docs/api/ee/audit-app-user.md b/docs/api/ee/audit-app-user.md
index ad1568e281cd0ef4a565a4a1dd2d7729ca1263cf..3e87be9fb18db789e73258b28a3a62212315b93a 100644
--- a/docs/api/ee/audit-app-user.md
+++ b/docs/api/ee/audit-app-user.md
@@ -1,3 +1,8 @@
+---
+title: "Audit app user"
+summary: "`/api/ee/audit-app/user` endpoints. These only work if you have a premium token with the `:audit-app` feature."
+---
+
 # Audit app user
 
 `/api/ee/audit-app/user` endpoints. These only work if you have a premium token with the `:audit-app` feature.
diff --git a/docs/api/ee/content-management-review.md b/docs/api/ee/content-management-review.md
index 25e7e79e62285217a0c87016da78b35bd3c09e2a..effee39eca3510291dd5c90177faf1f862bf05c0 100644
--- a/docs/api/ee/content-management-review.md
+++ b/docs/api/ee/content-management-review.md
@@ -1,5 +1,12 @@
+---
+title: "Content management review"
+summary: "API endpoints for Content management review."
+---
+
 # Content management review
 
+API endpoints for Content management review.
+
   - [POST /api/ee/content-management/review/](#post-apieecontent-managementreview)
 
 ## `POST /api/ee/content-management/review/`
diff --git a/docs/api/ee/sandbox-gtap.md b/docs/api/ee/sandbox-gtap.md
index 455e9c9007662e7b6d3f61957c5084117875c42c..cddae2b051ff295be2ae67def482abcac0ebb292 100644
--- a/docs/api/ee/sandbox-gtap.md
+++ b/docs/api/ee/sandbox-gtap.md
@@ -1,3 +1,8 @@
+---
+title: "Sandbox GTAP"
+summary: "`/api/mt/gtap` endpoints, for CRUD operations and the like on GTAPs (Group Table Access Policies)."
+---
+
 # Sandbox GTAP
 
 `/api/mt/gtap` endpoints, for CRUD operations and the like on GTAPs (Group Table Access Policies).
diff --git a/docs/api/ee/sandbox-table.md b/docs/api/ee/sandbox-table.md
index 16d58db8a146fea72aeb91185e37aaef1f76c633..10d1aaf3207b544d7cf815dd92b73a9f4b1a0987 100644
--- a/docs/api/ee/sandbox-table.md
+++ b/docs/api/ee/sandbox-table.md
@@ -1,5 +1,12 @@
+---
+title: "Sandbox table"
+summary: "API endpoints for Sandbox table."
+---
+
 # Sandbox table
 
+API endpoints for Sandbox table.
+
   - [GET /api/ee/sandbox/table/:id/query_metadata](#get-apieesandboxtableidquery_metadata)
 
 ## `GET /api/ee/sandbox/table/:id/query_metadata`
diff --git a/docs/api/ee/sandbox-user.md b/docs/api/ee/sandbox-user.md
index 9afe152b9190a853d7f7679e1a57eb1f6ff9e2cb..d45f48c616df77211faf8a06ad6a1bcf07417bfa 100644
--- a/docs/api/ee/sandbox-user.md
+++ b/docs/api/ee/sandbox-user.md
@@ -1,3 +1,8 @@
+---
+title: "Sandbox user"
+summary: "Endpoint(s)for setting user attributes."
+---
+
 # Sandbox user
 
 Endpoint(s)for setting user attributes.
diff --git a/docs/api/ee/sso.md b/docs/api/ee/sso.md
index 7a4d78cf7568509fd999cb75899a2d1f8c87ea59..80d569be7a267ccf2ee4da72124671a2451973f7 100644
--- a/docs/api/ee/sso.md
+++ b/docs/api/ee/sso.md
@@ -1,3 +1,11 @@
+---
+title: "SSO"
+summary: "`/auth/sso` Routes.
+
+  Implements the SSO routes needed for SAML and JWT. This namespace primarily provides hooks for those two backends so
+  we can have a uniform interface both via the API and code."
+---
+
 # SSO
 
 `/auth/sso` Routes.
diff --git a/docs/api/email.md b/docs/api/email.md
index f897125d677ea43ce29d3a7f09babd0e60f099f6..5ec49ba088382fb84d56e6b6a1bfa4ed3a57c9ee 100644
--- a/docs/api/email.md
+++ b/docs/api/email.md
@@ -1,3 +1,8 @@
+---
+title: "Email"
+summary: "/api/email endpoints."
+---
+
 # Email
 
 /api/email endpoints.
diff --git a/docs/api/embed.md b/docs/api/embed.md
index 7c86672f681d0e809e04510359124ade8a93cf26..9ef0fdfec046f648de325ea0a20feca2f55b6a6c 100644
--- a/docs/api/embed.md
+++ b/docs/api/embed.md
@@ -1,3 +1,22 @@
+---
+title: "Embed"
+summary: "Various endpoints that use [JSON web tokens](https://jwt.io/introduction/) to fetch Cards and Dashboards.
+   The endpoints are the same as the ones in `api/public/`, and differ only in the way they are authorized.
+
+   To use these endpoints:
+
+    1.  Set the `embedding-secret-key` Setting to a hexadecimal-encoded 32-byte sequence (i.e., a 64-character string).
+        You can use `/api/util/random_token` to get a cryptographically-secure value for this.
+    2.  Sign/base-64 encode a JSON Web Token using the secret key and pass it as the relevant part of the URL path
+        to the various endpoints here.
+
+   Tokens can have the following fields:
+
+      {:resource {:question  <card-id>
+                  :dashboard <dashboard-id>}
+       :params   <params>}."
+---
+
 # Embed
 
 Various endpoints that use [JSON web tokens](https://jwt.io/introduction/) to fetch Cards and Dashboards.
diff --git a/docs/api/field.md b/docs/api/field.md
index 5b755ddbcc090bca94cf9a94b86676f1e9c7205d..458753ea963f26c4d523758c5bbe84b3c8c4237b 100644
--- a/docs/api/field.md
+++ b/docs/api/field.md
@@ -1,5 +1,12 @@
+---
+title: "Field"
+summary: "API endpoints for Field."
+---
+
 # Field
 
+API endpoints for Field.
+
   - [DELETE /api/field/:id/dimension](#delete-apifieldiddimension)
   - [GET /api/field/:id](#get-apifieldid)
   - [GET /api/field/:id/related](#get-apifieldidrelated)
diff --git a/docs/api/geojson.md b/docs/api/geojson.md
index 79fa7add754cea5a295386429e8812bcd68242dc..a14dc9f27488dc6f833450261c84edf064776f44 100644
--- a/docs/api/geojson.md
+++ b/docs/api/geojson.md
@@ -1,5 +1,12 @@
+---
+title: "GeoJSON"
+summary: "API endpoints for GeoJSON."
+---
+
 # GeoJSON
 
+API endpoints for GeoJSON.
+
   - [GET /api/geojson/](#get-apigeojson)
   - [GET /api/geojson/:key](#get-apigeojsonkey)
 
diff --git a/docs/api/ldap.md b/docs/api/ldap.md
index 919b1b69b8550dc613a60f49e200506e738b8543..08f72036f5043c436d389ab924e001a111282d5e 100644
--- a/docs/api/ldap.md
+++ b/docs/api/ldap.md
@@ -1,3 +1,8 @@
+---
+title: "LDAP"
+summary: "/api/ldap endpoints."
+---
+
 # LDAP
 
 /api/ldap endpoints.
diff --git a/docs/api/login-history.md b/docs/api/login-history.md
index 3ec6b350269b5c9e308a9f8c1cc76818c34ae95e..a6e1caef4ffd42dde88c36e52a54865f0a21f8a5 100644
--- a/docs/api/login-history.md
+++ b/docs/api/login-history.md
@@ -1,5 +1,12 @@
+---
+title: "Login history"
+summary: "API endpoints for Login history."
+---
+
 # Login history
 
+API endpoints for Login history.
+
   - [GET /api/login-history/current](#get-apilogin-historycurrent)
 
 ## `GET /api/login-history/current`
diff --git a/docs/api/metric.md b/docs/api/metric.md
index 1ac17d7e8ff981996b2fd5ab3af71c6d3220bbf4..24ac8a4d65c40cb863d7b706b773ab4b2fad09ed 100644
--- a/docs/api/metric.md
+++ b/docs/api/metric.md
@@ -1,3 +1,8 @@
+---
+title: "Metric"
+summary: "/api/metric endpoints."
+---
+
 # Metric
 
 /api/metric endpoints.
diff --git a/docs/api/native-query-snippet.md b/docs/api/native-query-snippet.md
index 6356784ce4b1cdb20980bd42b624f31ca59fda31..ac2c6c9250b8fe6ee7010b647a5b409b237b857f 100644
--- a/docs/api/native-query-snippet.md
+++ b/docs/api/native-query-snippet.md
@@ -1,3 +1,8 @@
+---
+title: "Native query snippet"
+summary: "Native query snippet (/api/native-query-snippet) endpoints."
+---
+
 # Native query snippet
 
 Native query snippet (/api/native-query-snippet) endpoints.
diff --git a/docs/api/notify.md b/docs/api/notify.md
index a3b5a57179b1d6dcd06ed9be4fe8c6200909b63f..24514bbc5ec412140fac0afb8fb372c649abdb65 100644
--- a/docs/api/notify.md
+++ b/docs/api/notify.md
@@ -1,3 +1,8 @@
+---
+title: "Notify"
+summary: "/api/notify/* endpoints which receive inbound etl server notifications."
+---
+
 # Notify
 
 /api/notify/* endpoints which receive inbound etl server notifications.
diff --git a/docs/api/permissions.md b/docs/api/permissions.md
index a08a0f42f1e6dafa05c9c61183e5c28c9298c135..d514d5157fd541d6bd054e144e38071a92f924f4 100644
--- a/docs/api/permissions.md
+++ b/docs/api/permissions.md
@@ -1,3 +1,8 @@
+---
+title: "Permissions"
+summary: "/api/permissions endpoints."
+---
+
 # Permissions
 
 /api/permissions endpoints.
diff --git a/docs/api/persist.md b/docs/api/persist.md
index ad6a8410999c37627ba485965ec69a25123db2d1..fdfb47ca815ce5bb53f1cc95f03ce6910dfcb0ef 100644
--- a/docs/api/persist.md
+++ b/docs/api/persist.md
@@ -1,5 +1,12 @@
+---
+title: "Persist"
+summary: "API endpoints for Persist."
+---
+
 # Persist
 
+API endpoints for Persist.
+
   - [GET /api/persist/](#get-apipersist)
   - [GET /api/persist/:persisted-info-id](#get-apipersistpersisted-info-id)
   - [GET /api/persist/card/:card-id](#get-apipersistcardcard-id)
@@ -38,11 +45,15 @@ Enable global setting to allow databases to persist models.
 
 ## `POST /api/persist/set-interval`
 
-Set the interval (in hours) to refresh persisted models. Shape should be JSON like {hours: 4}.
+Set the interval (in hours) to refresh persisted models.
+   Anchor can be provided to set the time to begin the interval (local to reporting-timezone or system).
+   Shape should be JSON like {hours: 4, anchor: 16:45}.
 
 ### PARAMS:
 
-*  **`hours`** Value must be an integer representing hours greater than or equal to one and less than or equal to twenty-four
+*  **`hours`** value may be nil, or if non-nil, Value must be an integer representing hours greater than or equal to one and less than or equal to twenty-four
+
+*  **`anchor`** value may be nil, or if non-nil, Value must be a string representing a time in format HH:mm
 
 *  **`_body`**
 
diff --git a/docs/api/premium-features.md b/docs/api/premium-features.md
index a5451191700697d572e52586f551a31baca33187..54c995919b2851d0bc8ce3c6220d31c386c6b995 100644
--- a/docs/api/premium-features.md
+++ b/docs/api/premium-features.md
@@ -1,5 +1,12 @@
+---
+title: "Premium features"
+summary: "API endpoints for Premium features."
+---
+
 # Premium features
 
+API endpoints for Premium features.
+
   - [GET /api/premium-features/token/status](#get-apipremium-featurestokenstatus)
 
 ## `GET /api/premium-features/token/status`
diff --git a/docs/api/preview-embed.md b/docs/api/preview-embed.md
index e2cf4680fdf3ae12059f8bd9a8e7dae62e6cb8a7..b890364d44c468ffb87283a1c81796057af9e747 100644
--- a/docs/api/preview-embed.md
+++ b/docs/api/preview-embed.md
@@ -1,3 +1,16 @@
+---
+title: "Preview embed"
+summary: "Endpoints for previewing how Cards and Dashboards will look when embedding them.
+   These endpoints are basically identical in functionality to the ones in `/api/embed`, but:
+
+   1.  Require admin access
+   2.  Ignore the values of `:enabled_embedding` for Cards/Dashboards
+   3.  Ignore the `:embed_params` whitelist for Card/Dashboards, instead using a field called `:_embedding_params` in
+       the JWT token itself.
+
+   Refer to the documentation for those endpoints for further details."
+---
+
 # Preview embed
 
 Endpoints for previewing how Cards and Dashboards will look when embedding them.
diff --git a/docs/api/public.md b/docs/api/public.md
index 2bcf3e42ef7c9f3399144f39533e4481b13085d6..de01c18cde4ddcc08434d4089721ee9bb873bd6b 100644
--- a/docs/api/public.md
+++ b/docs/api/public.md
@@ -1,3 +1,8 @@
+---
+title: "Public"
+summary: "Metabase API endpoints for viewing publicly-accessible Cards and Dashboards."
+---
+
 # Public
 
 Metabase API endpoints for viewing publicly-accessible Cards and Dashboards.
diff --git a/docs/api/pulse.md b/docs/api/pulse.md
index 1988f6d5ec8b1cb37021cfde16b05f2f1132eeb6..29e36682f4ff69ea1664ea659f66e4bce5281b1f 100644
--- a/docs/api/pulse.md
+++ b/docs/api/pulse.md
@@ -1,3 +1,8 @@
+---
+title: "Pulse"
+summary: "/api/pulse endpoints."
+---
+
 # Pulse
 
 /api/pulse endpoints.
diff --git a/docs/api/revision.md b/docs/api/revision.md
index 7319ff128866f1df01e70c58ea1af106d8de6853..78eb2f28789b30db5cf09c142e498be377c0d289 100644
--- a/docs/api/revision.md
+++ b/docs/api/revision.md
@@ -1,5 +1,12 @@
+---
+title: "Revision"
+summary: "API endpoints for Revision."
+---
+
 # Revision
 
+API endpoints for Revision.
+
   - [GET /api/revision/](#get-apirevision)
   - [POST /api/revision/revert](#post-apirevisionrevert)
 
diff --git a/docs/api/search.md b/docs/api/search.md
index 1158736e5cb05038a75d926c5c38729b60837042..714d93c624069bd04d234b92f199ceccdea53a18 100644
--- a/docs/api/search.md
+++ b/docs/api/search.md
@@ -1,5 +1,12 @@
+---
+title: "Search"
+summary: "API endpoints for Search."
+---
+
 # Search
 
+API endpoints for Search.
+
   - [GET /api/search/](#get-apisearch)
   - [GET /api/search/models](#get-apisearchmodels)
 
diff --git a/docs/api/segment.md b/docs/api/segment.md
index b448160a5bcf30f9df7a4843fffa532b41448e47..b64b68f3cce000bbc9c9b33300ec21a6044ce4f8 100644
--- a/docs/api/segment.md
+++ b/docs/api/segment.md
@@ -1,3 +1,8 @@
+---
+title: "Segment"
+summary: "/api/segment endpoints."
+---
+
 # Segment
 
 /api/segment endpoints.
diff --git a/docs/api/session.md b/docs/api/session.md
index 555d794c84988238f6c83213524c21a97f4444ed..4cfe909e7dd9c2fe415a0aa883336db6c735d32f 100644
--- a/docs/api/session.md
+++ b/docs/api/session.md
@@ -1,3 +1,8 @@
+---
+title: "Session"
+summary: "/api/session endpoints."
+---
+
 # Session
 
 /api/session endpoints.
diff --git a/docs/api/setting.md b/docs/api/setting.md
index 4730cbcd5e98af6e412ea41a7e0b3e4eb4996dc9..270b399de55ae7dedd3d1b2db6298a147ac72f74 100644
--- a/docs/api/setting.md
+++ b/docs/api/setting.md
@@ -1,3 +1,8 @@
+---
+title: "Setting"
+summary: "/api/setting endpoints."
+---
+
 # Setting
 
 /api/setting endpoints.
diff --git a/docs/api/setup.md b/docs/api/setup.md
index 39875bb8e5e5bf5c690c0756499edec6c2c0c143..3142b88b64c1de6d69849dedebc74399492f10b7 100644
--- a/docs/api/setup.md
+++ b/docs/api/setup.md
@@ -1,5 +1,12 @@
+---
+title: "Setup"
+summary: "API endpoints for Setup."
+---
+
 # Setup
 
+API endpoints for Setup.
+
   - [GET /api/setup/admin_checklist](#get-apisetupadmin_checklist)
   - [GET /api/setup/user_defaults](#get-apisetupuser_defaults)
   - [POST /api/setup/](#post-apisetup)
diff --git a/docs/api/slack.md b/docs/api/slack.md
index 3a1793895bd5ec96884c9d79cfbb27b17ed60bba..e0e1ecf39954f92d55c0af9bfee97e888562d041 100644
--- a/docs/api/slack.md
+++ b/docs/api/slack.md
@@ -1,3 +1,8 @@
+---
+title: "Slack"
+summary: "/api/slack endpoints."
+---
+
 # Slack
 
 /api/slack endpoints.
diff --git a/docs/api/table.md b/docs/api/table.md
index 2ec813a40aeff8aa4e5debf0a94f91ab1e24fc87..c32498bf737efa78444cb7a2ff2907b22c5f32ce 100644
--- a/docs/api/table.md
+++ b/docs/api/table.md
@@ -1,3 +1,8 @@
+---
+title: "Table"
+summary: "/api/table endpoints."
+---
+
 # Table
 
 /api/table endpoints.
diff --git a/docs/api/task.md b/docs/api/task.md
index e1c90f90dd7ee55ea662562a4e42eb36e3c74f52..d18dd0b82e2aacfe0829e10e5bb8850f474e9cd2 100644
--- a/docs/api/task.md
+++ b/docs/api/task.md
@@ -1,3 +1,8 @@
+---
+title: "Task"
+summary: "/api/task endpoints."
+---
+
 # Task
 
 /api/task endpoints.
diff --git a/docs/api/tiles.md b/docs/api/tiles.md
index 38b23ae97b47cc8417f93bd500f2fe12996b6459..16af512b8920816ef772928324f285120a346588 100644
--- a/docs/api/tiles.md
+++ b/docs/api/tiles.md
@@ -1,3 +1,8 @@
+---
+title: "Tiles"
+summary: "`/api/tiles` endpoints."
+---
+
 # Tiles
 
 `/api/tiles` endpoints.
diff --git a/docs/api/timeline-event.md b/docs/api/timeline-event.md
index 65d44f5593595b9789642e1cc9e1465e99cbad6b..8b7ea23e09e8ecda760d4f39d0decea99d214eef 100644
--- a/docs/api/timeline-event.md
+++ b/docs/api/timeline-event.md
@@ -1,3 +1,8 @@
+---
+title: "Timeline event"
+summary: "/api/timeline-event endpoints."
+---
+
 # Timeline event
 
 /api/timeline-event endpoints.
diff --git a/docs/api/timeline.md b/docs/api/timeline.md
index 33aaaa6d5064fae4491cf2dc8b60a26a3fc89086..399cfd9b44c7ae0e8ceee5abdd22df9c8a4998b4 100644
--- a/docs/api/timeline.md
+++ b/docs/api/timeline.md
@@ -1,3 +1,8 @@
+---
+title: "Timeline"
+summary: "/api/timeline endpoints."
+---
+
 # Timeline
 
 /api/timeline endpoints.
diff --git a/docs/api/transform.md b/docs/api/transform.md
index 4799a76903786dcca6386c03e410dfd1490d8cc9..0793b1b6c875fa1fdedfe65af2996bab49834d82 100644
--- a/docs/api/transform.md
+++ b/docs/api/transform.md
@@ -1,5 +1,12 @@
+---
+title: "Transform"
+summary: "API endpoints for Transform."
+---
+
 # Transform
 
+API endpoints for Transform.
+
   - [GET /api/transform/:db-id/:schema/:transform-name](#get-apitransformdb-idschematransform-name)
 
 ## `GET /api/transform/:db-id/:schema/:transform-name`
diff --git a/docs/api/user.md b/docs/api/user.md
index 3c1188a4e731f213a9381fa400bd0e7fbace2769..c78e674581d6f6fdf43a4132043a2347e9ec4c61 100644
--- a/docs/api/user.md
+++ b/docs/api/user.md
@@ -1,3 +1,8 @@
+---
+title: "User"
+summary: "/api/user endpoints."
+---
+
 # User
 
 /api/user endpoints.
diff --git a/docs/api/util.md b/docs/api/util.md
index 2987f8526400b332b4bb8472ca75a627506c1753..2b312ac5753d6dba198518132b14db1a640886a5 100644
--- a/docs/api/util.md
+++ b/docs/api/util.md
@@ -1,3 +1,9 @@
+---
+title: "Util"
+summary: "Random utilty endpoints for things that don't belong anywhere else in particular, e.g. endpoints for certain admin
+  page tasks."
+---
+
 # Util
 
 Random utilty endpoints for things that don't belong anywhere else in particular, e.g. endpoints for certain admin
diff --git a/docs/code-reviews.md b/docs/code-reviews.md
index cdfe07f1b758b1a18e36de5f653ae8acc13e2510..00e75b53ba77ac12e49c759442c17b993e0e2299 100644
--- a/docs/code-reviews.md
+++ b/docs/code-reviews.md
@@ -1,4 +1,10 @@
-**The overall goal of a code review is to serve as a safety net for other people on our team and help them write better code, not to judge them or their code. When in doubt, assume that they have good intentions and BE NICE.**
+---
+title: Code reviews
+---
+
+# Code reviews
+
+The overall goal of a code review is to serve as a safety net for other people on our team and help them write better code, not to judge them or their code. When in doubt, assume that they have good intentions and BE NICE.
 
 ## Goals:
 
diff --git a/docs/contributing.md b/docs/contributing.md
index b38dbc722cb5d953d7dd0d6b4f9b25839e985f62..54c44cbdb02d605a8e10547031b77309dd7817eb 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -1,3 +1,7 @@
+---
+title: Thank you
+---
+
 ## Thank you
 
 First off, thanks for your interest in Metabase and for wanting to contribute!
@@ -87,4 +91,4 @@ Generally speaking, any issue in [Help Wanted](https://github.com/metabase/metab
 
 ### #YOLO JUST SUBMIT A PR
 
-If you come up with something really cool, and want to share it with us, just submit a PR. If it hasn't gone through the above process, we probably won't merge it as is, but if it's compelling, we're more than willing to help you via code review, design review and generally OCD nitpicking so that it fits into the rest of our codebase.
+If you come up with something really cool, and want to share it with us, just submit a PR. If it hasn't gone through the above process, we probably won't merge it as is, but if it's compelling, we're more than willing to help you via code review, design review and generally OCD nitpicking so that it fits into the rest of our codebase.
\ No newline at end of file
diff --git a/docs/developers-guide-drivers.md b/docs/developers-guide-drivers.md
index 589a7f457cd41807a1f08eaad708c4f6b1d194a7..eaf3adacc54409efcc54a5798129798f9d3bb135 100644
--- a/docs/developers-guide-drivers.md
+++ b/docs/developers-guide-drivers.md
@@ -1,3 +1,7 @@
+---
+title: Partner and community drivers
+---
+
 # Partner and community drivers
 
 In addition to our [Officially supported drivers](./administration-guide/01-managing-databases.md#officially-supported-databases), many people build and maintain drivers for database integrations.
@@ -75,4 +79,4 @@ If you are having problems installing or using a community driver, your best bet
 
 ## Write your own driver
 
-Check out [Guide to writing a Metabase driver](./developers-guide/drivers/start.md).
+Check out [Guide to writing a Metabase driver](./developers-guide/drivers/start.md).
\ No newline at end of file
diff --git a/docs/developers-guide.md b/docs/developers-guide.md
index 1fda11bb93e6f6a9de29ad7c3068a47579168a5e..9430d7cf12d41c01d7fa30b1175e7986ceb98550 100644
--- a/docs/developers-guide.md
+++ b/docs/developers-guide.md
@@ -1,5 +1,8 @@
+---
+title: "Deprecated Developer's guide"
+---
 <!-- Do not remove this file since the published HTML in the public doc
 (https://www.metabase.com/docs/latest/developers-guide.html)
 is often referred to in various issues, discussions, etc -->
 
-Please refer to the detailed [Developer's Guide](developers-guide/start.md).
\ No newline at end of file
+Please refer to the detailed [Developer's Guide](developers-guide/start.md).
diff --git a/docs/developers-guide/build.md b/docs/developers-guide/build.md
index 045566418fe1d1801e3243a40c761dab0fb31815..466557a9fdf667c8f642f7d5b2f951f587b301c9 100644
--- a/docs/developers-guide/build.md
+++ b/docs/developers-guide/build.md
@@ -1,3 +1,7 @@
+---
+title: Building Metabase
+---
+
 # Building Metabase
 
 This doc will show you how you can build and run Metabase on your own computer so you can play around with it or test features in development. You can also run development branches of Metabase [using a pre-built Docker image](dev-branch-docker.md).
@@ -157,5 +161,4 @@ The entire Metabase application is compiled and assembled into a single .jar fil
 
     ./bin/build
 
-After running the build script simply look in `target/uberjar` for the output .jar file and you are ready to go.
-
+After running the build script simply look in `target/uberjar` for the output .jar file and you are ready to go.
\ No newline at end of file
diff --git a/docs/developers-guide/clojure.md b/docs/developers-guide/clojure.md
index bf40de034ee6968a904c09e56afbc8cf5b978ec6..b802ab082cd7281787ac9b6c0cff2405e51c8436 100644
--- a/docs/developers-guide/clojure.md
+++ b/docs/developers-guide/clojure.md
@@ -1,7 +1,9 @@
+---
+title: Working with Clojure
+---
+
 # Working with Clojure
 
 Check out [Clojure for the Brave and True](https://www.braveclojure.com/clojure-for-the-brave-and-true/). It's free online. 
 
-If you don't feel like reading a whole book, [Mark Volkmann's Clojure tutorial](https://objectcomputing.com/resources/publications/sett/march-2009-clojure-functional-programming-for-the-jvm) is another good starting point. 
-
-
+If you don't feel like reading a whole book, [Mark Volkmann's Clojure tutorial](https://objectcomputing.com/resources/publications/sett/march-2009-clojure-functional-programming-for-the-jvm) is another good starting point.
\ No newline at end of file
diff --git a/docs/developers-guide/contributing.md b/docs/developers-guide/contributing.md
index 7f9443af3ca249ddbd7f4e7279e532cf03142444..e102f1bfe69a3226eacae6e30979b8ce98c283a4 100644
--- a/docs/developers-guide/contributing.md
+++ b/docs/developers-guide/contributing.md
@@ -1,3 +1,7 @@
+---
+title: Contributing
+---
+
 # Contributing
 
 In general, we like to have an open issue for every pull request as a place to discuss the nature of any bug or proposed improvement. Each pull request should address a single issue, and contain both the fix as well as a description of the pull request and tests that validate that the PR fixes the issue in question.
diff --git a/docs/developers-guide/dev-branch-docker.md b/docs/developers-guide/dev-branch-docker.md
index 87ea86cdd27877aca2c872d01f5b41f55c2848d2..04f031f9155b20bdbe615e450758cd5e879f696e 100644
--- a/docs/developers-guide/dev-branch-docker.md
+++ b/docs/developers-guide/dev-branch-docker.md
@@ -1,3 +1,7 @@
+---
+title: How to run a development branch of Metabase using Docker
+---
+
 # How to run a development branch of Metabase using Docker
 
 If you want to run a branch of Metabase that's currently in development, the easiest way to get started is to use a pre-built Docker image. You can also [compile Metabase yourself](build.md).
@@ -49,4 +53,4 @@ Then:
 docker run --platform linux/amd64 -d -p 3000:3000 --name metabase metabase/metabase-enterprise-head:latest
 ```
 
-The “latest” tag is not automatically upgraded on your local machine, so the above commands ensure that you’re pulling the latest changes.
+The “latest” tag is not automatically upgraded on your local machine, so the above commands ensure that you’re pulling the latest changes.
\ No newline at end of file
diff --git a/docs/developers-guide/devenv.md b/docs/developers-guide/devenv.md
index dfa68a64b55504f218d84f71155fe7daeaf93d35..f93951dc40d56992f3bc3b3b478fe27f08186dfb 100644
--- a/docs/developers-guide/devenv.md
+++ b/docs/developers-guide/devenv.md
@@ -1,3 +1,7 @@
+---
+title: Development environment
+---
+
 # Development environment
 
 The Metabase application has two basic components:
@@ -230,4 +234,4 @@ It is also possible to execute front-end and back-end checks separately
 ```sh
 $ yarn ci-frontend
 $ yarn ci-backend
-```
+```
\ No newline at end of file
diff --git a/docs/developers-guide/driver-changelog.md b/docs/developers-guide/driver-changelog.md
index e07909149923514847a4dc2828cb2d7892250a1c..d08338bbeb858f5cc9264463263896a6c414b7c4 100644
--- a/docs/developers-guide/driver-changelog.md
+++ b/docs/developers-guide/driver-changelog.md
@@ -1,3 +1,7 @@
+---
+title: Driver Interface Changelog
+---
+
 # Driver Interface Changelog
 
 ## Metabase 0.43.0
@@ -130,4 +134,4 @@ table below:
 | 0.38.0 | [changes](https://github.com/metabase/metabase/wiki/What's-new-in-0.38.0-for-Metabase-driver-authors) |
 | 0.37.0 | [changes](https://github.com/metabase/metabase/wiki/What's-new-in-0.37.0-for-Metabase-driver-authors) |
 | 0.36.0 | [changes](https://github.com/metabase/metabase/wiki/What's-new-in-0.36.0-for-Metabase-driver-authors) |
-| 0.35.0 | [changes](https://github.com/metabase/metabase/wiki/What's-new-in-0.35.0-for-Metabase-driver-authors) |
+| 0.35.0 | [changes](https://github.com/metabase/metabase/wiki/What's-new-in-0.35.0-for-Metabase-driver-authors) |
\ No newline at end of file
diff --git a/docs/developers-guide/drivers/basics.md b/docs/developers-guide/drivers/basics.md
index 2bf7581dd1c21221ff15b7c68af7cc287e9d241f..4ca76af472541fc55f0df497608220619651e445 100644
--- a/docs/developers-guide/drivers/basics.md
+++ b/docs/developers-guide/drivers/basics.md
@@ -1,3 +1,7 @@
+---
+title: Database driver basics
+---
+
 # Database driver basics
 
 A Metabase driver:
@@ -65,4 +69,4 @@ This is the core file for your driver. We'll talk more about it in [Implementing
 
 We'll learn more about [plugin manifests](plugins.md).
 
-[env-var]: ../../operations-guide/environment-variables.html
+[env-var]: ../../operations-guide/environment-variables.html
\ No newline at end of file
diff --git a/docs/developers-guide/drivers/driver-tests.md b/docs/developers-guide/drivers/driver-tests.md
index 67b6a5564caa9d6110f32f4974c4d4ac082b5109..9c34e57f10aa5c332680fcdcaeda3595176a2aea 100644
--- a/docs/developers-guide/drivers/driver-tests.md
+++ b/docs/developers-guide/drivers/driver-tests.md
@@ -1,3 +1,7 @@
+---
+title: Submitting a PR for a new driver
+---
+
 # Submitting a PR for a new driver
 
 If you want to submit a PR to add a driver plugin to the [Metabase repo](https://github.com/metabase/metabase) (as opposed to keeping it in a separate repo), you'll need to:
@@ -239,5 +243,4 @@ and the steps:
             MB_POSTGRES_SSL_TEST_SSL_ROOT_CERT_PATH=/home/circleci/metabase/metabase/test-resources/certificates/us-east-2-bundle.pem
 ```
 
-For more on what it is you're doing here and how all this works, see [CircleCI 2.0 Workflows](https://circleci.com/docs/2.0/workflows/).
-
+For more on what it is you're doing here and how all this works, see [CircleCI 2.0 Workflows](https://circleci.com/docs/2.0/workflows/).
\ No newline at end of file
diff --git a/docs/developers-guide/drivers/multimethods.md b/docs/developers-guide/drivers/multimethods.md
index 850e6ae773e6857e58ead19811ba0aeede5e0c83..8d71ab30eb36e09d4695af959c4c2e4d7b420d79 100644
--- a/docs/developers-guide/drivers/multimethods.md
+++ b/docs/developers-guide/drivers/multimethods.md
@@ -1,3 +1,7 @@
+---
+title: Implementing multimethods for your driver
+---
+
 # Implementing multimethods for your driver
 
 Implementing multimethods lets you take advantage of Metabase's existing driver code by extending those methods to work for your particular database.
@@ -135,4 +139,4 @@ To start a REPL.
 clojure -A:dev:drivers:drivers-dev
 ```
 
-You'll need to rebuild the driver and install it in your `./plugins` directory, and restart Metabase when you make changes.
+You'll need to rebuild the driver and install it in your `./plugins` directory, and restart Metabase when you make changes.
\ No newline at end of file
diff --git a/docs/developers-guide/drivers/plugins.md b/docs/developers-guide/drivers/plugins.md
index 8432eaa4dd4004be09e71fb71d728fc009b88dd7..8a2fe6868c51cf9cc5ab94b5b9729b07e60b2dd5 100644
--- a/docs/developers-guide/drivers/plugins.md
+++ b/docs/developers-guide/drivers/plugins.md
@@ -1,3 +1,7 @@
+---
+title: Plugin manifests
+---
+
 # Plugin manifests
 
 Metabase plugin JARs contain a _plugin manifest_ -- a top-level file named `metabase-plugin.yaml`. When Metabase launches, it iterates over every JAR in the plugins directory, and looks for the manifest in each. This manifest tells Metabase what the plugin provides and how to initialize it.
@@ -221,4 +225,4 @@ init:
 
 ## Next up
 
-[Implementing multimethods](multimethods.md) for your driver.
+[Implementing multimethods](multimethods.md) for your driver.
\ No newline at end of file
diff --git a/docs/developers-guide/drivers/start.md b/docs/developers-guide/drivers/start.md
index 759043f5e888ccbdd5940c6498e07be15f61e9df..7eeec38289bef8a3044ce2ad4a43d53f07b76da5 100644
--- a/docs/developers-guide/drivers/start.md
+++ b/docs/developers-guide/drivers/start.md
@@ -1,3 +1,7 @@
+---
+title: Guide to writing a Metabase driver
+---
+
 # Guide to writing a Metabase driver
 
 So here's the scenario: you love Metabase. It's changed your life. But you have some data in a Visual Fox Pro '98 database and you need to make charts with it, and it might be a while before the core Metabase team writes a driver for Visual Fox Pro '98. No problem! Writing a driver can be fun.
@@ -32,4 +36,4 @@ Try to avoid skipping right to whichever page you think will give you the code y
 
 ## Driver development announcements
 
-Occasionally, we may make changes to Metabase that impact database drivers. We'll try to give everyone as much of a heads up as possible. For notifications regarding potential driver changes, subscribe to the [Metabase Community Authors mailing list](http://eepurl.com/gQcIO9). 
+Occasionally, we may make changes to Metabase that impact database drivers. We'll try to give everyone as much of a heads up as possible. For notifications regarding potential driver changes, subscribe to the [Metabase Community Authors mailing list](http://eepurl.com/gQcIO9).
\ No newline at end of file
diff --git a/docs/developers-guide/e2e-tests.md b/docs/developers-guide/e2e-tests.md
index 641efbb25919c03097d58fab4a4a9ecfff67040d..46e46abceeb55e85af07ce4c9c0a812ad3aec08f 100644
--- a/docs/developers-guide/e2e-tests.md
+++ b/docs/developers-guide/e2e-tests.md
@@ -1,3 +1,7 @@
+---
+title: End-to-end Tests with Cypress
+---
+
 # End-to-end Tests with Cypress
 
 Metabase uses Cypress for “end-to-end testing”, that is, tests that are executed against the application as a whole, including the frontend, backend, and application database. These tests are essentially scripts written in JavaScript that run in the web browser: visit different URLs, click various UI elements, type text, and assert that things happen as expected (for example, an element appearing on screen, or a network request occuring).
@@ -83,4 +87,4 @@ Cypress records videos of each test run, which can be helpful in debugging. Addi
 
 
 These files can be found under the “Artifacts” tab in Circle:
-![Circle CI Artifacts tab](https://user-images.githubusercontent.com/691495/72190614-f5995380-33cd-11ea-875e-4203d6dcf1c1.png)
+![Circle CI Artifacts tab](https://user-images.githubusercontent.com/691495/72190614-f5995380-33cd-11ea-875e-4203d6dcf1c1.png)
\ No newline at end of file
diff --git a/docs/developers-guide/emacs.md b/docs/developers-guide/emacs.md
index 02f22331167dad6bed3187d7e875328b11519660..74fcf4ed928ca93b2773ac6d37175f19751ad9e4 100644
--- a/docs/developers-guide/emacs.md
+++ b/docs/developers-guide/emacs.md
@@ -1,3 +1,7 @@
+---
+title: Developing Metabase with Emacs
+---
+
 # Developing Metabase with Emacs
 
 `.dir-locals.el` contains some Emacs Lisp that tells `clojure-mode` how to indent Metabase macros and which arguments are docstrings. Whenever this file is updated,
@@ -10,5 +14,4 @@ You'll probably want to tell Emacs to store customizations in a different file.
 (setq custom-file (concat user-emacs-directory ".custom.el")) ; tell Customize to save customizations to ~/.emacs.d/.custom.el
 (ignore-errors                                                ; load customizations from ~/.emacs.d/.custom.el
   (load-file custom-file))
-```
-
+```
\ No newline at end of file
diff --git a/docs/developers-guide/frontend.md b/docs/developers-guide/frontend.md
index 47d3d773b0d1f242b131d2b1eab674a6b9d8ad6a..1148e5b017d33061377123ed4fa32b297d5bbf75 100644
--- a/docs/developers-guide/frontend.md
+++ b/docs/developers-guide/frontend.md
@@ -1,3 +1,7 @@
+---
+title: Frontend
+---
+
 # Frontend
 
 ## Entity Loaders
@@ -590,4 +594,4 @@ Here, clicking on the following will open `<Popover />` components:
 - `Add filters to narrow your answers`
 - `Pick the metric you want to see`
 - `Pick a column to group by`
-- `Sort` icon with arrows pointing up and down above `Visualize` button
+- `Sort` icon with arrows pointing up and down above `Visualize` button
\ No newline at end of file
diff --git a/docs/developers-guide/internationalization.md b/docs/developers-guide/internationalization.md
index f511850fbc2359614ece378c1b4e25c7915e4889..a0f72b9bcb1db454d53c1dd62aed7d0fbd2745c8 100644
--- a/docs/developers-guide/internationalization.md
+++ b/docs/developers-guide/internationalization.md
@@ -1,3 +1,7 @@
+---
+title: Internationalization
+---
+
 # Internationalization
 
 We are an application with lots of users all over the world. To help them use Metabase in their own language, we mark all of our strings as i18n.
@@ -74,4 +78,4 @@ Every string language needs an escape character. Since `{0}` is an argument to b
 
 These is an unfortunate side effect of this though. Since the apostrophe is such a commeon part of speech (especially in french), we often can end up with escape characters used as a regular part of a string rather than the escape character. Format strings need to use double apostrophes like `(deferred-tru "SAML attribute for the user''s email address")` to escape the apostrophe.
 
-There are lots of translated strings in French that use a single apostrophe incorrectly. (eg "l'URL" instead of "l''URL"). We have a manual fix to this in `bin/i18n/src/i18n/create_artifacts/backend.clj` where we try to identify these apostrophes which are not escape characters and replace them with a double quote.
+There are lots of translated strings in French that use a single apostrophe incorrectly. (eg "l'URL" instead of "l''URL"). We have a manual fix to this in `bin/i18n/src/i18n/create_artifacts/backend.clj` where we try to identify these apostrophes which are not escape characters and replace them with a double quote.
\ No newline at end of file
diff --git a/docs/developers-guide/start.md b/docs/developers-guide/start.md
index 0e747a032602fa806738e2d1245443bd8973877f..fa6b514fdb98f77930069a6fa661d5f3db3af316 100644
--- a/docs/developers-guide/start.md
+++ b/docs/developers-guide/start.md
@@ -1,3 +1,7 @@
+---
+title: Developer's Guide
+---
+
 # Developer's Guide
 
 This guide contains detailed information on how to work on Metabase codebase.
@@ -33,4 +37,4 @@ This guide contains detailed information on how to work on Metabase codebase.
 
 Learn how to write a driver to connect Metabase to your database.
 
-- [Guide to writing a driver](drivers/start.md)
+- [Guide to writing a driver](drivers/start.md)
\ No newline at end of file
diff --git a/docs/developers-guide/visual-studio-code.md b/docs/developers-guide/visual-studio-code.md
index 0c5ce44d9263a387a9c6593e1bdd4557a4ad816b..bd07821f974f5390e063563b5e6c415eb6d48fd6 100644
--- a/docs/developers-guide/visual-studio-code.md
+++ b/docs/developers-guide/visual-studio-code.md
@@ -1,3 +1,7 @@
+---
+title: Developing with Visual Studio Code
+---
+
 ## Developing with Visual Studio Code
 
 ### Debugging
@@ -55,5 +59,4 @@ Steps:
 
 5. After a while (after all JavaScript and Clojure dependencies are completely downloaded), open localhost:3000 with your web browser.
 
-See [here](dev-branch-docker.md) for more on running development branches of Metabase using Docker.
-
+See [here](dev-branch-docker.md) for more on running development branches of Metabase using Docker.
\ No newline at end of file
diff --git a/docs/developers-guide/visual-tests.md b/docs/developers-guide/visual-tests.md
index 52c29c6f904f2d71d3c07844ab778ec194d437e2..ce831789303018b9499e31ac8c3416199ca8908e 100644
--- a/docs/developers-guide/visual-tests.md
+++ b/docs/developers-guide/visual-tests.md
@@ -1,3 +1,7 @@
+---
+title: Visual Tests
+---
+
 # Visual Tests
 
 We use [Percy](https://percy.io/) via Github actions to run visual regression tests. Percy provides pull-request-based workflow, handles diff review and approval flow conveniently. In addition to that, It integrates with Cypress, which allows us to use all power of our custom helpers and commands. We run
@@ -45,4 +49,4 @@ Consider the page state at `percyHealthCheck` step as the one that will be captu
 
 - You don't need to export `PERCY_TOKEN` for running tests. If a token is exported Percy will send snapshots from your local machine to their servers so that you will be able to see your local run in their interface.
 - When the application code uses `Date.now()`, you can [freeze](https://docs.percy.io/docs/freezing-dynamic-data#freezing-datetime-in-cypress) date/time in Cypress.
-- [Stub](https://github.com/metabase/metabase/pull/17380/files#diff-4e8ebaf75969143a5eee6bfb8adcd4b72d4330d18d77319e3434d11cf6c75e40R15) `Math.random` when to deal with randomization.
+- [Stub](https://github.com/metabase/metabase/pull/17380/files#diff-4e8ebaf75969143a5eee6bfb8adcd4b72d4330d18d77319e3434d11cf6c75e40R15) `Math.random` when to deal with randomization.
\ No newline at end of file
diff --git a/docs/enterprise-guide/activating-the-enterprise-edition.md b/docs/enterprise-guide/activating-the-enterprise-edition.md
index fde018602046104f53d202d2901c560ced6a64c8..a215a79be10805f402f9553ab4e204ede3b5851e 100644
--- a/docs/enterprise-guide/activating-the-enterprise-edition.md
+++ b/docs/enterprise-guide/activating-the-enterprise-edition.md
@@ -1,3 +1,7 @@
+---
+title: Activating your Metabase commercial license
+---
+
 ## Activating your Metabase commercial license
 
 The paid Pro and Enterprise editions of Metabase are distinct from the free Open Source edition, so to use your paid features you’ll need to first get a license. And if you want to self-host, you'll need a different JAR or Docker image that you can use to activate the advanced features with your license token.
@@ -36,4 +40,4 @@ Depending on your organization’s setup, you may need to take additional config
 ---
 
 ## Next: setting up SSO
-We'll walk through how to connect your SSO to Metabase, starting with [SAML-based SSO](authenticating-with-saml.md).
+We'll walk through how to connect your SSO to Metabase, starting with [SAML-based SSO](authenticating-with-saml.md).
\ No newline at end of file
diff --git a/docs/enterprise-guide/audit.md b/docs/enterprise-guide/audit.md
index 409597bd879e4a017899d022793194ed724c601e..ada308b4c0b4f1d412c897c2f2b71039f94175b5 100644
--- a/docs/enterprise-guide/audit.md
+++ b/docs/enterprise-guide/audit.md
@@ -1,3 +1,7 @@
+---
+title: Audit logs
+---
+
 # Audit logs
 
 {% include plans-blockquote.html feature="Audit logs" %}
@@ -99,4 +103,4 @@ Here Admins can get an overview of all of the [Dashboard subscriptions][dashboar
 Admins can add and remove people from a subscription or alert by clicking on the item's __Recipients__. Admins can also delete the subscription or alert entirely by clicking on the **X** on the relevant line.
 
 [alerts]: ../users-guide/15-alerts.md
-[dashboard-subscriptions]: ../users-guide/dashboard-subscriptions.md
+[dashboard-subscriptions]: ../users-guide/dashboard-subscriptions.md
\ No newline at end of file
diff --git a/docs/enterprise-guide/authenticating-with-jwt.md b/docs/enterprise-guide/authenticating-with-jwt.md
index 790998060c865df73e5dbb577470815be57bcd37..321e809256712124f0a835bc2ff4c341c5882618 100644
--- a/docs/enterprise-guide/authenticating-with-jwt.md
+++ b/docs/enterprise-guide/authenticating-with-jwt.md
@@ -1,3 +1,7 @@
+---
+title: JWT-based authentication
+---
+
 # JWT-based authentication
 
 {% include plans-blockquote.html feature="JWT-based authentication" %}
@@ -77,4 +81,4 @@ You can find example code that uses JWT authentication in the [SSO examples repo
 
 ## Next: Creating data sandboxes for your user groups
 
-Data sandboxes automatically filter specific tables for your users based on who they are. We'll show you [how to set these up](data-sandboxes.md) next.
+Data sandboxes automatically filter specific tables for your users based on who they are. We'll show you [how to set these up](data-sandboxes.md) next.
\ No newline at end of file
diff --git a/docs/enterprise-guide/authenticating-with-saml-azure-ad.md b/docs/enterprise-guide/authenticating-with-saml-azure-ad.md
index 87c2fdc90a050fe89f41ecb7220b65db0af67de2..96733933f80a6636137681812e51940a38e03484 100644
--- a/docs/enterprise-guide/authenticating-with-saml-azure-ad.md
+++ b/docs/enterprise-guide/authenticating-with-saml-azure-ad.md
@@ -1,3 +1,7 @@
+---
+title: Using Azure AD as the Identity Provider with Metabase and SAML
+---
+
 ## Using Azure AD as the Identity Provider with Metabase and SAML
 
 {% include plans-blockquote.html feature="SAML authentication" %}
@@ -54,4 +58,4 @@ Under "Tell Metabase about your identity provider", enter the following:
 - **SAML Application Name**: "Metabase"
 - **SAML Identity Provider Issuer**: the "Azure AD Identifier" URL you got from the Azure AD SAML SSO configuration.
 
-Click on **Save Changes** below, and you should now be able to log in via Azure AD.
+Click on **Save Changes** below, and you should now be able to log in via Azure AD.
\ No newline at end of file
diff --git a/docs/enterprise-guide/authenticating-with-saml.md b/docs/enterprise-guide/authenticating-with-saml.md
index 57dfcf20dd9dca0135a97086ee8ae2c8ec25d8db..d9d85a2205a18c8d78661f52f76f2e3129300f21 100644
--- a/docs/enterprise-guide/authenticating-with-saml.md
+++ b/docs/enterprise-guide/authenticating-with-saml.md
@@ -1,3 +1,7 @@
+---
+title: Authenticating with SAML
+---
+
 ## Authenticating with SAML
 
 {% include plans-blockquote.html feature="SAML authentication" %}
@@ -225,4 +229,4 @@ You can find example code that uses SAML authentication in the [SSO examples rep
 
 ## Next: JWT-based SSO
 
-If SAML isn’t your bag, find out how to enable [JWT-based SSO](authenticating-with-jwt.html).
+If SAML isn’t your bag, find out how to enable [JWT-based SSO](authenticating-with-jwt.html).
\ No newline at end of file
diff --git a/docs/enterprise-guide/cache.md b/docs/enterprise-guide/cache.md
index b95aae5cdd426ce9a67ce7062af22924f7558cdd..34d6fe0dad2d248bb8b33f76ace62b9718de328c 100644
--- a/docs/enterprise-guide/cache.md
+++ b/docs/enterprise-guide/cache.md
@@ -1,3 +1,7 @@
+---
+title: Advanced caching controls
+---
+
 # Advanced caching controls
 
 {% include plans-blockquote.html feature="Question-specific caching" %}
@@ -19,4 +23,4 @@ To learn how to set caching preferences on individual questions, check out our [
 For an overview of site-wide caching available to all Metabase editions, check out our [Adminstrator's guide][caching-admin].
 
 [caching]: ../users-guide/06-sharing-answers.md#caching-results
-[caching-admin]: ../administration-guide/14-caching.html
+[caching-admin]: ../administration-guide/14-caching.html
\ No newline at end of file
diff --git a/docs/enterprise-guide/customizing-drill-through.md b/docs/enterprise-guide/customizing-drill-through.md
index c5046a5e1bcfbe26c2a53b6d33535e3af41b9053..c041d42a945e48d287be677e97e32e40035eb552 100644
--- a/docs/enterprise-guide/customizing-drill-through.md
+++ b/docs/enterprise-guide/customizing-drill-through.md
@@ -1 +1,5 @@
-For customizing what happens when users click on a dashboard card, see [interactive dashboards](../users-guide/interactive-dashboards.md).
\ No newline at end of file
+---
+title: Deprecated page
+---
+
+For customizing what happens when users click on a dashboard card, see [interactive dashboards](../users-guide/interactive-dashboards.md).
diff --git a/docs/enterprise-guide/dashboard-subscriptions.md b/docs/enterprise-guide/dashboard-subscriptions.md
index c10d0ce04026fc18fb38174642ccd7a3585859e1..5d203fab3c957f4b9ccda66d8650ff0b67d31851 100644
--- a/docs/enterprise-guide/dashboard-subscriptions.md
+++ b/docs/enterprise-guide/dashboard-subscriptions.md
@@ -1,3 +1,6 @@
+---
+title: Customize filter values for each dashboard subscription
+---
 
 ## Customize filter values for each dashboard subscription
 
@@ -13,5 +16,4 @@ Here's the sidebar where you can set the filter values:
 
 ![Setting a filter value](./images/dashboard-subscriptions/set-filter-values.png)
 
-The section to call out here is the **Set filter values for when this gets sent**. Here we've set "VT" as the value for the dashboard's State filter to scope results to records from Vermont. We didn't set a value for the Created_At filter, so the subscription will send the results without a filter applied. If you've set a default value for the filter, the subscription will list the value here.
-
+The section to call out here is the **Set filter values for when this gets sent**. Here we've set "VT" as the value for the dashboard's State filter to scope results to records from Vermont. We didn't set a value for the Created_At filter, so the subscription will send the results without a filter applied. If you've set a default value for the filter, the subscription will list the value here.
\ No newline at end of file
diff --git a/docs/enterprise-guide/data-sandboxes.md b/docs/enterprise-guide/data-sandboxes.md
index 71b5e5ac011d91b10535fb158c27b8b2a31e2ee4..c833284a30c942ec161a1b984cd203056d340206 100644
--- a/docs/enterprise-guide/data-sandboxes.md
+++ b/docs/enterprise-guide/data-sandboxes.md
@@ -1,3 +1,7 @@
+---
+title: Data sandboxes
+---
+
 # Data sandboxes
 
 {% include plans-blockquote.html feature="Data sandboxes" %}
@@ -171,4 +175,4 @@ The next section will explain [how to embed](full-app-embedding.md) interactive
 [advanced-sandboxing]: /learn/permissions/data-sandboxing-column-permissions.html
 [permissions]: /learn/permissions/index.html
 [permissions-overview]: ../administration-guide/05-setting-permissions.md
-[troubleshoot-sandbox]: ../troubleshooting-guide/sandboxing.html
+[troubleshoot-sandbox]: ../troubleshooting-guide/sandboxing.html
\ No newline at end of file
diff --git a/docs/enterprise-guide/full-app-embedding.md b/docs/enterprise-guide/full-app-embedding.md
index 5342ea3c773a5e2e53f35642de87097b31e82c99..3a6ebfa45799864a9717ddb5c5b313831a7ec7d6 100644
--- a/docs/enterprise-guide/full-app-embedding.md
+++ b/docs/enterprise-guide/full-app-embedding.md
@@ -1,3 +1,7 @@
+---
+title: Embedding all of Metabase in your web app
+---
+
 ## Embedding all of Metabase in your web app
 
 {% include plans-blockquote.html feature="Full-app embedding" %}
@@ -110,4 +114,4 @@ Check out these articles:
 
 ## Next: white labeling
 
-Learn how to quickly add your own logo and customize the way Metabase looks with [white labeling](whitelabeling.md).
+Learn how to quickly add your own logo and customize the way Metabase looks with [white labeling](whitelabeling.md).
\ No newline at end of file
diff --git a/docs/enterprise-guide/saml-auth0.md b/docs/enterprise-guide/saml-auth0.md
index 17b9df2a30ef42b744f3a1e85734e039f312575b..ddc03682dbdd0ee98d411ae3d80c7f1519de317b 100644
--- a/docs/enterprise-guide/saml-auth0.md
+++ b/docs/enterprise-guide/saml-auth0.md
@@ -1,3 +1,7 @@
+---
+title: Setting up SAML with Auth0
+---
+
 # Setting up SAML with Auth0
 
 {% include plans-blockquote.html feature="SAML authentication" %}
@@ -74,4 +78,4 @@ Save your settings, then [enable SAML](authenticating-with-saml.html) in Metabas
 
 ## Troubleshooting
 
-For common issues, see our [SAML troubleshooting page](../troubleshooting-guide/saml.html).
+For common issues, see our [SAML troubleshooting page](../troubleshooting-guide/saml.html).
\ No newline at end of file
diff --git a/docs/enterprise-guide/saml-google.md b/docs/enterprise-guide/saml-google.md
index 71fc08d449963e44219b071cade9e38346c65198..2f3f30e5c46dcb2e5a737be321c3015768401d9e 100644
--- a/docs/enterprise-guide/saml-google.md
+++ b/docs/enterprise-guide/saml-google.md
@@ -1,3 +1,7 @@
+---
+title: Setting up SAML with Google
+---
+
 # Setting up SAML with Google
 
 {% include plans-blockquote.html feature="Google SAML authentication" %}
@@ -19,4 +23,4 @@ For more information, check out our guide for [authenticating with SAML](authent
 | SAML Identity Provider URL          | Google Admin console > Google Identity Provider details > Copy the **SSO URL**                                                                                |
 | SAML Identity Provider Certificate  | Google Admin console > Google Identity Provider details > Download certificate                                                                                |
 | SAML Application Name               | Google Admin console > Google Identity Provider details > Copy the **Entity ID**                                                                              |
-| SAML Identity Provider Issuer       | Google Admin console > Google Identity Provider details > Download metadata                                                                                   |
+| SAML Identity Provider Issuer       | Google Admin console > Google Identity Provider details > Download metadata                                                                                   |
\ No newline at end of file
diff --git a/docs/enterprise-guide/saml-keycloak.md b/docs/enterprise-guide/saml-keycloak.md
index 53cb48dae665e98332ee0de75fa0c335b3f3fc18..a91511d6713ad0a9fcd5b91488bf672be846fcd8 100644
--- a/docs/enterprise-guide/saml-keycloak.md
+++ b/docs/enterprise-guide/saml-keycloak.md
@@ -1,3 +1,7 @@
+---
+title: Setting up SAML with Keycloak
+---
+
 # Setting up SAML with Keycloak
 
 Keycloak is an open source platform that can be used as a user directory to save user data while acting as the IdP for single sign-on.
@@ -61,4 +65,4 @@ Let's say we want email, name, and surname to be passed between the client (Meta
     - **SAML Attribute Name**: the name that Metabase expects to receive.
     - **SAML Attribute NameFormat**: select “Basic” from the dropdown menu.
 
-You can find the attribute values from your Metabase **Admin settings** > **Authentication** > **SAML** > **Attributes**.
+You can find the attribute values from your Metabase **Admin settings** > **Authentication** > **SAML** > **Attributes**.
\ No newline at end of file
diff --git a/docs/enterprise-guide/serialization.md b/docs/enterprise-guide/serialization.md
index 4a6566d0668163bd1682a386446c02be81cfbd8c..7b7abb0de8aa83ab29364a89508c1eb1ff99e694 100644
--- a/docs/enterprise-guide/serialization.md
+++ b/docs/enterprise-guide/serialization.md
@@ -1,3 +1,7 @@
+---
+title: "Serialization: copying contents of one Metabase instance to another"
+---
+
 ## Serialization: copying contents of one Metabase instance to another
 
 {% include plans-blockquote.html feature="Serialization" %}
diff --git a/docs/enterprise-guide/sql-snippets.md b/docs/enterprise-guide/sql-snippets.md
index 8e7fdc8b0713ebdd98489a6dc02febd12d6d4a17..ce4accf7bd257afe6f6bdbeabb0dbe93f51ee7e0 100644
--- a/docs/enterprise-guide/sql-snippets.md
+++ b/docs/enterprise-guide/sql-snippets.md
@@ -1,3 +1,7 @@
+---
+title: SQL snippet folders and permissions
+---
+
 # SQL snippet folders and permissions
 
 {% include plans-blockquote.html feature="SQL snippet controls" %}
@@ -80,4 +84,4 @@ In three parts:
 
 Because of how snippet folder permissions work, we recommend that you consider snippet folder permissions as an additional tool for snippet organization, not as method of preventing access to the SQL code those snippets contain. Use folder permissions to keep the snippet sidebar tidy by exposing teams to folders relevant to their analytical domain, and restrict editing permissions to key snippets in your organization to keep important SQL code accurate and safe from bugs introduced by unvetted edits.
 
-Learn more about [SQL snippets](https://www.metabase.com/blog/sql-snippets/index.html).
+Learn more about [SQL snippets](https://www.metabase.com/blog/sql-snippets/index.html).
\ No newline at end of file
diff --git a/docs/enterprise-guide/start.md b/docs/enterprise-guide/start.md
index c35d75ca19729294b0e10bcc578ff42078a3966c..98fb0ef5d78bf339a6924acb08889fc9c081ddd2 100644
--- a/docs/enterprise-guide/start.md
+++ b/docs/enterprise-guide/start.md
@@ -1,3 +1,7 @@
+---
+title: Enterprise and Pro editions
+---
+
 # Enterprise and Pro editions
 
 The [Enterprise and Pro][pricing] editions of Metabase provide additional features that help organizations scale Metabase and deliver self-service, embedded analytics.
@@ -74,4 +78,4 @@ You can export Metabase application data and use that to spin up new instances p
 
 - [Serialization](serialization.html)
 
-[pricing]: https://www.metabase.com/pricing/
+[pricing]: https://www.metabase.com/pricing/
\ No newline at end of file
diff --git a/docs/enterprise-guide/tools.md b/docs/enterprise-guide/tools.md
index ba396d2e67b6ff2cee40c85a79e18b52edbd8b8f..3ebf779170f661b3de2f2de4f50d7304ec40eef7 100644
--- a/docs/enterprise-guide/tools.md
+++ b/docs/enterprise-guide/tools.md
@@ -1,3 +1,7 @@
+---
+title: Admin tools
+---
+
 # Admin tools
 
 {% include plans-blockquote.html features="Admin tools" %}
@@ -12,4 +16,4 @@ Metabase will list the questions that returned errors, including the:
 - Database that returned the error,
 - Collection that houses the question that errored.
 
-You can select and rerun multiple questions at a time while you troubleshoot to see whether you've resolved their errors.
+You can select and rerun multiple questions at a time while you troubleshoot to see whether you've resolved their errors.
\ No newline at end of file
diff --git a/docs/enterprise-guide/whitelabeling.md b/docs/enterprise-guide/whitelabeling.md
index d7253f5ec59c9443c96d4f1d574f59f1efb47e0d..8e5f04eab66b81324c0758f96e6ac0cb3bb6d0dd 100644
--- a/docs/enterprise-guide/whitelabeling.md
+++ b/docs/enterprise-guide/whitelabeling.md
@@ -1,3 +1,7 @@
+---
+title: White labeling Metabase
+---
+
 ## White labeling Metabase
 
 {% include plans-blockquote.html feature="White labeling" %}
@@ -23,4 +27,4 @@ To learn more, check out this article on [branding your Metabase instance](https
 ---
 
 ## Next: Copying contents of one Metabase instance to another
-Learn how to use [serialization](serialization.md) to create and load data dumps of the contents of a Metabase instance.
+Learn how to use [serialization](serialization.md) to create and load data dumps of the contents of a Metabase instance.
\ No newline at end of file
diff --git a/docs/information-collection.md b/docs/information-collection.md
index 03d0acb44f1bbcf3a2cffeddf56fc82cf9ab1fe9..2777e2e8c2c0d0f1cae840d58e755aefd936f58f 100644
--- a/docs/information-collection.md
+++ b/docs/information-collection.md
@@ -1,4 +1,8 @@
-# About the Information we collect:
+---
+title: About the Information we collect
+---
+
+# About the Information we collect
 
 Metabase uses Google Analytics and Snowplow to collect anonymous usage information from the installed servers that enable this feature. Below is a representative list of the events we have instrumented, as well as the information we collect about the user performing the action and the instance being used.
 
diff --git a/docs/operations-guide/advanced-topics-for-running-Metabase-in-AWS-ElasticBeanstalk.md b/docs/operations-guide/advanced-topics-for-running-Metabase-in-AWS-ElasticBeanstalk.md
index f7fccef5e53ead3834063e73dcef4aa2eab6acfc..20b9a69f11d129ee9100ad0becb503ea2a6806ae 100644
--- a/docs/operations-guide/advanced-topics-for-running-Metabase-in-AWS-ElasticBeanstalk.md
+++ b/docs/operations-guide/advanced-topics-for-running-Metabase-in-AWS-ElasticBeanstalk.md
@@ -1,3 +1,9 @@
+---
+title: Advanced topics for running Metabase on Elastic Beanstalk
+---
+
+# Advanced topics for running Metabase on Elastic Beanstalk
+
 - [Logging](#logging)
   - [Network Access log](#network-access-log)
   - [Application Logs](#application-logs)
@@ -6,15 +12,19 @@
   - [Upload a Server Certificate](#upload-a-server-certificate)
   - [Setup DNS CNAME (using AWS)](#setup-dns-cname-using-aws)
   - [Modify Metabase to enforce HTTPS](#modify-metabase-to-enforce-https)
+- [RAM usage monitoring](#ram-usage-monitoring)
+- [Automated security assessment](#automated-security-assessment)
+- [About NGINX configs inside Elastic Beanstalk deployments](#about-nginx-configs-inside-elastic-beanstalk-deployments)
+
+## Logging
 
-# Logging
-## Network Access log
+### Network Access log
 
 If you need a log of all the IP addresses and URLs that were accessed during a specific period, you can configure the Load Balancer to send those logs to S3. This is useful for analyzing the traffic to your Metabase instance.
 
 To enable this logging, you have to go to the settings of the Load Balancer and enable **Store Logs** in the **Access Log Files** section. You will need to choose an S3 bucket to dump the logs in, and a prefix that will identify the logs coming from this load balancer.
 
-## Application Logs
+### Application Logs
 
 If you want to retain the Metabase application logs, you can publish them to an S3 bucket:
 
@@ -24,7 +34,7 @@ If you want to retain the Metabase application logs, you can publish them to an
 
 You'll need to wait a minute for the logging to kick in, but then you should be good to go. Elastic Beanstalk will now periodically publish the application log files to S3, which you can download whenever you need to analyze them.
 
-## Using Papertrail for logging on AWS
+### Using Papertrail for logging on AWS
 
 You can also use the [Papertrail logging service](https://www.papertrail.com/) for collecting your application logs.
 
@@ -38,11 +48,11 @@ You can also use the [Papertrail logging service](https://www.papertrail.com/) f
 
 _NOTE: Sometimes these settings will not apply until you restart your application server, which you can do by either choosing `Restart App Server(s)` from the Actions dropdown or by deploying the same version again._
 
-# Running Metabase over HTTPS
+## Running Metabase over HTTPS
 
 There is no requirement to run Metabase over HTTPS, but we are sticklers for security and believe you should always be careful with your data. Here's how to set up HTTPS on AWS.
 
-## Upload a Server Certificate
+### Upload a Server Certificate
 
 First, you need to open a new tab in your browser and search for AWS certificate manager in your AWS Dashboard. Once inside, you have the options for provisioning certificates or become a private certificate authority. We will choose `Provision certificates` and we will click on `Get Started`.
 
@@ -50,27 +60,27 @@ A blue button will appear on the top of the page with the feature to import cert
 
 Follow the steps to input your certificates details. Once you submit your certificate details, you'll see the certificate in other tools of AWS (like HTTPS on your load balancer).
 
-## Setup DNS CNAME (using AWS)
+### Setup DNS CNAME (using AWS)
 
 - Open up AWS **Route 53** by navigating to **Services > Networking > Route 53** in the AWS Console header.
 - Click on **Hosted Zones**, then click on the domain name you want to use for Metabase.
 - Click on the blue button **Create Record** (a new panel will open up).
   - Enter in a **Record name**: for your application. This record name should be the exact URL you plan to access Metabase with (e.g. `metabase.mycompany.com`).
   - Under the dropdown for **Record type**: select _A – Routes traffic to an IPv4 address and some AWS resources_.
-  - Enable the **Alias** switch. For the **Route traffic to** option, select __Alias to Application and Classic Load Balancer__, region __US East (Ohio) [us-east-2]__, or the one that you deployed your instance to (e.g. `mycompany-metabase.elasticbeanstalk.com`).
+  - Enable the **Alias** switch. For the **Route traffic to** option, select **Alias to Application and Classic Load Balancer**, region **US East (Ohio) [us-east-2]**, or the one that you deployed your instance to (e.g. `mycompany-metabase.elasticbeanstalk.com`).
   - Choose the load balancer that corresponds to your instance.
   - Leave all other settings in their default values.
   - At the bottom of the page, click **Create Record** .
- 
+
 After creating the record, the record can take ten minutes (sometimes longer) to propagate on the Internet.
 
-## Modify Metabase to enforce HTTPS
+### Modify Metabase to enforce HTTPS
 
 Before trying to enable HTTPS support, you must upload a server certificate to your AWS account.
 
 - Go to Elastic Beanstalk and select your **Metabase** application.
 - Click on Environment that you would like to update.
-- One the left sidebar, click **Configuration**. 
+- One the left sidebar, click **Configuration**.
 - Scroll down to **Load Balancer** and click the Edit button on the right of the screen.
 - On Listeners section, click on **Add Listener** and change the Protocol to HTTPS on the modal window that opens.
 - Set the value for **Port** to 443.
@@ -80,8 +90,8 @@ Before trying to enable HTTPS support, you must upload a server certificate to y
 - Scroll to the bottom of the page and click **Save**.
 
 Your Environment will begin updating with your new change. You will have to wait for this to complete before making additional updates.
- 
- Once this change is made you will no longer be able to access your Metabase instance at the *.elasticbeanstalk.com URL provided by Amazon because it will result in a certificate mismatch. To continue accessing your secure Metabase instance you must [Set up a DNS CNAME](#setup-dns-cname-using-aws).
+
+Once this change is made you will no longer be able to access your Metabase instance at the \*.elasticbeanstalk.com URL provided by Amazon because it will result in a certificate mismatch. To continue accessing your secure Metabase instance you must [Set up a DNS CNAME](#setup-dns-cname-using-aws).
 
 Once your application is working properly over HTTPS, we recommend setting an additional property to force non-HTTPS clients to use the HTTPS endpoint.
 
@@ -90,7 +100,7 @@ Once your application is working properly over HTTPS, we recommend setting an ad
 - Under **Environment Properties** add an entry for `NGINX_FORCE_SSL` with a value of `1`.
 - Scroll to the bottom of the page and click **Apply** in the lower right, then wait for your application to update.
 - Click on `Configuration` on the left hand sidebar.
-- One the left sidebar, click **Configuration**. 
+- One the left sidebar, click **Configuration**.
 - Scroll down to `Load Balancer` and click the Edit button on the right of the screen.
 - On Listeners section, click on "Add Listener" and change the Protocol to HTTPS on the modal window that opens.
 - Set the value for `Port` to _443_.
@@ -108,16 +118,16 @@ Once your application is working properly over HTTPS, we recommend setting an ad
 - Under `Environment Properties` add an entry for `NGINX_FORCE_SSL` with a value of `1`.
 - Scroll to the bottom of the page and click `Apply` in the lower right, then wait for your application to update.
 
-# RAM usage monitoring
+## RAM usage monitoring
 
 Metabase installs the CloudWatch agent into the Elastic Beanstalk deployment, which sends data about your deployment to CloudWatch, allowing you to track your Metabase's RAM usage and other metrics.
 
 To set up CloudWatch for your Elastic Beanstalk environment, follow the steps in the AWS documentation to [grant permissions to publish CloudWatch metrics](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html#customize-containers-cw-policy).
 
-# Automated security assessment
+## Automated security assessment
 
 Metabase installs the AWS Inspector into the Elastic Beanstalk deployment, so you can have real-time assessments about your instance's security that you can integrate into other AWS products. To start the automated checks on your instance, you only need to enable the Inspector in AWS's console.
 
-# About NGINX configs inside Elastic Beanstalk deployments
+## About NGINX configs inside Elastic Beanstalk deployments
 
-In the near future we will be removing the custom NGINX configuration that was being bundled with Metabase in the previous configurations, so in the case that you were using configurations like NGINX_FORCE_SSL or custom certificates, you will need to move these configurations to AWS Application Load Balancers. To do this, check out the [enabling VPC](https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-elastic-beanstalk.html#22-enabling-vpc) part of the Elastic Beanstalk guide where it's specified how to use an Application Load Balancer with your Elastic Beanstalk configuration, or otherwise start over the creation of your Elastic Beanstalk deployment [having made a backup first](backing-up-metabase-application-data.html) of your application database so you don't lose your Metabase configuration.
\ No newline at end of file
+In the near future we will be removing the custom NGINX configuration that was being bundled with Metabase in the previous configurations, so in the case that you were using configurations like NGINX_FORCE_SSL or custom certificates, you will need to move these configurations to AWS Application Load Balancers. To do this, check out the [enabling VPC](https://www.metabase.com/docs/latest/operations-guide/running-metabase-on-elastic-beanstalk.html#22-enabling-vpc) part of the Elastic Beanstalk guide where it's specified how to use an Application Load Balancer with your Elastic Beanstalk configuration, or otherwise start over the creation of your Elastic Beanstalk deployment [having made a backup first](backing-up-metabase-application-data.html) of your application database so you don't lose your Metabase configuration.
diff --git a/docs/operations-guide/backing-up-metabase-application-data.md b/docs/operations-guide/backing-up-metabase-application-data.md
index 942ce103d7b929455777ed66f5c3033e3a9ed20d..8e9afbd2062aa9791e9f8da4aac01361225d0720 100644
--- a/docs/operations-guide/backing-up-metabase-application-data.md
+++ b/docs/operations-guide/backing-up-metabase-application-data.md
@@ -1,3 +1,7 @@
+---
+title: Backing up Metabase application data
+---
+
 # Backing up Metabase application data
 
 Avoid losing your application data (all of your questions, dashboards, collections and so on) by backing up your data.
@@ -41,4 +45,4 @@ Instructions can be found in the [Amazon RDS User Guide](http://docs.aws.amazon.
 
 If you're hosting your own PostgreSQL or MySQL/MariaDB database, simply follow the same instructions you would use for making any normal database backup. For example, if you're using PostgreSQL for your application database, you should follow PostgreSQL's instructions for [backing up your database](https://www.postgresql.org/docs/current/backup.html).
 
-As long as you have a dump of the Metabase database, you should be good to go.
+As long as you have a dump of the Metabase database, you should be good to go.
\ No newline at end of file
diff --git a/docs/operations-guide/changing-password-complexity.md b/docs/operations-guide/changing-password-complexity.md
index c21a5a9410407e8707c7e23df5b28b4a040e37d0..5e2d146041b747e62c7db832165fc4aa5c5105a7 100644
--- a/docs/operations-guide/changing-password-complexity.md
+++ b/docs/operations-guide/changing-password-complexity.md
@@ -1,3 +1,7 @@
+---
+title: Changing Metabase password complexity
+---
+
 # Changing Metabase password complexity
 
 Metabase offers a couple controls for administrators who prefer to increase the password requirements on their user accounts.
@@ -12,4 +16,4 @@ The settings above can be used independently, so it's fine to use only one or th
 * `strong` = minimum 8 characters w/ 2 lowercase, 2 uppercase, 1 digit, and 1 special character
 
 By default, Metabase also prevents users from setting passwords that are in a list of common passwords (like `qwerty123` and
-`passw0rd`). Changing the complexity requirement to `weak` disables this behavior.
+`passw0rd`). Changing the complexity requirement to `weak` disables this behavior.
\ No newline at end of file
diff --git a/docs/operations-guide/changing-session-expiration.md b/docs/operations-guide/changing-session-expiration.md
index 18cadd07486234ee5c029b60aedd566e99679550..2f2482f639a99dff4cb9b0055c61f96dc1d5692c 100644
--- a/docs/operations-guide/changing-session-expiration.md
+++ b/docs/operations-guide/changing-session-expiration.md
@@ -1,3 +1,7 @@
+---
+title: Changing session expiration
+---
+
 # Changing session expiration
 
 By default, Metabase sessions are valid for two weeks after a user last authenticated (e.g. by entering their email
@@ -41,4 +45,4 @@ session cookies for all users.
 
 Note that browsers may use "session restoring", which means they automatically restore their previous session when
 reopened. In this case, the browser effectively acts as if it was never closed; session cookies will act
-the same as permanent cookies. For browsers that support this feature, this behavior is usually configurable.
+the same as permanent cookies. For browsers that support this feature, this behavior is usually configurable.
\ No newline at end of file
diff --git a/docs/operations-guide/configuring-application-database.md b/docs/operations-guide/configuring-application-database.md
index 9da9d39d3853c863befa503ef91a40196bcc62e0..21cae3b784c9539587fab3a2f1c2104261df1167 100644
--- a/docs/operations-guide/configuring-application-database.md
+++ b/docs/operations-guide/configuring-application-database.md
@@ -1,3 +1,7 @@
+---
+title: Configuring the Metabase Application Database
+---
+
 # Configuring the Metabase Application Database
 
 The application database is where Metabase stores information about users, saved questions, dashboards, and any other
@@ -140,4 +144,4 @@ want to pass one or both separately from the rest of the JDBC connection string:
     export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:5432/metabase"
     export MB_DB_USER=<username>
     export MB_DB_PASS=<password>
-    java -jar metabase.jar
+    java -jar metabase.jar
\ No newline at end of file
diff --git a/docs/operations-guide/creating-RDS-database-on-AWS.md b/docs/operations-guide/creating-RDS-database-on-AWS.md
index a84377b9ed170ec077c0b26bbc6f3d63dcace877..5caad481c85b29619a16c971b9c7f75c67c389eb 100644
--- a/docs/operations-guide/creating-RDS-database-on-AWS.md
+++ b/docs/operations-guide/creating-RDS-database-on-AWS.md
@@ -1,4 +1,10 @@
-- [Configuring RDS for Metabase (the recommended guide)](#configuring-rds-for-metabase-the-recommended-guide)
+---
+title: "Creating RDS database on AWS"
+---
+
+# Creating RDS database on AWS
+
+- [Configuring RDS for Metabase](#configuring-rds-for-metabase)
   - [Step 1](#step-1)
   - [Step 2](#step-2)
   - [Step 3](#step-3)
@@ -8,40 +14,44 @@
   - [Step 2](#step-2-1)
   - [Step 3](#step-3-1)
 
-# Configuring RDS for Metabase (the recommended guide)
+## Configuring RDS for Metabase
 
 If you want to move from using Metabase just for testing to something that is ready for the big time, you need to use a production-grade database like PostgreSQL or MySQL/MariaDB. Here's a [high level architecture diagram](images/Metabase-AWS-SI.png) of Metabase deployed with a dedicated application database.
 
 ## Step 1
+
 In AWS, enter RDS in the search box or select RDS from the dropdown button on the top left of the page. Once inside RDS, click on the **Create database** button.
 
 ## Step 2
+
 - Create Database: select MySQL or PostgreSQL as engine types, as these two are the ones that Metabase support as the Application Database (where Metabase will save all of its configurations). For this example we will choose PostgreSQL on its latest version available in AWS at the time of writing (12.4-R1).
 
 - Templates: you can leave "Production" selected, or choose any other option that better suits your needs.
 
 - Settings: type a unique **DB instance identifier** for your database. You'll need the username and master password to configure the environment variables in Metabase.
-![RDS Templates Section](images/RDSPostgresSettings.png)
+  ![RDS Templates Section](images/RDSPostgresSettings.png)
 
 - Instance size: the sizing of the RDS instance depends on the number of Metabase instances that will be connected to this database, the number of simultaneous users who are using Metabase, and the number of questions, dashboards, and configurations that are saved. To start, a `t3.small` is a good choice.
-![RDS Instance size](images/RDSInstanceSize.png)
+  ![RDS Instance size](images/RDSInstanceSize.png)
+
+- Availability & Durability: on production deployments, you **should** be using a Multi-AZ (Availability Zone) cluster, as this will ensure that the database does not goes down in case there is an issue on a single availability zone.
+  ![RDS MultiAZ](images/RDSMultiAZ.png)
 
-- Availability & Durability: on production deployments, you __should__ be using a Multi-AZ (Availability Zone) cluster, as this will ensure that the database does not goes down in case there is an issue on a single availability zone.
-![RDS MultiAZ](images/RDSMultiAZ.png)
+- Connectivity:
 
-- Connectivity: 
-  - Ensure that you are deploying the database in the same VPC as the one you deployed the Metabase instance/s, otherwise they won't be able to see each other. 
+  - Ensure that you are deploying the database in the same VPC as the one you deployed the Metabase instance/s, otherwise they won't be able to see each other.
   - Create a **VPC security group**, as you will need to grant access from the Metabase instance/s to the database on the port that listens for connections.
-![RDS VPC Security Groups](images/RDSVPCSecurityGroup.png)
+    ![RDS VPC Security Groups](images/RDSVPCSecurityGroup.png)
 
 - Additional configuration
-  - Enter `metabase` as the **Initial database name**. Metabase will use this database for all of its configurations. 
+  - Enter `metabase` as the **Initial database name**. Metabase will use this database for all of its configurations.
   - You can also configure the backup window in case you need to restore the backups at some point in time.
-![RDS Initial Database](images/RDSInitialDatabase.png)
+    ![RDS Initial Database](images/RDSInitialDatabase.png)
 
 When you've completed all these configurations, click on the **Create database** button on the lower right part of the page and wait for the database to be created (which can take several minutes).
 
 ## Step 3
+
 Once the database status is `Available`, you need to click on the DB identifier:
 ![RDS DB Identifier](images/RDSDBIdentifier.png)
 
@@ -60,40 +70,44 @@ When you click on Inbound Rules, you need to click on **Edit Inbound Rules** but
 
 ![RDS Edit Inbound Rule](images/RDSEditInboundRule.png)
 
-On the edit page, you need to delete the IP address that appears as default, then add the security group that the Elastic Beanstalk has (the Security group name will have the keyword AWSEBSecurityGroup  in its name). Once you add this security group, click the **Save rules** button.
+On the edit page, you need to delete the IP address that appears as default, then add the security group that the Elastic Beanstalk has (the Security group name will have the keyword AWSEBSecurityGroup in its name). Once you add this security group, click the **Save rules** button.
 
 ![RDS Edit Inbound Rule](images/RDSEditInboundRuleSG.png)
 
-# Step 4 
+# Step 4
 
 After having finished all the previous steps, go to the your Elastic Beanstalk deployment and add the RDS instance as the Application Database with [Environment variables](environment-variables.html) under the [Software configuration](running-metabase-on-elastic-beanstalk.html#set-or-change-environment-variables).
 
 ---
+
 # Decouple your RDS database from the Elastic Beanstalk deployment
 
 In the previous versions of this guide, we recommended the creation of an Elastic Beanstalk deployment (AWS's service for deploying applications easily) that had a RDS (AWS's Relational Database Service) database included in the creation by default thanks to the magic of CloudFormation (AWS's Infrastructure as a Code service). While this was an easier approach to simplify the deployments, we found out that this approach was not the optimal for building a future-proof architecture, since leaving the creation of the database to Elastic Beanstalk lead to limitations in the configuration of the database that would limit the choice for users. That's the reason why we now recommend creating the database separately from the Metabase deployment and glue them together manually, or even separate both components with this guide:
 
-
 - This procedure will generate downtime, so make sure to communicate to your users that Metabase will be down while you recreate the environment with the new database.
 - You'll need the master username and password for the database you used when you created the Elastic Beanstalk instance.
 
 ## Step 1
+
 Identify the RDS endpoint that your Elastic Beanstalk is using by going to the configuration of the Environment and finding the endpoint value on the Database section.
 ![RDS endpooint](images/EBDatabaseEndpoint.png)
+
 - If the Retention option is "Create snapshot", you're good to go. You can delete the whole Elastic Beanstalk environment, because AWS will take a snapshot (backup) of the database before deleting the environment.
 - In case the Retention option has a different value, visit your RDS instance and take a snapshot of the database used by the Elastic Beanstalk application.
-![RDS snapshot](images/RDSTakeSnapshot.png)
+  ![RDS snapshot](images/RDSTakeSnapshot.png)
 
 ## Step 2
-Go to the Elastic Beanstalk Metabase Application, select the running environment, and terminate it. Confirm that the database will be terminated __with snapshot__)
+
+Go to the Elastic Beanstalk Metabase Application, select the running environment, and terminate it. Confirm that the database will be terminated **with snapshot**)
 ![Terminate environment](images/EBTerminateEnvironment.png)
 
 This step can take around 20 minutes. If the deletion fails, you'll have to identify through CloudFormation which resources failed to be deleted and delete them yourself.
 
 ## Step 3
+
 Return to RDS and select the **Snapshots** option on the left of the page. You should see a Manual Snapshot listed.
 ![RDS Snapshots](images/RDSSnapshotsMenu.png)
 
 Select that snapshot and click on **Actions** → Restore Snapshot.
 
-From this step on, you can follow the same steps as the [Configuring RDS for Metabase (the recommended guide)](#configuring-rds-for-metabase-the-recommended-guide) from [step 2](#step-2).
+From this step on, you can follow the same steps as the [Configuring RDS for Metabase](#configuring-rds-for-metabase) from [step 2](#step-2).
diff --git a/docs/operations-guide/customizing-jetty-webserver.md b/docs/operations-guide/customizing-jetty-webserver.md
index be1f674a146631796e8e0edb4f82c66db3cb22cf..d88225cd7ab5aaecd1c6207e0d224d1d262b231b 100644
--- a/docs/operations-guide/customizing-jetty-webserver.md
+++ b/docs/operations-guide/customizing-jetty-webserver.md
@@ -1,3 +1,7 @@
+---
+title: Customizing the Metabase Jetty webserver
+---
+
 # Customizing the Metabase Jetty webserver
 
 In most cases there will be no reason to modify any of the settings around how Metabase runs its embedded Jetty webserver to host the application, but if you wish to run HTTPS directly with your Metabase server or if you need to run on another port, that's all configurable.
@@ -32,4 +36,4 @@ If you have an SSL certificate and would prefer to have Metabase run over HTTPS
     
 Be sure to replace `path/to/keystore.jks` and `storepass` with the correct path to and password for your [Java KeyStore](https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores). With the above settings applied you will be running Metabase on port 8443 over HTTPS using the supplied certificate.
 
-No idea how to generate a Java KeyStore yourself? This is sort of an advanced topic, but if you're feeling froggy you can read more about how to configure SSL in Jetty [in their own documentation](https://www.eclipse.org/jetty/documentation/jetty-9/index.html#configuring-ssl). Otherwise, you'll probably find it easiest to handle SSL termination outside of Metabase, for example by the Elastic Load Balancer if deploying via Elastic Beanstalk.
+No idea how to generate a Java KeyStore yourself? This is sort of an advanced topic, but if you're feeling froggy you can read more about how to configure SSL in Jetty [in their own documentation](https://www.eclipse.org/jetty/documentation/jetty-9/index.html#configuring-ssl). Otherwise, you'll probably find it easiest to handle SSL termination outside of Metabase, for example by the Elastic Load Balancer if deploying via Elastic Beanstalk.
\ No newline at end of file
diff --git a/docs/operations-guide/enable-jmx.md b/docs/operations-guide/enable-jmx.md
index 3556912cd7a1398ef5061864b0fbd4e8f476d729..ab68eb6038eb5b2bba7fb596befd465ac49e0640 100644
--- a/docs/operations-guide/enable-jmx.md
+++ b/docs/operations-guide/enable-jmx.md
@@ -1,3 +1,6 @@
+---
+title: Monitoring Your Metabase Instance
+---
 
 ## Monitoring Your Metabase Instance
 
@@ -111,4 +114,4 @@ dump will indicate what each thread is executing (or blocked on) for
 that specific point in time. Collect a thread dump via the "Threads"
 tab:
 
-![threaddump](images/ThreadDump.png)
+![threaddump](images/ThreadDump.png)
\ No newline at end of file
diff --git a/docs/operations-guide/encrypting-database-details-at-rest.md b/docs/operations-guide/encrypting-database-details-at-rest.md
index 638e633671e347d3470c60328c0dd9f062058ba7..8ec384cc3e9ca6f14f7ccd1804ffca0dcf38b31f 100644
--- a/docs/operations-guide/encrypting-database-details-at-rest.md
+++ b/docs/operations-guide/encrypting-database-details-at-rest.md
@@ -1,3 +1,7 @@
+---
+title: Encrypting your database connection details at rest
+---
+
 # Encrypting your database connection details at rest
 
 Metabase stores connection information for the various databases you add in the Metabase application database. To prevent bad actors from being able to access these details if they were to gain access to
@@ -29,4 +33,4 @@ You can rotate the encryption key using the cli command `rotate-encryption-key`.
 
 Metabase app should be stopped while running this command, and restarted with the new key as the `MB_ENCRYPTION_SECRET_KEY` environment variable.
 
-**Note**: As with all data migrations, it's recommended that you [backup](./backing-up-metabase-application-data.md) your data before doing a key rotation.
+**Note**: As with all data migrations, it's recommended that you [backup](./backing-up-metabase-application-data.md) your data before doing a key rotation.
\ No newline at end of file
diff --git a/docs/operations-guide/environment-variables.md b/docs/operations-guide/environment-variables.md
index 9b0fa51afe06e3a32aba5d0e56e2e60fc8b6015e..bcdfc0cd4dca03e9a1bcc5122e98fa78acb8a5c6 100644
--- a/docs/operations-guide/environment-variables.md
+++ b/docs/operations-guide/environment-variables.md
@@ -1,3 +1,7 @@
+---
+title: Environment variables
+---
+
 # Environment variables
 
 Many settings in Metabase can be viewed and modified in the Admin Panel, or set via environment variables. The environment variables always take precedence. Note that the environment variables won't get written into the application database.
@@ -1055,4 +1059,4 @@ Base-64 encoded public key for this sites SSL certificate. Specify this to enabl
 Type: string<br>
 Default: `"http://static.metabase.com/version-info.json"`
 
-The address used to check for newer versions of Metabase.
+The address used to check for newer versions of Metabase.
\ No newline at end of file
diff --git a/docs/operations-guide/handling-timezones.md b/docs/operations-guide/handling-timezones.md
index d2c84816b31fb42c8360d0bd76dd4b2f238418de..081cdd0426273f6588dc1f7f4ed5281892662375 100644
--- a/docs/operations-guide/handling-timezones.md
+++ b/docs/operations-guide/handling-timezones.md
@@ -1,3 +1,7 @@
+---
+title: Handling timezones in Metabase
+---
+
 # Handling timezones in Metabase
 
 Metabase does its best to ensure proper and accurate reporting in whatever timezone you desire, but timezones are a complicated beast so it's important to abide by some recommendations listed below to ensure your reports come out as intended.
@@ -20,4 +24,4 @@ Common Pitfalls:
 1. Your database is using date/time columns without any timezone information. Typically when this happens your database will assume all the data is from whatever timezone the database is configured in or possible just default to UTC (check your database vendor to be sure).
 2. Your JVM timezone is different from your Metabase `Report Timezone` choice. This is a very common issue and can be corrected by launching java with the `-Duser.timezone=<timezone>` option properly set to match your Metabase report timezone.
 
-If you are still experiencing timezone problems, then have a look at the [timezone troubleshooting guide](../troubleshooting-guide/timezones.md).
+If you are still experiencing timezone problems, then have a look at the [timezone troubleshooting guide](../troubleshooting-guide/timezones.md).
\ No newline at end of file
diff --git a/docs/operations-guide/installing-metabase.md b/docs/operations-guide/installing-metabase.md
index ff74aaf58ff9e4c308a5dc5750e645c6307b6014..65b0351e9ff17fcd24050bb26693ec9462c7bf0d 100644
--- a/docs/operations-guide/installing-metabase.md
+++ b/docs/operations-guide/installing-metabase.md
@@ -1,3 +1,7 @@
+---
+title: Installing Metabase
+---
+
 # Installing Metabase
 
 Metabase is built and packaged as a Java JAR file and can be run anywhere that Java is available.
@@ -29,4 +33,4 @@ To run a development branch of Metabase, check out our [developer's guide](../de
 
 ## Upgrading Metabase
 
-See [Upgrading Metabase](upgrading-metabase.md).
+See [Upgrading Metabase](upgrading-metabase.md).
\ No newline at end of file
diff --git a/docs/operations-guide/java-versions.md b/docs/operations-guide/java-versions.md
index c7bb3b912c627ca4e7fe6910c48faf65b4648078..e0ee1361613e528f67a93f6b6042372f5ad1dc00 100644
--- a/docs/operations-guide/java-versions.md
+++ b/docs/operations-guide/java-versions.md
@@ -1,3 +1,7 @@
+---
+title: Java Versions
+---
+
 # Java Versions
 
 Metabase requires a Java Runtime Environment (JRE), with a Java version of 11 or higher.
@@ -22,4 +26,4 @@ You should see output similar to this:
     OpenJDK Runtime Environment Temurin-11.0.13+8 (build 11.0.13+8)
     OpenJDK 64-Bit Server VM Temurin-11.0.13+8 (build 11.0.13+8, mixed mode)
 
-If you get an error, you need to install Java. If the Java release date is more than a few months old, you should update Java.
+If you get an error, you need to install Java. If the Java release date is more than a few months old, you should update Java.
\ No newline at end of file
diff --git a/docs/operations-guide/jmx-monitoring.md b/docs/operations-guide/jmx-monitoring.md
index 0b29386e1e5f0f920d3309e4f4957c863e1f2a95..ee5a10c381496d0a131166f90f7f275733d534a1 100644
--- a/docs/operations-guide/jmx-monitoring.md
+++ b/docs/operations-guide/jmx-monitoring.md
@@ -1,3 +1,9 @@
-# [Monitoring via JMX](enable-jmx.md)
+---
+title: Monitoring via JMX
+---
 
-Diagnosing performance related issues can be a challenge. Luckily the JVM ships with tools that can help diagnose many common issues. Enabling JMX and using a tool like VisualVM can help diagnose issues related to running out of memory, a hung Metabase instance and slow response times. See [Monitoring via JMX](enable-jmx.md) for more information on setting this up.
+# Monitoring via JMX
+
+Diagnosing performance related issues can be a challenge. Luckily the JVM ships with tools that can help diagnose many common issues. Enabling JMX and using a tool like VisualVM can help diagnose issues related to running out of memory, a hung Metabase instance and slow response times.
+
+See [Monitoring via JMX](enable-jmx.md).
diff --git a/docs/operations-guide/log-configuration.md b/docs/operations-guide/log-configuration.md
index b439bd927772a61a86c018b447532102571b3704..3945993bbc5744326a1a87675d1686192aba0460 100644
--- a/docs/operations-guide/log-configuration.md
+++ b/docs/operations-guide/log-configuration.md
@@ -1,3 +1,7 @@
+---
+title: Metabase logs
+---
+
 # Metabase logs
 
 Metabase logs quite a bit of information by default. It uses [Log4j 2][log4j] under the hood, so you can configure how much information Metabase logs.
@@ -66,4 +70,4 @@ java -jar metabase.jar
 [default-log-config]: https://github.com/metabase/metabase/blob/master/resources/log4j2.xml
 [levels]: https://logging.apache.org/log4j/2.x/manual/customloglevels.html
 [log4j]: https://logging.apache.org/log4j/2.x/
-[read-logs]: ../troubleshooting-guide/server-logs.html 
+[read-logs]: ../troubleshooting-guide/server-logs.html
\ No newline at end of file
diff --git a/docs/operations-guide/migrating-from-h2.md b/docs/operations-guide/migrating-from-h2.md
index af0cd3deaba16e5900201025a1080ca1bf3b51b7..c62206da8f7f30f333e4b264e74fe204cb75a9c8 100644
--- a/docs/operations-guide/migrating-from-h2.md
+++ b/docs/operations-guide/migrating-from-h2.md
@@ -1,3 +1,7 @@
+---
+title: Migrating from the default H2 database to a production database
+---
+
 # Migrating from the default H2 database to a production database
 
 - [Metabase's application database](#metabases-application-database)
@@ -166,4 +170,4 @@ See [Running Metabase database migrations manually](running-migrations-manually.
 
 ## Troubleshooting migration issues
 
-Check out [this troubleshooting guide](../troubleshooting-guide/loading-from-h2.md).
+Check out [this troubleshooting guide](../troubleshooting-guide/loading-from-h2.md).
\ No newline at end of file
diff --git a/docs/operations-guide/running-metabase-on-azure.md b/docs/operations-guide/running-metabase-on-azure.md
index ea18e2efdb0509941a6556b60e6f7a2de439abef..d9b20563c418e1601eacc0a09c87ce9d8f2076d5 100644
--- a/docs/operations-guide/running-metabase-on-azure.md
+++ b/docs/operations-guide/running-metabase-on-azure.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase on Microsoft Azure
+---
+
 # Running Metabase on Microsoft Azure
 
 This guide covers the basics for running your Metabase instance in Microsoft Azure using Docker.
@@ -200,4 +204,4 @@ In the example above the connection string would be
 
 ```
 postgresql://10.0.2.4:5432/metabase?user=metabase@metabase-app-database&password=Password1!&ssl=true&sslmode=require
-```
+```
\ No newline at end of file
diff --git a/docs/operations-guide/running-metabase-on-debian.md b/docs/operations-guide/running-metabase-on-debian.md
index b73506634fc216a53060e45b463ed601922e258e..890f1884236ed7e94f5a8d72aa77451bae8b5d8d 100644
--- a/docs/operations-guide/running-metabase-on-debian.md
+++ b/docs/operations-guide/running-metabase-on-debian.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase on Debian as a service with nginx
+---
+
 # Running Metabase on Debian as a service with nginx
 
 For those people who don't (or can't) use Docker in their infrastructure, there's still a need to easily setup and deploy Metabase in production. On Debian-based systems, this means registering Metabase as a service that can be started/stopped/uninstalled.
@@ -160,5 +164,4 @@ Now, whenever you need to start, stop, or restart Metabase, all you need to do i
 sudo systemctl start metabase.service
 sudo systemctl stop metabase.service
 sudo systemctl restart metabase.service
-```
-
+```
\ No newline at end of file
diff --git a/docs/operations-guide/running-metabase-on-docker.md b/docs/operations-guide/running-metabase-on-docker.md
index dca37ec85fc8dfc09e7d646a1bbe7dbd1829708b..6ddff2edbc6a622a77cb6d69ea0201f9ea1274c1 100644
--- a/docs/operations-guide/running-metabase-on-docker.md
+++ b/docs/operations-guide/running-metabase-on-docker.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase on Docker
+---
+
 # Running Metabase on Docker
 
 Metabase provides an official Docker image via Dockerhub that can be used for deployments on any system that is running Docker.
@@ -268,4 +272,4 @@ See Running Metabase in the [Troubleshooting guide](../troubleshooting-guide/run
 
 ## Continue to setup
 
-Now that you’ve installed Metabase, it’s time to [set it up and connect it to your database](../setting-up-metabase.md).
+Now that you’ve installed Metabase, it’s time to [set it up and connect it to your database](../setting-up-metabase.md).
\ No newline at end of file
diff --git a/docs/operations-guide/running-metabase-on-elastic-beanstalk.md b/docs/operations-guide/running-metabase-on-elastic-beanstalk.md
index e8e82a779efcd3ecd0dbf887e8b58dea741af9b9..f012cd73b0552392482072f2d24dc533cca09fcf 100644
--- a/docs/operations-guide/running-metabase-on-elastic-beanstalk.md
+++ b/docs/operations-guide/running-metabase-on-elastic-beanstalk.md
@@ -1,4 +1,8 @@
-**Covered in this guide:**
+---
+title: Running Metabase on AWS Elastic Beanstalk
+---
+
+# Running Metabase on AWS Elastic Beanstalk
 
 - [Running Metabase on AWS Elastic Beanstalk](#running-metabase-on-aws-elastic-beanstalk)
   - [Quick Launch](#quick-launch)
@@ -19,9 +23,6 @@
   - [Notifications](#notifications)
 - [Deploying New Versions of Metabase on Elastic Beanstalk](#deploying-new-versions-of-metabase-on-elastic-beanstalk)
 
-# Running Metabase on AWS Elastic Beanstalk
-
-
 This quick launch setup is intended for testing purposes only, and is not intended for production use. We'll focus on deploying Metabase with a single instance and the embedded H2 database with the following components:
 - a region (where your Metabase application will exist)
 - a network (where your application will reside and interact with other applications or servers if needed)
diff --git a/docs/operations-guide/running-metabase-on-heroku.md b/docs/operations-guide/running-metabase-on-heroku.md
index ffec2946669fb197f149132a589208f3d85940e6..95d30867a7a69aa50273cc5a3b41dbe2ffa51d87 100644
--- a/docs/operations-guide/running-metabase-on-heroku.md
+++ b/docs/operations-guide/running-metabase-on-heroku.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase on Heroku
+---
+
 # Running Metabase on Heroku
 
 Currently in beta. We've run Metabase on Heroku and it works just fine, but it's not hardened for production use just yet. If you're up for it then give it a shot and let us know how we can make it better!
@@ -136,4 +140,4 @@ If you are using pipelines as shown above, you can modify the `app.json` file in
       "url": "https://github.com/metabase/metabase-buildpack#0.34.1"
     }
   ]
-```
+```
\ No newline at end of file
diff --git a/docs/operations-guide/running-migrations-manually.md b/docs/operations-guide/running-migrations-manually.md
index e6f03d236eaf68e8f221bd2b14633c34bd60b572..7873648d9aec7801cf36237f412d816494959cd8 100644
--- a/docs/operations-guide/running-migrations-manually.md
+++ b/docs/operations-guide/running-migrations-manually.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase database migrations manually
+---
+
 # Running Metabase database migrations manually
 
 When Metabase is starting up, it will typically attempt to determine if any changes are required to the application database, and, if so, will execute those changes automatically. If for some reason you wanted to see what these changes are and run them manually on your database then we let you do that.
@@ -30,4 +34,4 @@ When the application launches, if there are necessary database changes, you'll r
 
     2015-12-01 12:46:39,489 [INFO ] metabase.core :: Metabase Shutting Down ...
 
-You can then take the supplied SQL script and apply it to your database manually. Once that's done just restart Metabase and everything should work normally.
+You can then take the supplied SQL script and apply it to your database manually. Once that's done just restart Metabase and everything should work normally.
\ No newline at end of file
diff --git a/docs/operations-guide/running-the-metabase-jar-file.md b/docs/operations-guide/running-the-metabase-jar-file.md
index 6f5c9aa81aca9ced95766821ba44e32f2a51266c..fb2afc2bb14e877f4fd0d5b80849b5f9fe33b4ff 100644
--- a/docs/operations-guide/running-the-metabase-jar-file.md
+++ b/docs/operations-guide/running-the-metabase-jar-file.md
@@ -1,3 +1,7 @@
+---
+title: Running the Metabase JAR file
+---
+
 # Running the Metabase JAR file
 
 To run Metabase via a JAR file, you will need to have a Java Runtime Environment (JRE) installed on your system.
@@ -150,4 +154,4 @@ See [Upgrading Metabase](upgrading-metabase.md).
 
 ## Continue to setup
 
-Now that you’ve installed Metabase, it’s time to [set it up and connect it to your database](../setting-up-metabase.md).
+Now that you’ve installed Metabase, it’s time to [set it up and connect it to your database](../setting-up-metabase.md).
\ No newline at end of file
diff --git a/docs/operations-guide/start.md b/docs/operations-guide/start.md
index e7d7472b8c4679bbdd600b0853b7344220324014..ca0f77270cc60082074cd2bd30e24a927c0cb41d 100644
--- a/docs/operations-guide/start.md
+++ b/docs/operations-guide/start.md
@@ -1,3 +1,7 @@
+---
+title: Operations Guide
+---
+
 # Operations Guide
 
 This guide contains detailed information about how to install and configure Metabase for production use. If you'd prefer we take care of the details of running Metabase for you, check out our [paid plans](https://www.metabase.com/pricing/).
@@ -32,4 +36,4 @@ This guide contains detailed information about how to install and configure Meta
 
 ## Scaling Metabase
 
-- [Metabase at scale](https://www.metabase.com/blog/scaling-metabase/index.html)
+- [Metabase at scale](https://www.metabase.com/blog/scaling-metabase/index.html)
\ No newline at end of file
diff --git a/docs/operations-guide/upgrading-metabase.md b/docs/operations-guide/upgrading-metabase.md
index cc7bcf2d4cdd9dcb0144aed29d46df646320ca80..6fb396ec7257b76d5294f5cc56f66b7c11bf2658 100644
--- a/docs/operations-guide/upgrading-metabase.md
+++ b/docs/operations-guide/upgrading-metabase.md
@@ -1,3 +1,7 @@
+---
+title: Upgrading Metabase
+---
+
 # Upgrading Metabase
 
 ## Step 1: Back up your application database
@@ -91,4 +95,4 @@ If you're on a [Metabase Cloud](/pricing) plan, your Metabase will upgrade autom
 
 - [Upgrading AWS Elastic Beanstalk deployments](running-metabase-on-elastic-beanstalk.html#deploying-new-versions-of-metabase-on-elastic-beanstalk)
 - [Upgrading Azure Web Apps deployments](running-metabase-on-azure.html#additional-configurations)
-- [Upgrading Heroku deployments](running-metabase-on-heroku.html#deploying-new-versions-of-metabase)
+- [Upgrading Heroku deployments](running-metabase-on-heroku.html#deploying-new-versions-of-metabase)
\ No newline at end of file
diff --git a/docs/privacy.md b/docs/privacy.md
index ef10c9b48459d8bab9e2a3496f5aef2bf4ac53b3..c3cb526573e87d7d65c42ea42dc27d0ee4e7aa37 100644
--- a/docs/privacy.md
+++ b/docs/privacy.md
@@ -1,3 +1,7 @@
+---
+title: Privacy
+---
+
 # Privacy 
 
 ## Do you need a Data Processing Agreement with Metabase to comply with GDPR?
@@ -10,4 +14,4 @@ If you self-host your Metabase instance, we have no access to any of your data,
 
 If you're a [Metabase Cloud](https://www.metabase.com/pricing/) customer, your [Terms of Service](https://www.metabase.com/license/hosting/) include a Data Processing Agreement (DPA).
 
-[information-collection]: information-collection.html
+[information-collection]: information-collection.html
\ No newline at end of file
diff --git a/docs/setting-up-metabase.md b/docs/setting-up-metabase.md
index 99b97f1504512c80a9c5f669557f6047f55e9de9..2347c121f5867e3157756162c4b3b642910b9a68 100644
--- a/docs/setting-up-metabase.md
+++ b/docs/setting-up-metabase.md
@@ -1,3 +1,7 @@
+---
+title: Setting up Metabase
+---
+
 # Setting up Metabase
 
 This guide will help you set up Metabase once you’ve gotten it installed. If you haven’t installed Metabase yet, you can [get Metabase here](https://metabase.com/start/).
@@ -56,4 +60,4 @@ Once you're done here simply follow the link to **Take me to Metabase**.  And if
 ## Getting started with Metabase
 For a tutorial on getting up and running with questions and dashboards, head over to [Learn Metabase](/learn/getting-started/getting-started.html).
 
-For information on adding team members, connecting additional databases, configuring Metabase settings, and more, check out the [Admin Guide](./administration-guide/start.md).
+For information on adding team members, connecting additional databases, configuring Metabase settings, and more, check out the [Admin Guide](./administration-guide/start.md).
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/bigquery-drive.md b/docs/troubleshooting-guide/bigquery-drive.md
index 372311ed9de9bdddbb6ad9dae887f01a692295b6..35900f627c8f565942c60d749a2a9180ee81b48a 100644
--- a/docs/troubleshooting-guide/bigquery-drive.md
+++ b/docs/troubleshooting-guide/bigquery-drive.md
@@ -1,3 +1,7 @@
+---
+title: Troubleshooting BigQuery and Google Drive connections in Metabase
+---
+
 # Troubleshooting BigQuery and Google Drive connections in Metabase
 
 [This page](../administration-guide/databases/bigquery) explains how to connect a BigQuery data source, including one that uses a file stored in Google Drive, like a Google Sheet (GSheets). 
@@ -14,4 +18,4 @@ You may have forgotten to [share your Google Drive source](../administration-gui
 
 ## Further reading
 
-You may also want to check out [this troubleshooting guide](datawarehouse) on database connections.
+You may also want to check out [this troubleshooting guide](datawarehouse) on database connections.
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/bugs.md b/docs/troubleshooting-guide/bugs.md
index ef690a6eed34fc509d596fb7badc9d8aa76edf86..69530af313bea8c381a9b67eaa9b203a264c400f 100644
--- a/docs/troubleshooting-guide/bugs.md
+++ b/docs/troubleshooting-guide/bugs.md
@@ -1,3 +1,7 @@
+---
+title: Reporting a bug
+---
+
 # Reporting a bug
 
 If you come across something that looks like a bug, please start by searching our [Github issues][metabase-issues] to see if it has already been reported. If it has, please let us know you're experiencing the same issue by reacting with a thumbs up emoji or adding a comment providing additional information.
@@ -14,4 +18,4 @@ If the bug has not yet been reported, go ahead and [open a bug report][metabase-
 8. Screenshots (if relevant)
 
 [metabase-file-bug]: https://github.com/metabase/metabase/issues/new/choose
-[metabase-issues]: https://github.com/metabase/metabase/issues
+[metabase-issues]: https://github.com/metabase/metabase/issues
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/cant-log-in.md b/docs/troubleshooting-guide/cant-log-in.md
index 06d27eed84aef0cd2a26d48f3ea88716ad369124..382410fa26105b406f0245ab2a7ba3aae2f5d4b2 100644
--- a/docs/troubleshooting-guide/cant-log-in.md
+++ b/docs/troubleshooting-guide/cant-log-in.md
@@ -1,3 +1,7 @@
+---
+title: People can't log in to Metabase
+---
+
 # People can't log in to Metabase
 
 ## Do you know how your logins are managed?
diff --git a/docs/troubleshooting-guide/cant-see-tables.md b/docs/troubleshooting-guide/cant-see-tables.md
index 33b103f03a115a10d3a926c9e4387cb78e3cdb2a..0f3d49efabef9bf5de735944efdb1065722d1a91 100644
--- a/docs/troubleshooting-guide/cant-see-tables.md
+++ b/docs/troubleshooting-guide/cant-see-tables.md
@@ -1,3 +1,7 @@
+---
+title: I can't see my tables
+---
+
 # I can't see my tables
 
 You have connected Metabase to a database, but:
@@ -96,4 +100,4 @@ If the administrator's account can see the tables but an individual person canno
 
 [data-browser]: /learn/getting-started/data-browser.html
 [data-model]: ../administration-guide/03-metadata-editing.html
-[sandboxing]: ./sandboxing.html
+[sandboxing]: ./sandboxing.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/cant-send-email.md b/docs/troubleshooting-guide/cant-send-email.md
index 8d92ec1bbb17a93eacb928c2e1c25a37aed2b49d..4b12abc0884c4995138a75ce5478cb60c1e12532 100644
--- a/docs/troubleshooting-guide/cant-send-email.md
+++ b/docs/troubleshooting-guide/cant-send-email.md
@@ -1,3 +1,7 @@
+---
+title: Metabase isn't sending email
+---
+
 # Metabase isn't sending email
 
 You have told Metabase to send email notifications, but:
@@ -41,4 +45,4 @@ Before any other troubleshooting, try sending a test email to isolate the proble
 
 [bugs]: ./bugs.html
 [dkim]: https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
-[office-365-bug]: https://github.com/metabase/metabase/issues/4272
+[office-365-bug]: https://github.com/metabase/metabase/issues/4272
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/datawarehouse.md b/docs/troubleshooting-guide/datawarehouse.md
index 01754281392f9975038b31d01be87aca61f05bf4..8ca62a163ec413decf83fd0bbad9951f5fc9aa19 100644
--- a/docs/troubleshooting-guide/datawarehouse.md
+++ b/docs/troubleshooting-guide/datawarehouse.md
@@ -1,3 +1,7 @@
+---
+title: Connecting to databases
+---
+
 # Connecting to databases
 
 <div class='doc-toc' markdown=1>
@@ -75,4 +79,4 @@ If your credentials are incorrect, you should see an error message letting you k
 [ec2-troubleshooting]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html
 [elb-timeout]: https://aws.amazon.com/blogs/aws/elb-idle-timeout-control/
 [heroku-timeout]: https://devcenter.heroku.com/articles/request-timeout
-[native-question]: ../users-guide/writing-sql.html
+[native-question]: ../users-guide/writing-sql.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/docker.md b/docs/troubleshooting-guide/docker.md
index fd25f9e93fcc75c85e23b40d7b3faf32c0f5581f..7d3c815c1458ab7e2bba6905896e1b57de2ede38 100644
--- a/docs/troubleshooting-guide/docker.md
+++ b/docs/troubleshooting-guide/docker.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase on Docker
+---
+
 # Running Metabase on Docker
 
 <div class='doc-toc' markdown=1>
@@ -159,4 +163,4 @@ These steps will help you determine whether this the problem is with the network
 If you're running Metabase from the JAR in any Unix-like operating system, you can see which user is running Metabase by opening a terminal and typing `ps -uA | grep metabase`.
 
 [configuring-application-database]: ../operations-guide/configuring-application-database.html
-[persistent-volume]: ../operations-guide/running-metabase-on-docker.html#mounting-a-mapped-file-storage-volume
+[persistent-volume]: ../operations-guide/running-metabase-on-docker.html#mounting-a-mapped-file-storage-volume
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/error-message.md b/docs/troubleshooting-guide/error-message.md
index cce62f7ff7e8fbdd1170fdac772920149dd13c4a..bc8d1e8a0161695b51eb67c4103519efd5db9e06 100644
--- a/docs/troubleshooting-guide/error-message.md
+++ b/docs/troubleshooting-guide/error-message.md
@@ -1,3 +1,7 @@
+---
+title: Different types of error messages
+---
+
 # Different types of error messages
 
 - [API error messages][api-error-message]
@@ -25,5 +29,4 @@
 [discourse-search-api-error]: https://discourse.metabase.com/search?q=api%20error%20message
 [discourse-search-metabase-error]: https://discourse.metabase.com/search?q=metabase%20error%20message
 [metabase-error-message]: #metabase-error-messages
-[sql-editor]: /glossary/native_query_editor.html
-
+[sql-editor]: /glossary/native_query_editor.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/filters.md b/docs/troubleshooting-guide/filters.md
index 191439ad3b6883baec5a85324556d5fcbf977dc9..a65b33d2e8d4f67f370297f6050ee4242acb9eeb 100644
--- a/docs/troubleshooting-guide/filters.md
+++ b/docs/troubleshooting-guide/filters.md
@@ -1,3 +1,7 @@
+---
+title: My dashboard filters don't work
+---
+
 # My dashboard filters don't work
 
 You've tried to add a [filter widget][filter-widget-gloss] to your dashboard, but:
@@ -65,4 +69,4 @@ If a filter that used to work no longer seems to, or seems to eliminate all of t
 [sql-variable-gloss]: /glossary/variable#example-variable-in-metabase
 [sync-scan]: ./sync-fingerprint-scan.html
 [troubleshoot-linked-filters]: ./linked-filters.html
-[troubleshoot-sql-variables]: ./sql.html#my-sql-variables-arent-working
+[troubleshoot-sql-variables]: ./sql.html#my-sql-variables-arent-working
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/index.md b/docs/troubleshooting-guide/index.md
index 2da271e14a9f5f597d42e4de461661682fa04a69..6df56cd3f625f6fc5ebe91afe3e082bdc7eff51d 100644
--- a/docs/troubleshooting-guide/index.md
+++ b/docs/troubleshooting-guide/index.md
@@ -1,3 +1,7 @@
+---
+title: What are you having trouble with?
+---
+
 # What are you having trouble with?
 
 This page collects resources for getting you unstuck.
@@ -109,4 +113,4 @@ Metabase adds new features and squashes bugs with each release. [Upgrading to th
 [slow-dashboard]: ./my-dashboard-is-slow.html
 [sql]: ./sql.html
 [sync-fingerprint-scan]: ./sync-fingerprint-scan.html
-[upgrade]: ../operations-guide/upgrading-metabase.html
+[upgrade]: ../operations-guide/upgrading-metabase.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/ldap.md b/docs/troubleshooting-guide/ldap.md
index 6b061673dbe86dff1e741042e91662f19447dd0f..45d2d507dc12899767a3fce8a3e383e6c01f7b18 100644
--- a/docs/troubleshooting-guide/ldap.md
+++ b/docs/troubleshooting-guide/ldap.md
@@ -1,3 +1,7 @@
+---
+title: LDAP
+---
+
 # LDAP
 
 <div class='doc-toc' markdown=1>
@@ -84,4 +88,4 @@ If you run into an issue, check that you can login to your LDAP directory and is
 
 ## Are you still stuck?
 
-If you can’t solve your problem using the troubleshooting guides, search or ask the [Metabase community][discourse].
+If you can’t solve your problem using the troubleshooting guides, search or ask the [Metabase community][discourse].
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/linked-filters.md b/docs/troubleshooting-guide/linked-filters.md
index 81ca81c7a913baa693050ae30b3a2e465d0b79f5..1c2f4db8f350710d728bb733326d3aaeca1a53d0 100644
--- a/docs/troubleshooting-guide/linked-filters.md
+++ b/docs/troubleshooting-guide/linked-filters.md
@@ -1,3 +1,7 @@
+---
+title: My linked filters don't work
+---
+
 # My linked filters don't work
 
 You have created a [linked filter][linked-filter-gloss] so that (for example) if a dashboard contains both a "State" and a "City" filter, the "City" filter only shows cities in the state selected by the "State" filter. However:
@@ -57,4 +61,4 @@ If you are having problems with a regular [filter widget][filter-widget-gloss],
 [foreign-key-gloss]: /glossary/foreign_key
 [join-types]: /learn/sql-questions/sql-join-types.html
 [learn-linking]: /learn/dashboards/linking-filters.html
-[linked-filter-gloss]: /glossary/linked_filter
+[linked-filter-gloss]: /glossary/linked_filter
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/loading-from-h2.md b/docs/troubleshooting-guide/loading-from-h2.md
index bf24e923d647eb01663e7e2309a5bebb66c63bfc..ad0d54e3f1bfbba16ca2f4229d0509a1201a7994 100644
--- a/docs/troubleshooting-guide/loading-from-h2.md
+++ b/docs/troubleshooting-guide/loading-from-h2.md
@@ -1,3 +1,7 @@
+---
+title: Using or migrating from an H2 application database
+---
+
 # Using or migrating from an H2 application database
 
 You have installed Metabase, but:
@@ -129,4 +133,4 @@ Exception in thread "main" java.lang.AssertionError: Assert failed: Unable to co
 [enterprise]: https://www.metabase.com/pricing
 [migrate]: ../operations-guide/migrating-from-h2.md
 [serialization-docs]: ../enterprise-guide/serialization.md
-[serialization-learn]: /learn/administration/serialization.html
+[serialization-learn]: /learn/administration/serialization.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/my-dashboard-is-slow.md b/docs/troubleshooting-guide/my-dashboard-is-slow.md
index 473bd6788b2f0ebaf5f9c5680a24f01319312788..eb8e8df3f28ee3f8da2e3758eea556f22d22fa55 100644
--- a/docs/troubleshooting-guide/my-dashboard-is-slow.md
+++ b/docs/troubleshooting-guide/my-dashboard-is-slow.md
@@ -1,3 +1,7 @@
+---
+title: My dashboard is slow
+---
+
 # My dashboard is slow
 
 You have created a dashboard that shows the right things but:
@@ -125,4 +129,4 @@ Similarly, you probably don't need indexes for simple tables with a few tens of
 [faster-dashboards]: /learn/administration/making-dashboards-faster.html
 [freeze-bug]: https://github.com/metabase/metabase/issues/14957
 [metabase-at-scale]: /learn/administration/metabase-at-scale.html
-[organizing-sql]: /learn/sql-questions/organizing-sql.html
+[organizing-sql]: /learn/sql-questions/organizing-sql.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/permissions.md b/docs/troubleshooting-guide/permissions.md
index 3259f82d9cda2314c9e3b5f191ef6bfca118c545..9936e329301208ad3bb0c7b03a79b83a6dc6827f 100644
--- a/docs/troubleshooting-guide/permissions.md
+++ b/docs/troubleshooting-guide/permissions.md
@@ -1,3 +1,7 @@
+---
+title: Fixing permissions issues
+---
+
 # Fixing permissions issues
 
 This troubleshooting guide has you covered if you've [connected your database][connecting-database] to Metabase, set up [groups][groups] for new people, and granted [data permissions][data-permissions] and [collection permissions][setting-collection-permissions] to those groups, but:
@@ -61,4 +65,4 @@ Keep in mind that if a person belongs to another group that does have data acces
 [no-self-service]: ../administration-guide/data-permissions.html#no-self-service-access
 [sandboxing]: ./sandboxing.html
 [setting-collection-permissions]: ../administration-guide/06-collections.html#setting-permissions-for-collections
-[unrestricted]: ../administration-guide/data-permissions.html#unrestricted-access
+[unrestricted]: ../administration-guide/data-permissions.html#unrestricted-access
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/proxies.md b/docs/troubleshooting-guide/proxies.md
index ac64aca80b806929e132ea21022685effec4b860..03416015b01ab4d5c36aaceb660be387430b48bb 100644
--- a/docs/troubleshooting-guide/proxies.md
+++ b/docs/troubleshooting-guide/proxies.md
@@ -1,3 +1,7 @@
+---
+title: Can't save questions or dashboards, or getting a blank page
+---
+
 # Can't save questions or dashboards, or getting a blank page
 
 <div class='doc-toc' markdown=1>
@@ -32,4 +36,4 @@ If Metabase displays a blank page instead of its interface, the problem is usual
 - Check the Console tab of your browser's Developer Tools for any errors involving Content Security Policy (CSP).
 - See if Metabase has been able to deliver the HTML code by right clicking on the blank page and selecting "View page source." It might look like gibberish, but it should say `<title>Metabase</title>` near line 25.
 
-The solution is to disable content optimization for Metabase.
+The solution is to disable content optimization for Metabase.
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/requesting-new-features.md b/docs/troubleshooting-guide/requesting-new-features.md
index 865aedd8a5aef1caefd55bf8d0a6888b5f670a5c..27df2697a6a0ea068435b1f5f68b0d023a0ac591 100644
--- a/docs/troubleshooting-guide/requesting-new-features.md
+++ b/docs/troubleshooting-guide/requesting-new-features.md
@@ -1,3 +1,7 @@
+---
+title: How to request new features
+---
+
 # How to request new features
 
 1. Check out the [issues in the github repo][github-issues] to make sure someone hasn't already requested the feature.
@@ -30,4 +34,4 @@ Note: the more honest and specific you are here the more we will take you seriou
 Add any other context or screenshots about the feature request here.
 
 [github-issues]: https://github.com/metabase/metabase/labels/Type%3ANew%20Feature
-[feature-request]: https://github.com/metabase/metabase/issues/new?assignees=&labels=.Needs+Triage%2C+Type%3ANew+Feature&template=feature_request.md
+[feature-request]: https://github.com/metabase/metabase/issues/new?assignees=&labels=.Needs+Triage%2C+Type%3ANew+Feature&template=feature_request.md
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/running.md b/docs/troubleshooting-guide/running.md
index ba7355ea9fc39e5529ca0380b89d99f661707d01..529cb5fcb61095b2dcc3ad680145766db68a152f 100644
--- a/docs/troubleshooting-guide/running.md
+++ b/docs/troubleshooting-guide/running.md
@@ -1,3 +1,7 @@
+---
+title: Running Metabase
+---
+
 # Running Metabase
 
 <div class='doc-toc' markdown=1>
@@ -55,4 +59,4 @@ The `-XX:HeapDumpPath` flag specifies where to put the dump---the current direct
 
 If you see an error regarding file permissions, like Metabase being unable to read a SQLite database or a custom GeoJSON map file, check out the section "Metabase can't read to/from a file or directory" in our [Docker troubleshooting guide](./docker.html).
 
-[eclipse-memory-analyzer]: https://www.eclipse.org/mat/
+[eclipse-memory-analyzer]: https://www.eclipse.org/mat/
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/saml.md b/docs/troubleshooting-guide/saml.md
index ec4aed549eb425a957ac2a3801e492ebc0cd00fc..ebca9a908939f7f7a3f493c3bbbd154135ee00d7 100644
--- a/docs/troubleshooting-guide/saml.md
+++ b/docs/troubleshooting-guide/saml.md
@@ -1,3 +1,7 @@
+---
+title: Troubleshooting SAML authentication setup
+---
+
 # Troubleshooting SAML authentication setup
 
 {% include plans-blockquote.html feature="SAML authentication" %}
@@ -39,4 +43,4 @@ This error will only occur if you're using **Signed SSO requests**. That is, in
 
 **Steps to take**:
 
-1. Add a certificate with a private key to your keystore.
+1. Add a certificate with a private key to your keystore.
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/sandboxing.md b/docs/troubleshooting-guide/sandboxing.md
index e40324b78cfb598d6d512ca689cffb42a793503e..e8eca66053981b3346071e9e6a6eef7d8d62a68f 100644
--- a/docs/troubleshooting-guide/sandboxing.md
+++ b/docs/troubleshooting-guide/sandboxing.md
@@ -1,3 +1,7 @@
+---
+title: Troubleshooting sandbox access to rows and columns
+---
+
 # Troubleshooting sandbox access to rows and columns
 
 [Sandboxing data][sandboxing-your-data] gives some people access to only a subset of the data. (The term comes from the practice of putting children in a sandbox to play safely.) To implement sandboxing, Metabase runs a query that filters rows and/or selects a subset of columns from a table based on [the person's permissions][permissions]; the person's query then runs on the initial query's result (i.e., it runs on the sandboxed data).
@@ -168,4 +172,4 @@ The administrator can [create a new group][groups] to capture precisely who's al
 [signed-embedding]: /learn/embedding/embedding-charts-and-dashboards.html#enable-embedding-in-other-applications
 [cant-see-tables]: cant-see-tables.html
 [sandbox-limitations]: ../enterprise-guide/data-sandboxes.html#current-limitations
-[unsupported-databases]: ../enterprise-guide/data-sandboxes.html#data-sandboxes-do-not-support-non-sql-databases
+[unsupported-databases]: ../enterprise-guide/data-sandboxes.html#data-sandboxes-do-not-support-non-sql-databases
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/server-logs.md b/docs/troubleshooting-guide/server-logs.md
index 42b81997625d9fccc0279c6a3c990c45ea1e7e20..9eff6d4195ea2182059a1c1bfd36ad29a2712c67 100644
--- a/docs/troubleshooting-guide/server-logs.md
+++ b/docs/troubleshooting-guide/server-logs.md
@@ -1,3 +1,6 @@
+---
+title: How to read the server logs
+---
 
 # How to read the server logs
 
diff --git a/docs/troubleshooting-guide/sql.md b/docs/troubleshooting-guide/sql.md
index 999adfd29a5396cfbb3aea0cee8ece53c87f2423..f1d1e998586d80563e3ce421d920221e7498f996 100644
--- a/docs/troubleshooting-guide/sql.md
+++ b/docs/troubleshooting-guide/sql.md
@@ -1,3 +1,7 @@
+---
+title: Troubleshooting SQL questions
+---
+
 # Troubleshooting SQL questions
 
 ## [I'm getting a SQL syntax error][debugging-sql-syntax]
@@ -49,4 +53,4 @@ If you can’t solve your problem using the troubleshooting guides, search or as
 [sql-variable-def]: /glossary/variable.html#example-variable-in-metabase
 [sql-variable-type]: /learn/sql-questions/sql-variables.html#the-different-types-of-variables-available-for-native-sql-queries
 [troubleshooting-database-syncs]: ./sync-fingerprint-scan.html
-[troubleshooting-datetimes]: ./timezones.html
+[troubleshooting-datetimes]: ./timezones.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/sync-fingerprint-scan.md b/docs/troubleshooting-guide/sync-fingerprint-scan.md
index 8f9d37055bf7e570da525bd6441fba805e275fb6..253e314e66801735ea870807c704b50abed44ed8 100644
--- a/docs/troubleshooting-guide/sync-fingerprint-scan.md
+++ b/docs/troubleshooting-guide/sync-fingerprint-scan.md
@@ -1,3 +1,7 @@
+---
+title: Synchronizing with the database
+---
+
 # Synchronizing with the database
 
 <div class='doc-toc' markdown=1>
@@ -85,4 +89,4 @@ You can "fix" this by disabling scan entirely by going to the database in the Ad
 [metabase-api]: ../api-documentation.html
 [metabase-mongo-missing]: ../administration-guide/databases/mongodb.html#i-added-fields-to-my-database-but-dont-see-them-in-metabase
 [sync-frequency]: ../administration-guide/01-managing-databases.html#choose-when-metabase-syncs-and-scans
-[troubleshooting-db-connection]: ./datawarehouse.html
+[troubleshooting-db-connection]: ./datawarehouse.html
\ No newline at end of file
diff --git a/docs/troubleshooting-guide/timezones.md b/docs/troubleshooting-guide/timezones.md
index dbd07cb736cd7210b53ac17747cfbdc2da2636b8..30e908c2e9e65c1df2936f8e33ae8ab253288f2b 100644
--- a/docs/troubleshooting-guide/timezones.md
+++ b/docs/troubleshooting-guide/timezones.md
@@ -1,3 +1,7 @@
+---
+title: The dates and times in my questions and charts are wrong
+---
+
 # The dates and times in my questions and charts are wrong
 
 You are doing calculations with dates and times, or displaying them in charts, but:
@@ -75,4 +79,4 @@ Once you think you have identified a problem, drill down to understand exactly w
 1. This typically happens with a question that uses multiple fields: for example, you're filtering on one timestamp and grouping by another. Check the time zones of each of the dates or times you are using in your question.
 2. You'll need to explicitly set the time zone for any value that lacks an explicit time zone. This will need to be done either in a SQL query or by transforming the data in your database to ensure both timestamps have time zones.
 
-[data-model]: ../users-guide/12-data-model-reference.html
+[data-model]: ../users-guide/12-data-model-reference.html
\ No newline at end of file
diff --git a/docs/users-guide/01-what-is-metabase.md b/docs/users-guide/01-what-is-metabase.md
index d549c463b86b41a1cf63ac53baeb3d54b812c384..71bafadc7d8f13d0a69ceb0f05e54278871e0339 100644
--- a/docs/users-guide/01-what-is-metabase.md
+++ b/docs/users-guide/01-what-is-metabase.md
@@ -1,3 +1,7 @@
+---
+title: What is Metabase?
+---
+
 ## What is Metabase?
 
 Metabase is an open source business intelligence tool. It lets you ask questions about your data, and displays answers in formats that make sense, whether that's a bar chart or a detailed table.
@@ -50,4 +54,4 @@ The search bar at the top of the screen helps you find tables, dashboards, colle
 
 ## Next: Exploring Metabase
 
-Now that we've covered the basics of what Metabase is and can do, let's look at [dashboards and questions](03-basic-exploration.md) that your teammates have already made.
+Now that we've covered the basics of what Metabase is and can do, let's look at [dashboards and questions](03-basic-exploration.md) that your teammates have already made.
\ No newline at end of file
diff --git a/docs/users-guide/03-basic-exploration.md b/docs/users-guide/03-basic-exploration.md
index d90fa3286a018df94749bd3d84c9fa1ff2fe6279..2d9d4e5fdf41a094cf7a381af5f14cc5db0eba1b 100644
--- a/docs/users-guide/03-basic-exploration.md
+++ b/docs/users-guide/03-basic-exploration.md
@@ -1,3 +1,7 @@
+---
+title: Exploring in Metabase
+---
+
 # Exploring in Metabase
 
 ## See what your teammates have made
@@ -91,4 +95,4 @@ Some things to remember with bookmarks:
 
 [collections]: collections.md
 [dashboards]: 07-dashboards.md
-[models]: models.md
+[models]: models.md
\ No newline at end of file
diff --git a/docs/users-guide/04-asking-questions.md b/docs/users-guide/04-asking-questions.md
index 032b4878f67cea665422c981e5061205c123fb23..2e3e619acef7529d9d17cbf4d8345fb46c33bec1 100644
--- a/docs/users-guide/04-asking-questions.md
+++ b/docs/users-guide/04-asking-questions.md
@@ -1,3 +1,7 @@
+---
+title: Asking questions
+---
+
 # Asking questions
 
 Metabase's two core concepts are questions and their corresponding answers. Everything else is based around questions and answers. To ask a question in Metabase, click the **+ New** button in the upper right of the main navigation bar, and select either:
@@ -206,4 +210,4 @@ If you find yourself using the same saved question as a starting point for multi
 - [Visualize results](05-visualizing-results.md).
 - [Asking questions](/learn/questions)
 
-[model]: models.md
+[model]: models.md
\ No newline at end of file
diff --git a/docs/users-guide/05-visualizing-results.md b/docs/users-guide/05-visualizing-results.md
index 9e47518fe8fa82324c76396f76229965ddd530fe..9bb06f765fbe917c626dff76ef4b30540e2c4749 100644
--- a/docs/users-guide/05-visualizing-results.md
+++ b/docs/users-guide/05-visualizing-results.md
@@ -1,3 +1,7 @@
+---
+title: Visualizing results
+---
+
 # Visualizing results
 
 While tables are useful for looking up information or finding specific numbers, it's usually easier to see trends and make sense of data using charts.
@@ -324,4 +328,4 @@ Learn more about [visualizing data with maps](https://www.metabase.com/learn/bas
 
 ## Next: Sharing your questions
 
-Now let's learn about [saving, editing, and sharing your questions](06-sharing-answers.md).
+Now let's learn about [saving, editing, and sharing your questions](06-sharing-answers.md).
\ No newline at end of file
diff --git a/docs/users-guide/06-sharing-answers.md b/docs/users-guide/06-sharing-answers.md
index e5676311080f72658d85d4d770410df9620bcd64..68150fc82817d0189270aa096fdd2d7e8df093e1 100644
--- a/docs/users-guide/06-sharing-answers.md
+++ b/docs/users-guide/06-sharing-answers.md
@@ -1,3 +1,7 @@
+---
+title: Saving and editing your questions
+---
+
 # Saving and editing your questions
 
 ## How to save a question
@@ -84,4 +88,4 @@ Next, we'll learn about how to organize our questions in [collections][collectio
 [collections]: collections.html
 [collection-permissions]: ../administration-guide/06-collections.md
 [dashboards]: 07-dashboards.md
-[model]: models.md
+[model]: models.md
\ No newline at end of file
diff --git a/docs/users-guide/07-dashboards.md b/docs/users-guide/07-dashboards.md
index 01fdb3a49a7638c45f24052181bc9d083d6802e3..abd7c09b5a7daecb49da1bd2047690153f295a4a 100644
--- a/docs/users-guide/07-dashboards.md
+++ b/docs/users-guide/07-dashboards.md
@@ -1,3 +1,7 @@
+---
+title: Dashboards
+---
+
 # Dashboards
 
 ![Interactive dashboard](images/dashboards/interactive-dashboard.png)
@@ -164,4 +168,4 @@ See [Making dashboards faster](https://www.metabase.com/blog/faster-dashboards/i
 
 ## Next: Adding dashboard filters
 
-Make your dashboards more flexible and powerful by [adding dashboard filters](08-dashboard-filters.md).
+Make your dashboards more flexible and powerful by [adding dashboard filters](08-dashboard-filters.md).
\ No newline at end of file
diff --git a/docs/users-guide/08-dashboard-filters.md b/docs/users-guide/08-dashboard-filters.md
index c11f92821e01830619ce33b16df2c22b25bd6eef..5b1a9ef2f67a09c5a120f393c43cb11cbeb7fb6a 100644
--- a/docs/users-guide/08-dashboard-filters.md
+++ b/docs/users-guide/08-dashboard-filters.md
@@ -1,3 +1,7 @@
+---
+title: Dashboard Filters
+---
+
 ## Dashboard Filters
 
 ![Dashboard Filters](images/dashboard-filters/dashboard-filters.png)
@@ -132,4 +136,4 @@ Here are a few tips to get the most out of dashboard filters:
 
 - [Dashboards intro](07-dashboards.md)
 - [Interactive dashboards](interactive-dashboards.md)
-- [Learn dashboards](/learn/dashboards)
+- [Learn dashboards](/learn/dashboards)
\ No newline at end of file
diff --git a/docs/users-guide/09-multi-series-charting.md b/docs/users-guide/09-multi-series-charting.md
index 3887ec5215dd72222e2c91a07875cf1d56a209d2..8a7d8420857e841c015be2b342abf5a3bd748562 100644
--- a/docs/users-guide/09-multi-series-charting.md
+++ b/docs/users-guide/09-multi-series-charting.md
@@ -1,3 +1,7 @@
+---
+title: Charts with multiple series
+---
+
 # Charts with multiple series
 
 Data in isolation is rarely all that useful. One of the best ways to add context and clarity when communicating with data is to show data side-by-side with other data. Here are just a few examples of data that is better together than apart.
@@ -91,4 +95,4 @@ Now go forth and start letting your data get to know each other!
 
 ## Further reading
 
-- [Time series comparisons](https://www.metabase.com/blog/Time-Series-Comparisons/index.html).
+- [Time series comparisons](https://www.metabase.com/blog/Time-Series-Comparisons/index.html).
\ No newline at end of file
diff --git a/docs/users-guide/12-data-model-reference.md b/docs/users-guide/12-data-model-reference.md
index 675e1b152223092a4c99b4fcdee302427189ff6a..e21dd3ba88d37efc94ebcb5baa6373964578faef 100644
--- a/docs/users-guide/12-data-model-reference.md
+++ b/docs/users-guide/12-data-model-reference.md
@@ -1,3 +1,7 @@
+---
+title: Data reference
+---
+
 ## Data reference
 
 Sometimes when you're writing a SQL query, you might forget the exact names of different tables or columns, or which table contains what. That’s where the _data reference_ comes in handy. You can open the data reference panel from the SQL editor by clicking on the book icon in the top right corner of the editor when it's open.
@@ -22,4 +26,4 @@ You can find a list of connections to other tables (i.e., [foreign key](/glossar
 
 ## Next: powering up your SQL questions with variables
 
-Find out [how to use variables in your native SQL queries](13-sql-parameters.md) to create powerful filter widgets and more.
+Find out [how to use variables in your native SQL queries](13-sql-parameters.md) to create powerful filter widgets and more.
\ No newline at end of file
diff --git a/docs/users-guide/13-sql-parameters.md b/docs/users-guide/13-sql-parameters.md
index 597965e9b2d652284b3cb3c1bcbbaac43741d763..e5d6eda8074b64707aca87d609d8b40086a639a1 100644
--- a/docs/users-guide/13-sql-parameters.md
+++ b/docs/users-guide/13-sql-parameters.md
@@ -1,3 +1,7 @@
+---
+title: Creating SQL templates
+---
+
 # Creating SQL templates
 
 You can create SQL templates by adding variables to your SQL queries in the [Native/SQL editor][sql-editor]. These variables will create filter widgets that you can use to change the variable's value in the query. You can also add parameters to your question's URL to set the filters' values, so that when the question loads, those values are inserted into the variables.
@@ -281,4 +285,4 @@ Learn how to [refer to a saved question in a SQL query](referencing-saved-questi
 [sql-variables]: /learn/sql-questions/sql-variables.html
 [troubleshooting-filters]: ../troubleshooting-guide/filters.html
 [troubleshooting-sql]: ../troubleshooting-guide/sql.html
-[basic-input]: /learn/sql-questions/sql-variables.html#basic-input-variable-text
+[basic-input]: /learn/sql-questions/sql-variables.html#basic-input-variable-text
\ No newline at end of file
diff --git a/docs/users-guide/14-x-rays.md b/docs/users-guide/14-x-rays.md
index 7ab5cd8cc062185771d25b0bd69cd33654886035..0f27225d1a5ceb0f04c907ebac54c581a545dc60 100644
--- a/docs/users-guide/14-x-rays.md
+++ b/docs/users-guide/14-x-rays.md
@@ -1,3 +1,7 @@
+---
+title: X-rays
+---
+
 ## X-rays
 
 X-rays are a fast and easy way to get automatic insights and explorations of your data.
@@ -64,5 +68,4 @@ The X-ray suggestions that appear on the homepage of Metabase will be hidden if
 
 ### Need help?
 
-If you still have questions about X-rays or comparisons, you can head over to our [discussion forum](https://discourse.metabase.com/). See you there!
-
+If you still have questions about X-rays or comparisons, you can head over to our [discussion forum](https://discourse.metabase.com/). See you there!
\ No newline at end of file
diff --git a/docs/users-guide/15-alerts.md b/docs/users-guide/15-alerts.md
index 4e32c3bdd7bbce4dcc138b4beb9fcdf826a13015..f4cb28e4d323741f785d1021bb9c7595e64257c8 100644
--- a/docs/users-guide/15-alerts.md
+++ b/docs/users-guide/15-alerts.md
@@ -1,3 +1,7 @@
+---
+title: Getting alerts about questions
+---
+
 # Getting alerts about questions
 
 Whether you're keeping track of revenue, users, or negative reviews, there are often times when you want to be alerted about something. Metabase has a few different kinds of alerts you can set up, and you can choose to be notified via email or Slack.
@@ -71,5 +75,4 @@ There are a few ways alerts can be stopped:
 - Regular users can unsubscribe from any alert that they're a recipient of.
 - Admins can edit any alert and delete it entirely. This can't be undone, so be careful!
 - If a saved question that has an alert on it gets edited in such a way that the alert doesn't make sense anymore, the alert will get deleted. For example, if a saved question with a goal line alert on it gets edited, and the goal line is removed entirely, that alert will get deleted.
-- If a question gets archived, any alerts on it will be deleted.
-
+- If a question gets archived, any alerts on it will be deleted.
\ No newline at end of file
diff --git a/docs/users-guide/account-settings.md b/docs/users-guide/account-settings.md
index 6651b9fc0ec5054cf0916dade6408f2485e67c96..81d65e4b27e05b6e9e307f21ae35ccadcb94d3ce 100644
--- a/docs/users-guide/account-settings.md
+++ b/docs/users-guide/account-settings.md
@@ -1,3 +1,7 @@
+---
+title: Account settings
+---
+
 # Account settings
 
 You can view your account settings by clicking on the **gears** icon in the upper right of the main navigation bar, then selecting **Account settings**. Here you'll find three tabs:
@@ -27,4 +31,4 @@ Whenever you log in from a new device, Metabase will send you an email just to l
 
 ## Disable animations in Metabase
 
-This isn't an in-Metabase setting, but just so you know: you can disable UI animations in Metabase (like sidebars sliding around, or rotating spinners) by changing the settings for your operating system so it respects the `prefers-reduced-motion` CSS media feature. This change will also affect other applications, not just Metabase. Check out the instructions for how to set the user preferences for your operating system in the [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion#user_preferences).
+This isn't an in-Metabase setting, but just so you know: you can disable UI animations in Metabase (like sidebars sliding around, or rotating spinners) by changing the settings for your operating system so it respects the `prefers-reduced-motion` CSS media feature. This change will also affect other applications, not just Metabase. Check out the instructions for how to set the user preferences for your operating system in the [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion#user_preferences).
\ No newline at end of file
diff --git a/docs/users-guide/collections.md b/docs/users-guide/collections.md
index 75a216172d1101fcf0b1f2566a9c8fc7d7ba2de5..32302631493f98ad0fb10df7cc881f28af5530e3 100644
--- a/docs/users-guide/collections.md
+++ b/docs/users-guide/collections.md
@@ -1,3 +1,7 @@
+---
+title: Collections
+---
+
 # Collections
 
  After your team has been using Metabase for a while, you’ll probably end up with lots of saved questions.
@@ -69,4 +73,4 @@ You can add events to collections, and organize those events into timelines. See
 Next, we'll learn about [creating dashboards and adding questions to them][dashboards].
 
 [dashboards]: 07-dashboards.md
-[models]: models.md
+[models]: models.md
\ No newline at end of file
diff --git a/docs/users-guide/dashboard-subscriptions.md b/docs/users-guide/dashboard-subscriptions.md
index 337058a8d0274280523bbc1bdce0f4750a056605..fc4bf976bb36da4da468be5ec2d6e7dfec23d7a8 100644
--- a/docs/users-guide/dashboard-subscriptions.md
+++ b/docs/users-guide/dashboard-subscriptions.md
@@ -1,3 +1,7 @@
+---
+title: Dashboard subscriptions
+---
+
 ## Dashboard subscriptions
 
 Dashboard subscriptions are a great way to keep you and your team up to date on the data that matters most. They allow you to send all of the questions on a dashboard via email or Slack. If your Metabase has email or Slack set up, all you need to do is create a dashboard, add subscribers to it, and tell Metabase how often you'd like the send out an update. You can set up as many subscriptions to a dashboard as you like, and if you make any changes to the dashboard, Metabase will update the subscriptions the next time they're delivered.
@@ -67,5 +71,4 @@ Some plans allow you to [customize filter values for each subscription](../enter
 
 ## Next: data model reference
 
-Sometimes you’ll need help understanding what data is available to you and what it means. Metabase provides a way for your administrators and data experts to build a [data model reference](12-data-model-reference.md) to help you make sense of your data.
-
+Sometimes you’ll need help understanding what data is available to you and what it means. Metabase provides a way for your administrators and data experts to build a [data model reference](12-data-model-reference.md) to help you make sense of your data.
\ No newline at end of file
diff --git a/docs/users-guide/events-and-timelines.md b/docs/users-guide/events-and-timelines.md
index 23f3fd20891ccd06518c87e89897b7f7dfbdb5bb..39d27f491af30387f6f7be12b4195f668685d810 100644
--- a/docs/users-guide/events-and-timelines.md
+++ b/docs/users-guide/events-and-timelines.md
@@ -1,3 +1,7 @@
+---
+title: Events and timelines
+---
+
 # Events and timelines
 
 A lot of discussions around data have a moment when someone asks a question related to a specific point in time: "Wait, what's the spike in March again?", or "When did the new widget launch?"
@@ -63,4 +67,4 @@ To permanently delete an event or timeline, you must first archive the event or
 
 ## Disabling events for a question
 
-If a collection includes timelines, those events will show up for any time series in that collection (provided the timeline and the question's date range overlap). If you want to disable the visibility of events by default for a particular question, you'll need to move that question to a collection that lacks timelines and events.
+If a collection includes timelines, those events will show up for any time series in that collection (provided the timeline and the question's date range overlap). If you want to disable the visibility of events by default for a particular question, you'll need to move that question to a collection that lacks timelines and events.
\ No newline at end of file
diff --git a/docs/users-guide/expressions-list.md b/docs/users-guide/expressions-list.md
index fab57409795d2f8941d008d8eb844065b7ec04d6..2c8c043132d118d6acd0d220d25b0e2bab8577b7 100644
--- a/docs/users-guide/expressions-list.md
+++ b/docs/users-guide/expressions-list.md
@@ -1,3 +1,7 @@
+---
+title: List of expressions
+---
+
 # List of expressions
 
 For an introduction to expressions, check out [Writing expressions in the notebook editor][expressions].
@@ -462,4 +466,4 @@ If you're using or maintaining a third-party database driver, please [refer to t
 
 See [Custom expressions in the notebook editor](https://www.metabase.com/blog/custom-expressions/index.html) to learn more.
 
-[expressions]: ./expressions.html
+[expressions]: ./expressions.html
\ No newline at end of file
diff --git a/docs/users-guide/expressions.md b/docs/users-guide/expressions.md
index b76528537c1a5949418f3a121d95f5665f25a669..60a5fa61e010d9a9c613848077c70eedeabe70b9 100644
--- a/docs/users-guide/expressions.md
+++ b/docs/users-guide/expressions.md
@@ -1,3 +1,7 @@
+---
+title: Custom expressions in the query builder
+---
+
 # Custom expressions in the query builder
 
 [Custom expressions][expression-list] are like formulas in spreadsheet software like Excel, Google Sheets, and LibreOffice Calc. They are the power tools in the notebook editor of the query builder that allow you to ask more complicated questions.
@@ -76,4 +80,4 @@ For a tutorial on expressions, see [Custom expressions in the notebook editor][c
 [aggregations]: expressions-list.html#aggregations
 [custom-expressions]: https://www.metabase.com/learn/questions/custom-expressions.html
 [expression-list]: expressions-list.html
-[functions]: expressions-list.html#functions
+[functions]: expressions-list.html#functions
\ No newline at end of file
diff --git a/docs/users-guide/field-types.md b/docs/users-guide/field-types.md
index 3106d5b354dd02d3536685111670f3742cbc31b2..28fca205fee09ebe2baa5363ae2fdeb740901196 100644
--- a/docs/users-guide/field-types.md
+++ b/docs/users-guide/field-types.md
@@ -1,3 +1,7 @@
+---
+title: Field types in Metabase
+---
+
 # Field types in Metabase
 
 
@@ -93,5 +97,4 @@ While data types themselves can't be edited in Metabase, admins can manually [ca
 
 - [Exploring data with Metabase's data browser](/learn/getting-started/data-browser.html).
 - [The Data Model page: editing metadata](../administration-guide/03-metadata-editing.md).
-- [Field Filters: create smart filter widgets for SQL questions](/learn/sql-questions/field-filters.html).
-
+- [Field Filters: create smart filter widgets for SQL questions](/learn/sql-questions/field-filters.html).
\ No newline at end of file
diff --git a/docs/users-guide/interactive-dashboards.md b/docs/users-guide/interactive-dashboards.md
index 1980ab7205e65d56041f42f03ff036ee5696acec..09f046823ebe4a58452c7b33e25156127ccbbbea 100644
--- a/docs/users-guide/interactive-dashboards.md
+++ b/docs/users-guide/interactive-dashboards.md
@@ -1,3 +1,7 @@
+---
+title: Interactive dashboards
+---
+
 ## Interactive dashboards
 
 You can customize what happens when people click on questions in your dashboard.
@@ -128,4 +132,4 @@ To learn more, check out [Cross-filtering: using a chart to update a dashboard f
 
 ## Next: Charts with multiple series
 
-We'll learn how to [create charts with multiple lines, bars, and more](09-multi-series-charting.md).
+We'll learn how to [create charts with multiple lines, bars, and more](09-multi-series-charting.md).
\ No newline at end of file
diff --git a/docs/users-guide/join.md b/docs/users-guide/join.md
index 5005171237d4d1bc186d2910cfa7d0d10ac98f60..5fd4fca649fdd971f22edd1e564e608ae87ca0cc 100644
--- a/docs/users-guide/join.md
+++ b/docs/users-guide/join.md
@@ -1,3 +1,7 @@
+---
+title: Joining data
+---
+
 # Joining data
 
 ![Joining](./images/notebook/join-step.png)
@@ -41,4 +45,4 @@ Your joins can also include multiple conditions to refine your results. Metabase
 - [Type of joins][join-types]
 
 [join]: https://www.metabase.com/learn/questions/joins-in-metabase
-[join-types]: https://www.metabase.com/learn/sql-questions/sql-join-types.html
+[join-types]: https://www.metabase.com/learn/sql-questions/sql-join-types.html
\ No newline at end of file
diff --git a/docs/users-guide/models.md b/docs/users-guide/models.md
index 03d6e5c621c9098476fae61a4e573cbddb00132a..34530a6a143707342385f1f48cc268658d60d3e0 100644
--- a/docs/users-guide/models.md
+++ b/docs/users-guide/models.md
@@ -1,3 +1,7 @@
+---
+title: Models
+---
+
 # Models
 
 Models are a fundamental building block in Metabase. Models curate data from another table or tables from the same database to anticipate the kinds of questions people will ask of the data. You can think of them as derived tables, or a special kind of saved question meant to be used as the starting point for new questions. You can base a model on a SQL or query builder question, which means you can include custom, calculated columns in your model.
@@ -109,4 +113,4 @@ Just like with a question, admins can verify models. Verifying a model will give
 [cte]: https://www.metabase.com/learn/sql-questions/sql-cte
 [measures-dimensions]: https://www.metabase.com/learn/databases/dimensions-and-measures
 [question]: 04-asking-questions.md
-[learn-models]: /learn/getting-started/models
+[learn-models]: /learn/getting-started/models
\ No newline at end of file
diff --git a/docs/users-guide/referencing-saved-questions-in-queries.md b/docs/users-guide/referencing-saved-questions-in-queries.md
index f74a0171a95d5b63c2e18adc3d5567d0c4fe47a5..82eb204c884ca5b99c83d20041c353b03f98092a 100644
--- a/docs/users-guide/referencing-saved-questions-in-queries.md
+++ b/docs/users-guide/referencing-saved-questions-in-queries.md
@@ -1,3 +1,7 @@
+---
+title: Referencing models and saved questions in SQL queries
+---
+
 ## Referencing models and saved questions in SQL queries
 
 With SQL databases, we can use a [model][model] or an existing question as the basis for a new query, or as a common table expression [CTE][CTE].
@@ -102,4 +106,4 @@ Learn about how to easily and quickly see automatic explorations of your data wi
 
 
 [cte]: https://www.metabase.com/learn/sql-questions/sql-cte
-[model]: models.md
+[model]: models.md
\ No newline at end of file
diff --git a/docs/users-guide/sql-snippets.md b/docs/users-guide/sql-snippets.md
index e3676540b0ad20e2089f02db8dba0e89674ca5de..fdc5dc55b1b39bcc86d31f16cf0d6b57292f865e 100644
--- a/docs/users-guide/sql-snippets.md
+++ b/docs/users-guide/sql-snippets.md
@@ -1,3 +1,7 @@
+---
+title: SQL snippets
+---
+
 ## SQL snippets
 
 ![Highlight and save as snippet](./images/sql-snippets/highlight_and_save_as_snippet.gif)
@@ -97,4 +101,4 @@ Check out:
 
 - [SQL snippets](https://www.metabase.com/learn/building-analytics/sql-templates/sql-snippets.html)
 - [SQL Snippets vs Saved Questions vs Views](https://www.metabase.com/learn/building-analytics/sql-templates/organizing-sql.html).
-- If you're having trouble with your SQL query, go to the [SQL troubleshooting guide](../troubleshooting-guide/sql.html).
+- If you're having trouble with your SQL query, go to the [SQL troubleshooting guide](../troubleshooting-guide/sql.html).
\ No newline at end of file
diff --git a/docs/users-guide/start.md b/docs/users-guide/start.md
index 8ded0ef7e83e0098d89eda1db6ec5324f652b3f9..69036fcbfcb7738b1e7f914679c98e7cad6f8c5f 100644
--- a/docs/users-guide/start.md
+++ b/docs/users-guide/start.md
@@ -1,3 +1,7 @@
+---
+title: User Guide
+---
+
 # User Guide
 
 ## Some basics
@@ -45,4 +49,4 @@
 
 - [Editing your account settings](account-settings.md)
 
-Let's get started with an overview of [What Metabase does](01-what-is-metabase.md).
+Let's get started with an overview of [What Metabase does](01-what-is-metabase.md).
\ No newline at end of file
diff --git a/docs/users-guide/writing-sql.md b/docs/users-guide/writing-sql.md
index 27ae895a6e4a33b3e6340064435220e478473b4e..b64d64f029c2ee5e1f2f72020a4ad9bc6a1a5021 100644
--- a/docs/users-guide/writing-sql.md
+++ b/docs/users-guide/writing-sql.md
@@ -1,3 +1,7 @@
+---
+title: The SQL editor
+---
+
 # The SQL editor
 
 If you ever need to ask questions that can't be expressed using the query builder, you can use [SQL][sql-gloss] instead.
@@ -82,4 +86,4 @@ Now that you have an answer to your question, you can learn about [visualizing a
 [sample-database-gloss]: /glossary/sample_database
 [sql-gloss]: /glossary/sql
 [troubleshooting-sql]: ../troubleshooting-guide/sql.md
-[variable-gloss]: /glossary/variable
+[variable-gloss]: /glossary/variable
\ No newline at end of file
diff --git a/src/metabase/cmd/endpoint_dox.clj b/src/metabase/cmd/endpoint_dox.clj
index d2270b2ec0c20149a4a7fb495c08b64683358b61..4c606c879d9cf086d6e78b2a8fe169ea4f45b098 100644
--- a/src/metabase/cmd/endpoint_dox.clj
+++ b/src/metabase/cmd/endpoint_dox.clj
@@ -37,15 +37,6 @@
       (reduce (fn [n m] (str/replace n m (str/upper-case m))) name matches)
       name)))
 
-(defn ^:private capitalize-first-char
-  "Like string/capitalize, only it ignores the rest of the string
-  to retain case-sensitive capitalization, e.g., initialisms."
-  [s]
-  (if (< (count s) 2)
-    (str/upper-case s)
-    (str (str/upper-case (subs s 0 1))
-         (subs s 1))))
-
 (defn- endpoint-ns-name
   "Creates a name for endpoints in a namespace, like all the endpoints for Alerts.
   Handles some edge cases for enterprise endpoints."
@@ -55,11 +46,44 @@
       name
       handle-enterprise-ns
       last
-      capitalize-first-char
+      u/capitalize-first-char
       (str/replace #"(.api.|-)" " ")
       (capitalize-initialisms initialisms)
       (str/replace "SSO SSO" "SSO")))
 
+(defn- handle-quotes
+  "Used for formatting YAML string punctuation for frontmatter descriptions."
+  [s]
+  (-> s
+      (str/replace #"\"" "'")
+      str/split-lines
+      (#(str/join "\n  " %))))
+
+(defn- format-frontmatter-description
+  "Formats description for YAML frontmatter."
+  [desc]
+  (str "|\n  " (handle-quotes desc)))
+
+(defn- get-description
+  "Used to grab namespace description, if it exists."
+  [ep ep-data]
+  (let [desc (-> ep-data
+                 first
+                 :ns
+                 meta
+                 :doc
+                 u/add-period)]
+    (if (str/blank? desc)
+      (u/add-period (str "API endpoints for " ep))
+      desc)))
+
+(defn- endpoint-page-frontmatter
+  "Formats frontmatter, which includes title and summary, if any."
+  [ep ep-data]
+  (let [desc (format-frontmatter-description (get-description ep ep-data))]
+    (str "---\ntitle: \"" ep "\""
+         "\nsummary: " desc "\n---\n\n")))
+
 (defn- endpoint-page-title
   "Creates a page title for a set of endpoints, e.g., `# Card`."
   [ep-title]
@@ -69,8 +93,8 @@
 
 (defn- endpoint-page-description
   "If there is a namespace docstring, include the docstring with a paragraph break."
-  [ep-data]
-  (let [desc (u/add-period (:doc (meta (:ns (first ep-data)))))]
+  [ep ep-data]
+  (let [desc (get-description ep ep-data)]
     (if (str/blank? desc)
       desc
       (str desc "\n\n"))))
@@ -158,8 +182,9 @@
   followed by the endpoint and their parameter descriptions."
   [ep ep-data]
   (apply str
+         (endpoint-page-frontmatter ep ep-data)
          (endpoint-page-title ep)
-         (endpoint-page-description ep-data)
+         (endpoint-page-description ep ep-data)
          (route-toc ep-data)
          (endpoint-docs ep-data)
          (endpoint-footer ep-data)))
diff --git a/src/metabase/util.clj b/src/metabase/util.clj
index 49594387dc88b370faf6758ce76ec89b68c40f9a..dcf10cdac9bbe10cf176cd73b9cbd99a3b4f15cf 100644
--- a/src/metabase/util.clj
+++ b/src/metabase/util.clj
@@ -40,6 +40,15 @@
     s
     (str s ".")))
 
+(defn capitalize-first-char
+  "Like string/capitalize, only it ignores the rest of the string
+  to retain case-sensitive capitalization, e.g., PostgreSQL."
+  [s]
+  (if (< (count s) 2)
+    (str/upper-case s)
+    (str (str/upper-case (subs s 0 1))
+         (subs s 1))))
+
 (defn lower-case-en
   "Locale-agnostic version of `clojure.string/lower-case`.
   `clojure.string/lower-case` uses the default locale in conversions, turning
diff --git a/test/metabase/cmd/endpoint_dox_test.clj b/test/metabase/cmd/endpoint_dox_test.clj
index 85b1e7f0851d6c413ebdf67cb91d0adca319a449..3b94b772905b9fe364fd0034b6ecd85debfbd6ef 100644
--- a/test/metabase/cmd/endpoint_dox_test.clj
+++ b/test/metabase/cmd/endpoint_dox_test.clj
@@ -3,7 +3,7 @@
             [metabase.cmd.endpoint-dox :as endpoint-dox]
             [metabase.config :as config]))
 
-(deftest capitalize-iniitialisms-test
+(deftest capitalize-initialisms-test
   (testing "Select initialisms and acronyms are in all caps."
     (is (= "The GeoJSON has too many semicolons."
            (endpoint-dox/capitalize-initialisms "The Geojson has too many semicolons." endpoint-dox/initialisms)))))
@@ -29,7 +29,7 @@
                   :doc
                   "## `GET /api/activity/recent_views`\n\nGet the list of 10 things the current user has been viewing most recently."}]})
 
-(def page-markdown (str "# Activity\n\n  - [GET /api/activity/](#get-apiactivity)\n  - [GET /api/activity/recent_views](#get-apiactivityrecent_views)\n\n## `GET /api/activity/`\n\nGet recent activity.\n\n## `GET /api/activity/recent_views`\n\nGet the list of 10 things the current user has been viewing most recently." (endpoint-dox/endpoint-footer (val (first endpoints)))))
+(def page-markdown (str "---\ntitle: \"Activity\"\nsummary: |\n  API endpoints for Activity.\n---\n\n# Activity\n\nAPI endpoints for Activity.\n\n  - [GET /api/activity/](#get-apiactivity)\n  - [GET /api/activity/recent_views](#get-apiactivityrecent_views)\n\n## `GET /api/activity/`\n\nGet recent activity.\n\n## `GET /api/activity/recent_views`\n\nGet the list of 10 things the current user has been viewing most recently." (endpoint-dox/endpoint-footer (val (first endpoints)))))
 
 (deftest build-endpoint-link-test
   (testing "Links to endpoint pages are generated correctly."