diff --git a/docs/drupal8/index.md b/docs/drupal8/index.md
deleted file mode 100644
index 036cae402423e16ecd4478abc51ff99852b3806d..0000000000000000000000000000000000000000
--- a/docs/drupal8/index.md
+++ /dev/null
@@ -1,352 +0,0 @@
-???+ tldr "About this document"
-
-    CiviCRM follows the Drupal community's decisions around which versions of Drupal receive support. Drupal 8 is no longer supported, but Drupal 7 and Drupal 9 are supported. Drupal 10's release date is targetted for August 2022 (as of April 2022), and the CiviCRM community anticipate providing support for it around the time of its release.
-    
-    This guide covers standard installation of CiviCRM on an existing Drupal 8 or 9 site. It assumes that you previously completed these tasks:
-
-    1. [Install Drupal 8 or 9](https://www.drupal.org/docs/8/install), and...
-    1. [Review the CiviCRM requirements](../general/requirements.md)
-
-??? tldr "Alternative: Civibuild for developers"
-
-    If you plan to develop patches for CiviCRM on Drupal 8 or 9, then please read the [Developer Guide](https://docs.civicrm.org/dev/en/latest) for information about [Buildkit](https://docs.civicrm.org/dev/en/latest/tools/buildkit/) and [civibuild](https://docs.civicrm.org/dev/en/latest/tools/civibuild/).
-
-<a name="downloading"></a><!-- old anchor -->
-## Get the code {:#download}
-
-Drupal 8 (D8) and Drupal 9 (D9) sites are typically administered with [Composer](https://www.getcomposer.org). Composer is a *dependency management* tool which can add, upgrade, and remove software *packages* for your site.
-
-CiviCRM is published as a suite of related packages. Our goal is to use Composer to add CiviCRM's packages to the D8 site.
-
-If you do not work regularly with Drupal 8 or 9 and Composer, then you should take a refresher before installing CiviCRM.
-
-??? example "Quick and dirty introduction to Drupal 8 or 9 with `composer`"
-
-    Composer requires shell access to the D8/D9 site. It defines a command `composer`.
-
-    Many D8/D9 sites are initialized via `composer`, which means that `composer` is already available.  This
-    can be confirmed in the shell by running `composer --version`:
-
-    ```
-    $ composer --version
-    Composer version 1.10.13 2020-09-09 11:46:34
-    ```
-
-    It is possible that your system does not have `composer` -- for example, if you used a tar-based installation of D8,
-    then you may never have needed `composer` before.
-
-    If `composer` is missing, then you must [download and install it](https://getcomposer.org/download/) first.
-    Additionally, you probably need to [set composer's memory limit](https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors)
-    high enough for D8/D9.
-
-    Once you have `composer`, you need to navigate to the composer-root. You can recognize it by the following:
-
-    * It has the files `composer.json` and `composer.lock`.
-    * It has a subfolder `vendor/`.
-    * It usually has a subfolder `web/` (the web-root); alternatively, it may *be* the web-root.
-
-    A typical file-hierarchy might look like:
-
-    ```
-    /var/www/drupal.example.org/                Composer-root
-    /var/www/drupal.example.org/composer.json   Composer-configuration
-    /var/www/drupal.example.org/composer.lock   Composer-configuration
-    /var/www/drupal.example.org/web/            Web-root (usually)
-    /var/www/drupal.example.org/vendor/         Downloaded packages
-    ```
-
-    To work with `composer` and D8/D9, you must open a shell and navigate to the composer-root, e.g.
-
-    ```
-    cd /var/www/drupal.example.org
-    ```
-
-    **Note:** Drupal 9 and CiviCRM combinations require use of Composer 2.x.x
-
-If `composer` is properly installed, then these example commands will add CiviCRM to D8 or D9:
-
-```
-cd /var/www/drupal.example.org
-composer config extra.enable-patching true
-composer config minimum-stability dev
-composer require civicrm/civicrm-{core,packages,drupal-8}:'~5.42'
-```
-
-You should adjust the example path (`/var/www/drupal.example.org`) and the example version (`~5.42`) as needed.
-
-If you'd like more details to understand these commands or common errors, then please drill-down below.
-
-??? info "More detail: Enable patching"
-
-    A handful of packages used by CiviCRM require extra patch-files.
-
-    This is possible with the popular [cweagans/composer-patches](https://github.com/cweagans/composer-patches)
-    plugin. However, you must [opt-in to enable it](https://github.com/cweagans/composer-patches#allowing-patches-to-be-applied-from-dependencies).
-
-??? info "More detail: Package stability"
-
-    For any package in `composer`, there may be several available versions.  Some have an official, well-defined name
-    or number (e.g.  `v1.2.3`), and these are called "stable" versions.  Other versions have an interim name or number
-    (e.g. `v1.2.alpha1` or `dev-master`) indicating that additional testing is appropriate.
-
-    As a general rule, a new `composer` deployment will (and should) only use "stable" versions.  CiviCRM, too, is
-    generally built around "stable" dependencies.  However, in some exceptional cases, CiviCRM requires an interim
-    release of some libraries.
-
-    `composer.json` has two options which affect this: [minimum-stability](https://getcomposer.org/doc/04-schema.md#minimum-stability) sets an
-    absolute baseline, and [prefer-stable](https://getcomposer.org/doc/04-schema.md#prefer-stable) expresses a general preference.
-    Setting `minimum-stability` to `dev` enables to installation to proceed when there are exceptional cases. Setting
-    `prefer-stable` to `true` means that `composer` will use stable releases whenever it can.
-
-??? info "More detail: Compilation tasks"
-
-    When you first install or upgrade to CiviCRM 5.31+, `composer` will prompt for permission to run CiviCRM compilation tasks. We recommend that you select `[a]lways`.
-
-    If you wish to suppress the prompt, see [Composer Compile Plugin: Managing the root package (for site-builders)](https://github.com/civicrm/composer-compile-plugin/blob/master/doc/site-build.md).
-
-??? info "More detail: Required packages"
-
-    | Package | Description |
-    | -- | -- |
-    | `civicrm/civicrm-core` | The primary CiviCRM codebase |
-    | `civicrm/civicrm-drupal-8` | The integration module for CiviCRM and D8/D9 |
-    | `civicrm/civicrm-packages` | A collection of third-party/legacy packages used by CiviCRM |
-    | `civicrm/civicrm-asset-plugin` | A tool which automatically copies JS+CSS assets from CiviCRM to D8's `web/` folder - required by `civicrm/civicrm-drupal-8`|
-
-
-??? info "More detail: Version constraints"
-
-    The primary CiviCRM packages (`civicrm-core`, `civicrm-drupal-8`, `civicrm-packages`) have *synchronized*
-    versions. If one package is installed with v5.35, then the others should also be v5.35.
-
-    The following expression references the three packages and applies the same version-constraint to each:
-
-    ```
-    civicrm/civicrm-{core,packages,drupal-8}:'~5.42'
-    ```
-
-    The expression `~5.42` is a version-constraint.  It means that composer will install *approximately* v`5.42`.  It may install a newer patch-release (e.g.  `5.42.1`) or a newer minor-release (e.g.  `5.43.0`).  However, it will avoid major-releases (e.g. `6.0.0`).
-
-    Many `composer` tutorials rely on `composer` to automatically choose package-versions.
-    This is not recommended for CiviCRM and Drupal 8/9. Instead, package versioning should be explicit to ensure that:
-
-    1. CiviCRM versions remain synchronized.
-    2. CiviCRM stable releases are preferred over developmental releases.
-
-       <!-- honestly, that second thing is weird to me. If people get dev releases unintentionally, then they've
-        probably misconfigured/misunderstood their `composer.json`.  but given how consultancies blend upstream/public
-        pkgs and inhouse/private pkgs, and given how inhouse pkgs tend to have lax versioning, I can see how there'd
-        be pressure on D8 site-builders to make the configuration promiscuous -->
-
-<!--
-
-Optionally you can also require the [`cv`](https://github.com/civicrm/cv) command-line helper/interface for CiviCRM with:
-
-!!! note ""
-    **Composer installs of cv are currently broken** for now use the [manual install steps](https://github.com/civicrm/cv#download).
-
-* `composer require civicrm/cv` - This will place the cv binary in `./vendor/bin/cv` relative to your `composer.json` file.
-
--->
-
-## Get the translations {:#i18n}
-
-!!! warning "I18n & L10n on Drupal 8 or 9"
-    If installing with the GUI it is currently only possible to install CiviCRM in English (US) on Drupal 8/9. Adding the language files involves breaking with Composer best practices by writing the contents of the `civicrm-l10n` tarball into `vendor/civicrm/civicrm-core` or configuring the `civicrm.l10n` directory path after you install and placing the contents of the `civicrm-l10n` tarball into the configured directory.
-
-!!! error "Here Be Dragons..."
-    The following steps are provided as an example - they are not supported or widely tested and may leave your site in a broken state. You use them at your own risk. No. Seriously...
-
-    You will also have to repeat these steps **every** time you upgrade CiviCRM.
-
-The warnings above notwithstanding to install CiviCRM on Drupal 8/9 requires the following additional steps to prepare:
-
-1. Add [`cv`](https://github.com/civicrm/cv) to your Drupal 8/9 Site with: `composer require civicrm/cv` (**composer installs of cv are currently broken** for now use the [manual install steps](https://github.com/civicrm/cv#download).)
-1. Grab the localisation (*l10n*) files and unpack the `l10n` and `sql` subfolders into `vendor/civicrm/civicrm-core/`
-    * You'll find the l10n files on the [CiviCRM Download](https://civicrm.org/download) page or from `https://download.civicrm.org/civicrm-VERSION-l10n.tar.gz` where `VERSION` is a recent version of CiviCRM.
-
-    **Example:**
-
-    <!-- markdownlint-disable MD046 -->
-    ``` bash
-    wget https://download.civicrm.org/civicrm-5.35.0-l10n.tar.gz
-    tar -zxvf civicrm-5.35.0-l10n.tar.gz
-    cd civicrm/
-    cp -R l10n/ ../vendor/civicrm/civicrm-core/
-    cp -R sql/ ../vendor/civicrm/civicrm-core/
-    cd ..
-    rm -rf civicrm/
-    ```
-    <!-- markdownlint-enable MD046 -->
-
-1. If you've done this correctly, you should end up with `vendor/civicrm/civicrm-core/l10n` and `vendor/civicrm/civicrm-core/sql/`
-    * You can remove any languages you don't need by deleting them before copying the `l10n` and `sql` folders.
-
-Now we move onto [Installing CiviCRM - Command line install](#installing-commandline)
-
-<a name="installing"></a><a name="installing-gui"></a><a name="installing-commandline"></a>
-## Run the installer {:#installer}
-
-The installer verifies requirements, prepares the database, and initializes the configuration file. You may run the installer through the web interface (*which is simpler*) or the command-line interface (*which has more options*).
-
-??? example "Run installer via Drupal 8/9 web UI"
-
-    ??? warning "Installation options are very limited"
-
-        Currently there is no interactive installer for CiviCRM on Drupal 8/9, so the installer uses a firm set of defaults, e.g.
-
-        * *English Language Data*: It only installs data for US English. It cannot install data for other languages.
-        * *Shared Database*: It only uses the shared CMS database. It cannot use [a separate MySQL database for CiviCRM](../general/requirements.md#mysql-connection).
-        * *No Sample Data*: It only installs an empty, baseline dataset. It cannot install sample data.
-
-        If you need to configure any of these options, then use the command-line installer.
-
-    ??? warning "Write permissions"
-        It is critical that your web-server user is able to write to the `web/sites/default/` directory in order to create `civicrm.settings.php` and that you have an appropriate value for execution time(s) and memory limit(s) as any interruption to the installer can (and will) result in an unusable install and require remedial steps to correct or a full reinstall! By default on Drupal 8.8+ this directory path is not writable by default, before installing you should ensure you grant write access to your web server user. With, e.g: `sudo chmod u+w web/sites/default`.
-
-        For multisite installations you'll also need to ensure your web server user has write access to additional sites e.g: `sudo chmod u+w web/sites/site2.example.org`.
-
-    1. Login to your Drupal site with *administrator* permissions.
-    2. Navigate to **Manage >> Extend** or point your web browser to the following URL:
-
-        `https://example.org/admin/modules/`
-
-    3. Find "CiviCRM Core" and enable it (you can optionally enable "CiviCRM Theme" to set a theme just for CiviCRM.)
-    4. At the bottom, click "Install". (Note: This may take a few moments to execute.)
-
-??? example "Run installer via command-line"
-
-    CiviCRM has a command-line administration tool, `cv`, which can perform installation. For details, see [command-line installer](../general/cli-cv.md).
-
-## Review the permissions {:#permissions}
-
-!!! note ""
-    Drupal will create the `/files/` directory (and make it writeable), but only when saving `admin/settings`. Same holds for `/temp` directory, and a `/uploads/` directory in the CiviCRM module root. On a brand-new Drupal install, this directory may be missing. Even on an existing installation, if file permissions are not set properly, the directory may be missing. If enabling the **CiviCRM** module generates errors regarding the files directory, you must create it (writeable) manually.
-
-* Go to the CiviCRM dashboard to see the CiviCRM menus:
-`https://example.org/civicrm` (or `https://example.org/index.php?q=civicrm` if you don't have Clean URLs enabled)
-
-* Go to **Administer » User management » Permissions**
-
-* Verify that the Roles that you want to have access to CiviCRM have the appropriate permissions checked. CiviCRM is installed with a number of fixed permissions (such as "edit contacts" and "administer CiviCRM").
-
-<!-- markdownlint-disable MD046 -->
-!!! tip "Permissions for the Anonymous Role"
-    Many sites want anonymous visitors to have access to certain CiviCRM functionality. These permissions are enabled during installation for the Anonymous role. You should review them and modify if needed based on your requirements:
-
-    * **access all custom data** : If you plan on collecting "custom" data from visitors in standalone forms or as they make a contribution - enable this permission.
-    * **access CiviMail subscribe/unsubscribe pages** : If you are planning on using CiviMail, enable this permission to allow anonymous users to subscribe and unsubscribe from mailing lists via the web.
-    * **access uploaded files** : If you plan on allowing visitors to upload or view photos or other files - enable this permission.
-    * **make online contributions** : If you plan on soliciting online contributions from visitors, enable this permission for the "anonymous" role.
-    * **profile listings and forms** : If you plan on collecting name and address or other information from visitors, enable this permission for the "anonymous" role.
-    * **view event info** and **register for events** : If you plan to use CiviEvent and want to allow un-authenticated visitors to view event information and register for events online - enable these permissions for the "anonymous" role.
-    * **view event participants** : Enable this permission to allow anonymous users to access participant listing pages for events.
-<!-- markdownlint-enable MD046 -->
-
-## Synchronize the users {:#contacts-users}
-
-Once installed, CiviCRM keeps your Drupal Users synchronized with corresponding CiviCRM contact records. The 'rule' is that there will be a matched contact record for each Drupal user record. Conversely, only contacts who are authenticated users of your site will have corresponding Drupal user records.
-
-When CiviCRM is installed on top of an existing Drupal site, a special CiviCRM Administrative feature allows you to automatically create CiviCRM contacts for all existing Drupal users:
-
-* Login to your Drupal site with an administrator-level login
-* Click the **CiviCRM** link in the main navigation block
-* If your Drupal site makes use of the `db_prefix` setting (in `settings.php`), in the top bar click **Administer » System Settings » CMS Database Integration** , and update the box for the Drupal Users Table Name so that it includes the prefix.
-* Click **Administer** in the menu bar
-* Click **Users and Permissions** from the drop-down menu, then select **Synchronize Users to Contacts**
-
-## Review the checklist {:#checklist}
-
-The **Configuration Checklist** provides a convenient way to work through the settings that need to be reviewed and configured for a new site. You can link to this checklist from the installation success page and you can visit it at any time from **Administer** » **Administration Console** » **Configuration Checklist**.
-
-## Test-drive CiviCRM {:#test-drive}
-
-There should now be a **CiviCRM** link in your Drupal menu. Click that link and the CiviCRM Menu, Shortcuts, Search and New Individual Blocks should appear. You can now explore CiviCRM end-user features and begin configuring CiviCRM for your site/organization needs.
-
-## Addenda
-
-### TLS for MySQL
-
-If your MySQL database is hosted on a different machine than your web server, or if your host requires it, you can use TLS to encrypt the connection between the database and the web server.
-
-Full instructions on installing drupal are out of scope for this guide, but one method is to install into a test database first without MySQL encryption and then move the database to the live server and update settings.php to enable MySQL encryption.
-
-See [TLS for MySQL](../general/mysql_tls.md) for introductory concepts and the settings for the CiviCRM database. For the Drupal database you have several options for updating settings.php:
-
-1. The simplest, which doesn't require a client certificate, but doesn't verify the server certificate.
-
-    ``` php
-    $databases = array (
-      'default' =>
-      array (
-        'default' =>
-        array (
-          'database' => 'drupal',
-          'username' => 'dbuser',
-          'password' => 'dbpassword',
-          'host' => 'db435.examplehost.com',
-          'port' => '',
-          'driver' => 'mysql',
-          'prefix' => '',
-          'pdo' => array(
-              PDO::MYSQL_ATTR_SSL_CA => TRUE,
-              PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => FALSE,
-          ),
-        ),
-      ),
-    );
-    ```
-
-2. Verifies the server certificate, and doesn't require a client certificate.
-
-    !!! warning "Host name must match certificate name"
-        Note that the DATABASE SERVER certificate would have to have a CN (common name field) that matches exactly the `host` you are using in `$databases['default']['default']['host']`. So if the host is `db435.examplehost.com`, then that must be the name on the SERVER certificate.
-
-    ``` php
-    'pdo' => array(
-        // A certificate authority bundle.
-        // If you are using a self-signed server certificate in a development
-        // or testing environment, then this would be the same as the server
-        // certificate.
-        PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca.crt',
-    ),
-    ```
-
-3. Client certificate/key pair (not self-signed), and do not verify the server certificate.
-
-    ``` php
-    'pdo' => array(
-        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => FALSE,
-        PDO::MYSQL_ATTR_SSL_KEY => '/path/to/your.key',
-        PDO::MYSQL_ATTR_SSL_CERT => '/path/to/your.crt',
-    ),
-    ```
-
-4. Client certificate/key pair (could be self-signed), and verify the server certificate.
-
-    ``` php
-    'pdo' => array(
-        // The SSL_CA can be the same as your.crt if self-signed, but note
-        // that it would also have to be a certificate authority for the
-        // server certificate. Self-signed would only be for local
-        // development testing.
-        PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca.crt',
-        PDO::MYSQL_ATTR_SSL_KEY => '/path/to/your.key',
-        PDO::MYSQL_ATTR_SSL_CERT => '/path/to/your.crt',
-    ),
-    ```
-
-### Integration modules {:#integration-modules}
-
-__Webform CiviCRM module__
-
-* [Project page on Drupal.org](https://www.drupal.org/project/webform_civicrm)
-* [Documentation on CiviCRM.org](https://docs.civicrm.org/webform-civicrm/en/latest)
-
-__CiviCRM Entity module__
-
-* [Project page on Drupal.org](https://www.drupal.org/project/civicrm_entity)
-
-### Troubleshooting {:#troubleshooting}
-
-* Review the [Troubleshooting](../general/troubleshooting.md) page for help with problems you may encounter during the installation.
diff --git a/docs/drupal9/index.md b/docs/drupal9/index.md
index c51a9afb081f018a2468aa26d999d09ac5ea7216..5049e948a1bfa204d0f4d40773ed56cf7d620949 100644
--- a/docs/drupal9/index.md
+++ b/docs/drupal9/index.md
@@ -1,11 +1,7 @@
-!!! warning "Experimental documentation"
-
-    This document discusses a new deployment environment. It is closesly based on the Drupal 8
-    document, but it has not been carefully reviewed/tested. Consequently, it is not linked in
-    the main menu.
-
 ???+ tldr "About this document"
 
+    CiviCRM follows the Drupal community's decisions around which versions of Drupal receive support. Drupal 8 is no longer supported, but Drupal 7 and Drupal 9 are supported. Drupal 10's release date is targeted for December 2022 (as of August 2022), and the CiviCRM community anticipates providing support for it around the time of its release.
+
     This guide covers standard installation of CiviCRM on an existing Drupal 9 site. It assumes that you previously completed these tasks:
 
     1. Install Drupal 9, and...
@@ -72,6 +68,7 @@ If `composer` is properly installed, then these example commands will add CiviCR
 ```
 cd /var/www/d9.example.org
 composer config extra.enable-patching true
+composer config minimum-stability dev
 composer require civicrm/civicrm-{core,packages,drupal-8}:'~5.42'
 ```
 
@@ -86,6 +83,21 @@ If you'd like more details to understand these commands or common errors, then p
     This is possible with the popular [cweagans/composer-patches](https://github.com/cweagans/composer-patches)
     plugin. However, you must [opt-in to enable it](https://github.com/cweagans/composer-patches#allowing-patches-to-be-applied-from-dependencies).
 
+??? info "More detail: Package stability"
+
+    For any package in `composer`, there may be several available versions.  Some have an official, well-defined name
+    or number (e.g.  `v1.2.3`), and these are called "stable" versions.  Other versions have an interim name or number
+    (e.g. `v1.2.alpha1` or `dev-master`) indicating that additional testing is appropriate.
+
+    As a general rule, a new `composer` deployment will (and should) only use "stable" versions.  CiviCRM, too, is
+    generally built around "stable" dependencies.  However, in some exceptional cases, CiviCRM requires an interim
+    release of some libraries.
+
+    `composer.json` has two options which affect this: [minimum-stability](https://getcomposer.org/doc/04-schema.md#minimum-stability) sets an
+    absolute baseline, and [prefer-stable](https://getcomposer.org/doc/04-schema.md#prefer-stable) expresses a general preference.
+    Setting `minimum-stability` to `dev` enables to installation to proceed when there are exceptional cases. Setting
+    `prefer-stable` to `true` means that `composer` will use stable releases whenever it can.
+
 ??? info "More detail: Compilation tasks"
 
     When you first install or upgrade to CiviCRM 5.31+, `composer` will prompt for permission to run CiviCRM compilation tasks. We recommend that you select `[a]lways`.
@@ -112,9 +124,7 @@ If you'd like more details to understand these commands or common errors, then p
     civicrm/civicrm-{core,packages,drupal-8}:'~5.42'
     ```
 
-    The expression `~5.42` is a version-constraint.  It means that composer will install *approximately* v`5.42`.  It may
-    install a newer patch-release (e.g.  `5.42.1`) or a newer minor-release (e.g.  `5.43.0`).  However, it will avoid
-    major-releases (e.g. `6.0.0`).
+    The expression `~5.42` is a version-constraint.  It means that composer will install *approximately* v`5.42`.  It may install a newer patch-release (e.g.  `5.42.1`) or a newer minor-release (e.g.  `5.43.0`).  However, it will avoid major-releases (e.g. `6.0.0`).
 
     Many `composer` tutorials rely on `composer` to automatically choose package-versions.
     This is not recommended for CiviCRM/D9. Instead, package versioning should be explicit to ensure that:
@@ -191,7 +201,7 @@ The installer verifies requirements, prepares the database, and initializes the
         If you need to configure any of these options, then use the command-line installer.
 
     ??? warning "Write permissions"
-        It is critical that your web-server user is able to write to the `web/sites/default/` directory in order to create `civicrm.settings.php` and that you have an appropriate value for execution time(s) and memory limit(s) as any interruption to the installer can (and will) result in an unusable install and require remedial steps to correct or a full reinstall! By default on Drupal 8.8+ this directory path is not writable by default, before installing you should ensure you grant write access to your web server user. With, e.g: `sudo chmod u+w web/sites/default`.
+        It is critical that your web-server user is able to write to the `web/sites/default/` directory in order to create `civicrm.settings.php` and that you have an appropriate value for execution time(s) and memory limit(s) as any interruption to the installer can (and will) result in an unusable install and require remedial steps to correct or a full reinstall! By default on Drupal 9 this directory path is not writable by default, before installing you should ensure you grant write access to your web server user. With, e.g: `sudo chmod u+w web/sites/default`.
 
         For multisite installations you'll also need to ensure your web server user has write access to additional sites e.g: `sudo chmod u+w web/sites/site2.example.org`.
 
@@ -200,8 +210,8 @@ The installer verifies requirements, prepares the database, and initializes the
 
         `https://example.org/admin/modules/`
 
-    3. Find "CiviCRM" and enable it.
-    4. At the bottom, click "Save Configuration". (Note: This may take a few moments to execute.)
+    3. Find "CiviCRM Core" and enable it (you can optionally enable "CiviCRM Theme" to set a theme just for CiviCRM.)
+    4. At the bottom, click "Install". (Note: This may take a few moments to execute.)
 
 ??? example "Run installer via command-line"
 
@@ -260,7 +270,7 @@ If your MySQL database is hosted on a different machine than your web server, or
 
 Full instructions on installing drupal are out of scope for this guide, but one method is to install into a test database first without MySQL encryption and then move the database to the live server and update settings.php to enable MySQL encryption.
 
-See [TLS for MySQL](/general/mysql_tls/) for introductory concepts and the settings for the CiviCRM database. For the Drupal database you have several options for updating settings.php:
+See [TLS for MySQL](../general/mysql_tls.md) for introductory concepts and the settings for the CiviCRM database. For the Drupal database you have several options for updating settings.php:
 
 1. The simplest, which doesn't require a client certificate, but doesn't verify the server certificate.
 
diff --git a/docs/general/cli-cv.md b/docs/general/cli-cv.md
index de6ee686d7cc6033fca71859d039fded817cf571..f8678b30aea6bd03b293ff440a80d90d098cfa44 100644
--- a/docs/general/cli-cv.md
+++ b/docs/general/cli-cv.md
@@ -6,7 +6,7 @@
 
     1. Install a supported CMS
     1. [Review the CiviCRM requirements](../general/requirements.md)
-    1. Download the CiviCRM code. (See "*Get the code*" for [Backdrop](../backdrop/index.md#download), [Drupal 7](../drupal7/index.md#download), [Drupal 8](../drupal8/index.md#download), [Drupal 9](../drupal8/index.md#download), or [WordPress](../wordpress/index.md#download)).
+    1. Download the CiviCRM code. (See "*Get the code*" for [Backdrop](../backdrop/index.md#download), [Drupal 7](../drupal7/index.md#download), [Drupal 9](../drupal9/index.md#download), or [WordPress](../wordpress/index.md#download)).
 
 ??? tldr "Limitations"
 
diff --git a/docs/general/requirements.md b/docs/general/requirements.md
index bd35551f6932dafd8d72be5e3af099495fa79305..8b1b8df9df79dc2fe78f4e12a7bc7b3931fbcaba 100644
--- a/docs/general/requirements.md
+++ b/docs/general/requirements.md
@@ -9,7 +9,7 @@ If you are curious what technologies other organizations are using to run CiviCR
 A recommended server environment should typically meet these guidelines:
 
 * __Operating system__: Linux
-* __CMS__: Backdrop, Drupal 7, Drupal 8/9, Joomla, or WordPress
+* __CMS__: Backdrop, Drupal 7, Drupal 9, Joomla, or WordPress
 * __PHP__: 7.2, 7.3, 7.4 -- with configuration and extension requirements. Php 8 is supported from 5.40.
 * __MySQL__: MySQL 5.7.5+ or MariaDB 10.2+ -- with configuration requirements
 
@@ -153,7 +153,7 @@ Your MySQL version should be **5.7.5 or greater** or MariaDB **10.2 or greater**
 
 #### MySQL 8
 
-As of version 5.24 CiviCRM has been shown to be able to run on MySQL 8 through the execution of our test matrix. All of the Content Management Systems support MySQL 8, CiviCRM MySQL 8 support was being tracked in this [issue for MySQL 8 support](https://lab.civicrm.org/dev/core/issues/392). [Backdrop supports MySQL 8 as of 1.17.2](https://github.com/backdrop/backdrop/releases/tag/1.17.2), [Drupal 7 as of 7.76 Supports MySQL 8](https://www.drupal.org/node/3185889), [Drupal 8](https://www.drupal.org/docs/8/system-requirements/database-server) [supports MySQL 8 as of version 8.6](https://www.drupal.org/project/drupal/issues/2966523), All versions of [Drupal 9](https://www.drupal.org/docs/9/system-requirements/database-server) support MySQL 8, Current versions of WordPress and [Joomla](https://docs.joomla.org/Joomla_and_MySQL_8) appear to be compatible with MySQL 8.
+As of version 5.24 CiviCRM has been shown to be able to run on MySQL 8 through the execution of our test matrix. All of the Content Management Systems support MySQL 8, CiviCRM MySQL 8 support was being tracked in this [issue for MySQL 8 support](https://lab.civicrm.org/dev/core/issues/392). [Backdrop supports MySQL 8 as of 1.17.2](https://github.com/backdrop/backdrop/releases/tag/1.17.2), [Drupal 7 as of 7.76 Supports MySQL 8](https://www.drupal.org/node/3185889), All versions of [Drupal 9](https://www.drupal.org/docs/system-requirements/database-server-requirements) support MySQL 8, Current versions of WordPress and [Joomla](https://docs.joomla.org/Joomla_and_MySQL_8) appear to be compatible with MySQL 8.
 
 ### MySQL Connection {:#mysql-connection}
 
diff --git a/docs/general/unicode_pdf.md b/docs/general/unicode_pdf.md
index 975a5d53db2b62e46631667e3051c5b8f3c8467b..57893b904b36d971825da2b5d1b619b3cb07cd52 100644
--- a/docs/general/unicode_pdf.md
+++ b/docs/general/unicode_pdf.md
@@ -2,7 +2,7 @@
 
 There are certain places in CiviCRM where PDF output will contain `?` instead of the appropriate character because the DejaVu unicode font files have been removed from the DOMPDF library. For example CiviCRM uses DOMPDF when producing PDF copies of CiviReports, but it uses a different library (TCPDF) for Mailing Labels, which does have the DejaVu fonts.
 
-In Drupal 8/9, the entire DOMPDF library is downloaded during install, so it will work with most unicode characters as-is. But if you need CJK characters DejaVu does not contain those, so you will need to install another font file such as SimSun using the steps below.
+In Drupal 9, the entire DOMPDF library is downloaded during install, so it will work with most unicode characters as-is. But if you need CJK characters DejaVu does not contain those, so you will need to install another font file such as SimSun using the steps below.
 
 Note when testing to see if you've succeeded, use letters that are entirely outside the character set included in the basic font files, e.g. use cyrillic letters such as `д`. Several letters like `ü` will work either way so aren't a good test.
 
diff --git a/docs/planning/cms.md b/docs/planning/cms.md
index b254b7e49f57d5967f021d129c78737fecf9012d..fc23ece27787b30af874e65f4a9ff002ca4188ac 100644
--- a/docs/planning/cms.md
+++ b/docs/planning/cms.md
@@ -4,7 +4,7 @@ CiviCRM works with several popular open source Content Management Systems (CMS).
 
 * Backdrop CMS
 * Drupal 7
-* Drupal 8
+* Drupal 9
 * Joomla
 * WordPress
 
@@ -29,8 +29,8 @@ Support for running CiviCRM with WordPress was added in 2012, which allowed Word
 Broadly there are some differences which arise because of distinctive features/norms in each CMS community, e.g.
 
 * In WordPress, it's pretty common to embed content in your web-pages using short-codes. CiviCRM has several short-codes in WP.
-* In Backdrop CMS/Drupal 7/Drupal 8, it's pretty common to embed content in your web-pages using blocks. CiviCRM has several blocks in Drupal.
-* In Backdrop CMS/Drupal 7/Drupal 8, CiviCRM makes use of the CMS's "roles" and "permissions" using the CMS's interfaces and approaches, and there are modules to synchronize CiviCRM groups and membership types to them.
+* In Backdrop CMS/Drupal 7/Drupal 9, it's pretty common to embed content in your web-pages using blocks. CiviCRM has several blocks in Drupal.
+* In Backdrop CMS/Drupal 7/Drupal 9, CiviCRM makes use of the CMS's "roles" and "permissions" using the CMS's interfaces and approaches, and there are modules to synchronize CiviCRM groups and membership types to them.
 * In Joomla/WordPress, "roles" and "permissions" can also be managed using the CMS's interfaces and approaches, and there are plugins to synchronize groups and membership types to them.
 
 ## Installation Process
@@ -58,7 +58,7 @@ You may also choose a CMS because you already know how to use it or it is alread
 
 **Drupal** is the most flexible and has the best integration with CiviCRM. If you have complex CMS needs or envisage a lot of interaction between users on your website and your CRM, then Drupal might be the CMS for you. The main negative is that this flexibility makes it harder for new site builders to get to grips with.
 
-**Backdrop CMS** is very similar to Drupal 7, with many improvements making it slick and lightweight. It started as a fork (that is, a copy) of Drupal 7, aimed at users for whom Drupal 8 was likely to be too complex either to use, or to migrate to from Drupal 7. Drupal 7 modules and themes require modifications to work with Backdrop CMS, though many have already been ported and are actively maintained.
+**Backdrop CMS** is very similar to Drupal 7, with many improvements making it slick and lightweight. It started as a fork (that is, a copy) of Drupal 7, aimed at users for whom Drupal 9 was likely to be too complex either to use, or to migrate to from Drupal 7. Drupal 7 modules and themes require modifications to work with Backdrop CMS, though many have already been ported and are actively maintained.
 
 **Joomla** isn't as popular as WordPress, though it is more popular than Drupal. Joomla is easier to learn than Drupal. The amount of integration available is lower than then when using Drupal.
 
diff --git a/mkdocs.yml b/mkdocs.yml
index 0508b8669de5691edb0e38a7bd686371f7a2f827..bceaf9557da2aaa99bca0b0eae98dd6345c9369e 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -29,7 +29,7 @@ nav:
   - Home: index.md
   - Install CiviCRM on Backdrop: backdrop/index.md
   - Install CiviCRM on Drupal 7: drupal7/index.md
-  - 'Install CiviCRM on Drupal 8/9': drupal8/index.md
+  - 'Install CiviCRM on Drupal 9': drupal9/index.md
   - Install CiviCRM on Joomla: joomla/index.md
   - Install CiviCRM on WordPress: wordpress/index.md 
   - General: