diff --git a/docs/virtualcolumn.md b/docs/virtualcolumn.md
new file mode 100644
index 00000000000..da2a8c7ce29
--- /dev/null
+++ b/docs/virtualcolumn.md
@@ -0,0 +1,126 @@
+---
+id: virtualcolumn
+title: VirtualColumn 🧪
+---
+
+import ExperimentalAPIWarning from './\_experimental-api-warning.mdx';
+
+
+
+`VirtualColumn` is a column layout component that lazily mounts and virtualizes items.
+
+```tsx
+
+
+ {(item, key) => {item.value}}
+
+
+```
+
+A `ScrollView` ancestor is required for virtualized and scrollable items. If there is no ancestor `ScrollView`, the items will always be rendered as though they are within the viewport.
+
+
+
+### Item Rendering
+
+`VirtualColumn` expects an immutable `VirtualCollection` of items and an `itemsToKey` function.
+
+When `VirtualColumn` renders an item, it calls the `children` render function once and memoizes the result. If an item changes, a new item should be provided with the same key. Items with identical keys, as returned by `itemsToKey`, will update the same React element.
+
+During rendering, `VirtualColumn` wraps each item in a `VirtualView` for virtualization.
+
+### Lazy Mounting
+
+`VirtualColumn` will lazily render list items to fill the viewport and prerender regions of the VirtualView. It will lazily mount items at the bottom of the list.
+
+### Composability
+
+`VirtualColumn` supports nesting of multiple `VirtualColumn` components and other `VirtualCollectionView` lists.
+
+
+
+## Props
+
+### `children`
+
+| Type |
+| ------ |
+| `md ({item: object, key: string}) => [React Node](react-node)`|
+
+A render function that maps an item to a React element. The return value is memoized so the function should be deterministic.
+
+The function is called with the `item` to be mounted and the `key` as returned from `itemToKey`.
+
+### `items`
+
+| Type |
+| -------------------------------------------------- |
+| `md [VirtualCollection](#virtualcollection)