diff --git a/website/docs/components/app-side-nav/index.md b/website/docs/components/app-side-nav/index.md
new file mode 100644
index 0000000000..b77ca9065a
--- /dev/null
+++ b/website/docs/components/app-side-nav/index.md
@@ -0,0 +1,38 @@
+---
+title: App Side Nav
+description: Used as a contextual navigation for subpages within an application.
+caption: A side navigation menu that provides access to subpages within a product or application.
+links:
+ figma:
+ github: https://github.com/hashicorp/design-system/tree/main/packages/components/src/components/hds/app-side-nav
+related: ['components/side-nav', 'components/breadcrumb','components/tabs','layouts/app-frame','components/app-header']
+previewImage: assets/illustrations/components/app-side-nav.jpg
+navigation:
+ hidden: false
+ keywords: ['navigation', 'side navigation', 'sidenav', 'sidebar']
+status:
+ added: 4.10.0
+---
+
+
+ @include "partials/guidelines/overview.md"
+ @include "partials/guidelines/guidelines.md"
+
+
+
+ @include "partials/code/how-to-use.md"
+ @include "partials/code/component-api.md"
+
+
+
+ @include "partials/specifications/anatomy.md"
+
+
+
+ @include "partials/accessibility/accessibility.md"
+
+
+
+ @include "partials/version-history/4.10.0.md"
+
+
diff --git a/website/docs/components/app-side-nav/partials/accessibility/accessibility.md b/website/docs/components/app-side-nav/partials/accessibility/accessibility.md
new file mode 100644
index 0000000000..ad2705df1b
--- /dev/null
+++ b/website/docs/components/app-side-nav/partials/accessibility/accessibility.md
@@ -0,0 +1,15 @@
+## Conformance rating
+
+Conformant
+
+When used as recommended, there should not be any WCAG conformance issues with this component.
+
+## Applicable WCAG Success Criteria
+
+This section is for reference only. This component intends to conform to the following WCAG Success Criteria:
+
+
+
+---
+
+
diff --git a/website/docs/components/app-side-nav/partials/code/component-api.md b/website/docs/components/app-side-nav/partials/code/component-api.md
new file mode 100644
index 0000000000..a9ac3c26fa
--- /dev/null
+++ b/website/docs/components/app-side-nav/partials/code/component-api.md
@@ -0,0 +1,323 @@
+## Component API
+
+### App Side Nav
+
+This is the full-fledged component (responsive and animated).
+
+
+ " @type="named block">
+ A named block where the content for the “header” area of the App Side Nav is rendered. The `AppSideNav::Header` component should be added here. It yields the value of `isMinimized` too.
+
+ When the App Side Nav is paired with the [`Hds::AppHeader`](/components/app-header) component, the `<:header>` block normally doesn’t need to be included.
+
+ " @type="named block">
+ A named block where the content for the “body” or main content of the App Side Nav is rendered. The `AppSideNav::List` and `AppSideNav::PortalTarget` components should be added here when used. It yields the value of `isMinimized` too.
+
+ " @type="named block">
+ A named block where the content for the “footer” section of the App Side Nav is rendered. It yields the value of `isMinimized` too.
+
+ When the App Side Nav is paired with the [`Hds::AppHeader`](/components/app-header) component, you may not need to include the `<:footer>` block or related content.
+
+
+ Controls whether the App Side Nav is responsive to viewport changes. It can be programmatically turned off by passing `false`.
+
+ Notice: even if the `@isResponsive` parameter is set to false, some JavaScript is still executed in the background, and event listeners are attached to some DOM elements (even if this functionality is not used).
+
+
+ Controls whether the App Side Nav is collapsible on large viewports. When this argument and `isResponsive` are set to `true`, a toggle button will permanently be rendered to collapse and expand the App Side Nav.
+
+ Notice: if `@isResponsive` is set to false, this argument has no effect.
+
+
+ Controls if the App Side Nav is rendered collapsed or expanded when initialized. This allows an application to preserve the collapsed/expanded state across sessions. After the initial render, this argument is altered based on user interactions (collapse/expand the App Side Nav or resize the window) and it is not a suitable way of controlling the App Side Nav state from outside after render (it’s an internal state).
+
+
+ Accepts a localized string; the fallback is set to `Open menu` if the menu is closed, and `Close menu` if the menu is open.
+
+
+ Callback function invoked when the `AppSideNav` is collapsed or expanded. The function receives a boolean argument stating if the `AppSideNav` is minimized on not.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### AppSideNav::Base
+
+This is the basic component (layout only).
+
+
+ " @type="named block">
+ A named block for rendering content outside of the "header/body/footer" containers of the App Side Nav.
+
+ " @type="named block">
+ A named block where the content for the “header” area of the App Side Nav is rendered. The `AppSideNav::Header` component should be added here.
+
+ " @type="named block">
+ A named block where the content for the “body” or main content of the App Side Nav is rendered. The `AppSideNav::List` and `AppSideNav::PortalTarget` components should be added here when used.
+
+ " @type="named block">
+ A named block where the content for the “footer” section of the App Side Nav is rendered.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### AppSideNav::Header
+
+
+ " @type="named block">
+ A named block where the main product logo linked to your app’s home page will be rendered. The `AppSideNav::HomeLink` component should be added here.
+
+ " @type="named block">
+ A named block where the header “action” components will be rendered. Typically `Dropdown` components and/or `AppSideNav::IconButton` components will be added here.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### AppSideNav::Header::HomeLink
+
+The `AppSideNav::Header::HomeLink` component.
+
+It internally uses the [`Hds::Interactive`](/utilities/interactive) utility component. For more details about this component API, please refer to [its documentation page](/utilities/interactive?tab=code#component-api).
+
+
+
+ Used to show an icon. Any [icon](/icons/library) name is accepted. Typically you would add the icon name for your product.
+
+
+ Used to specify an optional custom color provided as any valid CSS color. For more details on acceptable values, see the [how to use the Icon's `color` argument](/components/icon?tab=code#color). If unspecified, it will use the SideNav’s default white text color.
+
+
+ URL parameter that’s passed down to the `` element.
+
+
+ This controls if the `` link is external. For security reasons, we add the `target="_blank"` and `rel="noopener noreferrer"` attributes to it by default.
+
+
+ Parameters that are passed down as arguments to the ``/`` components.
+
+
+ This controls if the “LinkTo” is external to the Ember engine, in which case it will use a `` for the `@route`.
+
+
+ The value of the aria-label. If no text value is defined an error will be thrown.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### SideNav::Header::IconButton
+
+!!! Warning
+
+The `AppSideNav::Header::IconButton` subcomponent is now deprecated. Use the `Hds::Button` component with the `isIconOnly` variant instead.
+
+* [Example usage of an Icon-only Button](/components/app-sidenav?tab=code#actions) within the App Side Nav `:actions` block.
+* [Icon-only Button documentation](/components/button?tab=code#icon-only-button)
+
+!!!
+
+The `AppSideNav::Header::IconButton` component.
+
+It internally uses the [`Hds::Interactive`](/utilities/interactive) utility component. For more details about this component API, please refer to [its documentation page](/utilities/interactive?tab=code#component-api).
+
+
+
+ Used to show an icon. Any [icon](/icons/library) name is accepted.
+
+
+ URL parameter that’s passed down to the `` element.
+
+
+ This controls if the `` link is external. For security reasons, we add the `target="_blank"` and `rel="noopener noreferrer"` attributes to it by default.
+
+
+ Parameters that are passed down as arguments to the ``/`` components.
+
+
+ This controls if the “LinkTo” is external to the Ember engine, in which case it will use a `` for the `@route`.
+
+
+ The value of the `aria-label`. If no text value is defined an error will be thrown.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### AppSideNav::PortalTarget
+
+The `AppSideNav::PortalTarget` component is used to receive some content "transported" through the portal and inject it into its position in the DOM tree. For details about how portals work refer to the [`ember-stargate` documentation](https://github.com/simonihmig/ember-stargate).
+
+!!! Info
+
+The component is implemented to support [multiple portals](https://github.com/simonihmig/ember-stargate#portaltarget).
+
+!!!
+
+
+
+ The unique name used by [`ember-stargate`](https://github.com/simonihmig/ember-stargate#usage) to identify the portal. If provided, the same name must be used in the `AppSideNav::Portal` to point to the correct target.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### AppSideNav::Portal
+
+The `AppSideNav::Portal` component is used to "transport" some content through the portal into the target element. For details about how portals work refer to the [`ember-stargate` documentation](https://github.com/simonihmig/ember-stargate).
+
+The content yielded in the component is injected inside a `Hds::SideNav::List` element (hence all its sub-components available as yielded components).
+
+
+ " @type="yielded component">
+ Sub-components yielded from `Hds::SideNav::List` (see below).
+
+
+ The unique name used by [`ember-stargate`](https://github.com/simonihmig/ember-stargate#usage) to identify the target portal. If provided, the same name must be used in the `AppSideNav::PortalTarget` to identify it.
+
+
+ The value of the `aria-label` that is applied to the `
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+### AppSideNav::List
+
+The `AppSideNav::List` component is used to wrap and contain the `AppSideNav::List::Title`, `AppSideNav::List::Link`, `AppSideNav::List::BackLink` and `AppSideNav::List::Item` components, exposed as yielded contextual components.
+
+
+ " @type="yielded component">
+ A generic container yielded as contextual component. Its content is injected before the `
` list of items (but inside the `
+ " @type="yielded component">
+ The generic `AppSideNav::List::Item` component (see below).
+
+ " @type="yielded component">
+ The `AppSideNav::List::BackLink` component (see below).
+
+ " @type="yielded component">
+ The `AppSideNav::List::Title` component (see below).
+
+ " @type="yielded component">
+ The `AppSideNav::List::Link` component (see below).
+
+ " @type="yielded component">
+ A generic container yielded as contextual component. Its content is injected after the `
` list of items (but inside the `
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+#### Contextual components
+
+##### [L].Item
+
+The `AppSideNav::List::Item` component, yielded as contextual component.
+
+It can be used to contain generic content.
+
+
+
+ Elements passed as children are yielded as inner content of an `
` HTML element.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+##### [L].BackLink
+
+The `AppSideNav::List::BackLink` component, yielded as contextual component.
+
+It internally uses the [`Hds::Interactive`](/utilities/interactive) utility component. For more details about this component API, please refer to [its documentation page](/utilities/interactive?tab=code#component-api).
+
+
+
+ The text content for the `AppSideNav::List::BackLink` component.
+
+
+ URL parameter that’s passed down to the `` element.
+
+
+ This controls if the `` link is external. For security reasons, we add the `target="_blank"` and `rel="noopener noreferrer"` attributes to it by default.
+
+
+ Parameters that are passed down as arguments to the ``/`` components.
+
+
+ This controls if the “LinkTo” is external to the Ember engine, in which case it will use a `` for the `@route`.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+##### [L].Title
+
+The `AppSideNav::List::Title` component, yielded as contextual component.
+
+Used to display a title for related `AppSideNav::List::Link` components.
+
+
+
+ Elements passed as children are yielded as inner content of the element.
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
+
+##### [L].Link
+
+The `AppSideNav::List::Link` component, yielded as contextual component.
+
+It internally uses the [`Hds::Interactive`](/utilities/interactive) utility component. For more details about this component API, please refer to [its documentation page](/utilities/interactive?tab=code#component-api).
+
+
+
+ Used to show an icon. Any [icon](/icons/library) name is accepted.
+
+
+ The text content for the `AppSideNav::List::Link` component.
+
+
+ Displays an optional `Badge`. Accepts the text value that should go in [Badge](/components/badge).
+
+
+ Displays an optional `BadgeCount` indicator. Accepts the text value that should go in [Badge Count](/components/badge-count).
+
+
+ Indicates the existence of sub-item links. If set to `true`, displays a right aligned `chevron-right` icon.
+
+
+ If set to `true`, adds the class name of “active” to the rendered interactive element. Used to indicate the currently active page Link.
+
+
+ URL parameter that’s passed down to the `` element.
+
+
+ This controls if the `` link is external. For security reasons, we add the `target="_blank"` and `rel="noopener noreferrer"` attributes to it by default. If set to `true`, displays a right aligned “external-link” icon.
+
+
+ Parameters that are passed down as arguments to the ``/`` components.
+
+
+ This controls if the “LinkTo” is external to the Ember engine, in which case it will use a `` for the `@route`.
+
+
+ Elements passed as children are yielded as inner content of the link (after the leading icon/text/badge/count block, before the trailing icon).
+
+
+ This component supports use of [`...attributes`](https://guides.emberjs.com/release/in-depth-topics/patterns-for-components/#toc_attribute-ordering).
+
+
diff --git a/website/docs/components/app-side-nav/partials/code/how-to-use.md b/website/docs/components/app-side-nav/partials/code/how-to-use.md
new file mode 100644
index 0000000000..627c516dee
--- /dev/null
+++ b/website/docs/components/app-side-nav/partials/code/how-to-use.md
@@ -0,0 +1,507 @@
+
+This section provides in-depth instructions on how consumers can use the **full-featured `Hds::AppSideNav`** component to build a “standard” sidebar navigation with responsive behavior, animations/transitions, support for portals, etc.
+
+It also provides generic guidance on how to use the **layout-only `Hds::AppSideNav::Base`** component to build a customized sidebar navigation (if that would be necessary).
+
+Given the complexity and level of customization that an application’s navigation may require, it is not possible to cover all the possible use cases in this documentation. For this reason, if you need to implement a navigation element using this component, [contact the Design Systems Team](/about/support) for support.
+
+!!! Insight
+
+The App Side Nav component is intended to be used in combination with the [`Hds::AppHeader`](/components/app-header) and [`Hds::AppFrame`](/layouts/app-frame) components:
+
+- App Header takes care of global and utility navigation
+- App Frame provides a top-level layout for the application’s page, but is agnostic of what the actual content is and what dimensions it has.
+- App Side Nav takes care of providing the visual elements used to build page-level in context navigation for the application but is agnostic of where it’s used (even though it has intrinsic sizing).
+
+!!!
+
+## Full-featured component
+
+The `Hds::AppSideNav` component provides a set of advanced features out of the box: layout, content (base elements + portals), responsiveness, accessibility.
+
+### Layout
+
+The App Side Nav component provides a top-level layout for the sidebar navigation.
+
+It exposes three “slots” (named blocks) where the consumers can yield the navigation content and add business logic to control this content: `<:header>`, `<:body>` and `<:footer>`.
+
+**Note:** Only the :body named block is needed in most use cases.
+
+```handlebars
+
+```
+
+It also comes with a set of CSS properties that automatically set the App Side Nav in a fixed position on the left of the application frame, and force it to occupy the full height of the window (the App Side Nav “header” and “footer” are fixed, while its “body” is scrollable if the content overflows the available space).
+
+### Content
+
+#### Header (`<:header>`)
+
+TODO: Should :header block be simplified or removed entirely?
+
+Typically the `Hds::AppSideNav::Header` sub-component should be added here if used. It provides two slots (named blocks):
+
+- the `<:logo>` block should contain the `` (but it could contain also custom content, if necessary)
+- the `<:actions>` block should contain optional top-level actions (eg. global search, user menu, help menu, etc.)
+
+Note: When the App Side Nav is paired with the [`Hds::AppHeader`](/components/app-header) component, the `<:header>` slot normally is not used.
+
+```handlebars
+
+```
+
+##### Logo
+
+To add a logo to the "header" of the App Side Nav use the `` sub-component.
+
+It requires a value for the `@icon` and `@ariaLabel` arguments:
+
+```handlebars
+
+```
+
+The HomeLink is built on top of the [`Hds::Interactive` component](/utilities/interactive), so it accepts all its routing arguments (eg. `@href`, `@route`, `@query`, `@model(s)`, etc.).
+
+Refer to the [Component API section](/components/app-sidenav?tab=code#sidenavheaderhomelink) for details.
+
+##### Actions
+
+This block is intended to contain top-level actionable elements like dropdowns and buttons.
+
+Here is an example of some possible actions:
+
+```handlebars
+
+```
+
+Standard HDS [`Button`](/components/button) and [`Dropdown`](/components/dropdown) components can be used within the App Side Nav where needed. We recommend setting `enableCollisionDetection` to `true` for each Dropdown component used within the App Side Nav.
+
+You can also add custom elements to the `<:actions>` block, if these don’t cover your specific needs.
+
+!!! Info
+
+The “actions” block is automatically faded in/out whenever the App Side Nav transition between minimized/maximized states (see [Responsiveness](#responsiveness) below for details).
+
+!!!
+
+#### Body (`<:body>`)
+
+The `<:body>` block is where the actual navigation lives. It’s an agnostic container, in which consumers _in principle_ can add anything they want, in the order they want.
+
+That said, to create consistent experiences for our end-users, it’s very likely that the choice of what component to use will fall on one of these two options:
+
+- one (or more) **`Hds::AppSideNav::List`** components - this is the case when the navigation is very simple, with a single depth level, or when there’s a need to build a customized/non-standard navigation logic
+- a combination of **`Hds::AppSideNav::Portal`** / **`Hds::AppSideNav::Portal::Target`** components - this is the preferable solution for complex multi-level navigations that need dynamic injection of content via “portals”
+
+#### List (`AppSideNav::List`)
+
+The `AppSideNav::List` component (and its sub-components) are the fundamental building blocks of the navigation. It generates a `