diff --git a/docs/01-index.mdx b/docs/01-index.mdx
new file mode 100644
index 000000000..29151ed01
--- /dev/null
+++ b/docs/01-index.mdx
@@ -0,0 +1,38 @@
+---
+title: Introduction
+slug: "introduction"
+---
+
+SVGO (short for SVG Optimizer) is a Node.js library and command-line application for optimizing SVG files.
+
+SVG files, especially those exported from vector editors, usually contain a lot of redundant information. This includes editor metadata, comments, hidden elements, default or suboptimal values, and other stuff that can be safely removed or converted without affecting the rendering result.
+
+## Installation
+
+### System Requirements
+
+* [Node.js 14](https://nodejs.org/) or later
+
+
+
+
+```sh
+npm install -g svgo
+```
+
+
+
+
+```sh
+yarn global add svgo
+```
+
+
+
+
+```sh
+pnpm add -g svgo
+```
+
+
+
diff --git a/docs/02-preset-default.mdx b/docs/02-preset-default.mdx
new file mode 100644
index 000000000..a6407836f
--- /dev/null
+++ b/docs/02-preset-default.mdx
@@ -0,0 +1,86 @@
+---
+title: Preset Default
+---
+
+SVGO runs with a default preset that has the plugin ID `preset-default`. This is the default set of plugins that are used when not explicitly specified or overridden elsewhere.
+
+:::info
+
+If you aren't using SVGO directly, like through [SVGR](https://github.com/gregberge/svgr), the default plugins may be different from the default preset.
+
+:::
+
+## Plugins List
+
+The following plugins are included in `preset-default`, in the order that they're executed:
+
+* [Remove Doctype](/docs/plugins/remove-doctype/)
+* [Remove XML Declaration](/docs/plugins/remove-xml-proc-inst/)
+* [Remove Comments](/docs/plugins/remove-comments/)
+* [Remove Metadata](/docs/plugins/remove-metadata/)
+* [Remove Editor Namespace Data](/docs/plugins/remove-editors-ns-data/)
+* [Cleanup Attributes](/docs/plugins/cleanup-attrs/)
+* [Merge Styles](/docs/plugins/merge-styles/)
+* [Inline Styles](/docs/plugins/inline-styles/)
+* [Minify Styles](/docs/plugins/minify-styles/)
+* [Cleanup IDs](/docs/plugins/cleanup-ids/)
+* [Remove Useless Defs](/docs/plugins/remove-useless-defs/)
+* [Cleanup Numeric Values](/docs/plugins/cleanup-numeric-values/)
+* [Convert Colors](/docs/plugins/convert-colors/)
+* [Remove Unknowns and Defaults](/docs/plugins/remove-unknowns-and-defaults/)
+* [Remove Non-inheritable Group Attributes](/docs/plugins/remove-non-inheritable-group-attrs/)
+* [Remove Useless Stroke and Fill](/docs/plugins/remove-useless-stroke-and-fill/)
+* [Remove ViewBox](/docs/plugins/remove-viewbox/)
+* [Cleanup Enable Background](/docs/plugins/cleanup-enable-background/)
+* [Remove Hidden Elements](/docs/plugins/remove-hidden-elems/)
+* [Remove Empty Text](/docs/plugins/remove-empty-text/)
+* [Convert Shape to Path](/docs/plugins/convert-shape-to-path/)
+* [Convert Ellipse to Circle](/docs/plugins/convert-ellipse-to-circle/)
+* [Move Element Attributes to Group](/docs/plugins/move-elems-attrs-to-group/)
+* [Move Group Attributes to Element](/docs/plugins/move-group-attrs-to-elem/)
+* [Collapse Groups](/docs/plugins/collapse-groups/)
+* [Convert Path Data](/docs/plugins/convert-path-data/)
+* [Convert Transform](/docs/plugins/convert-transform/)
+* [Remove Empty Attributes](/docs/plugins/remove-empty-attrs/)
+* [Remove Empty Containers](/docs/plugins/remove-empty-containers/)
+* [Remove Unused Namespaces](/docs/plugins/remove-unused-namespaces/)
+* [Merge Paths](/docs/plugins/merge-paths/)
+* [Sort Attributes](/docs/plugins/sort-attrs/)
+* [Sort Defs Children](/docs/plugins/sort-defs-children/)
+* [Remove Title](/docs/plugins/remove-title/)
+* [Remove Description](/docs/plugins/remove-desc/)
+
+## Disable a Plugin
+
+Sometimes a specific plugin might not be appropriate for your workflow. You can continue using `preset-default` while disabling any plugin by using the `overrides` parameter.
+
+In `overrides`, reference the plugin ID and set it to `false` to disable it:
+
+```js
+module.exports = {
+ plugins: [
+ {
+ name: 'preset-default',
+ params: {
+ overrides: {
+ removeViewBox: false,
+ },
+ },
+ },
+ ],
+};
+```
+
+Alternatively, you can also drop `default-preset` entirely, and configure your own plugin pipeline from scratch, with only the desireable plugins:
+
+```js
+module.exports = {
+ plugins: [
+ 'removeDoctype',
+ 'removeXMLProcInst',
+ 'minifyStyles',
+ 'sortAttrs',
+ 'sortDefsChildren'
+ ],
+};
+```
diff --git a/docs/03-plugins/add-attributes-to-svg-elements.mdx b/docs/03-plugins/add-attributes-to-svg-elements.mdx
new file mode 100644
index 000000000..6fdf0fa05
--- /dev/null
+++ b/docs/03-plugins/add-attributes-to-svg-elements.mdx
@@ -0,0 +1,34 @@
+---
+title: Add Attributes to Elements
+svgo:
+ pluginId: addAttributesToSVGElement
+ parameters:
+ attributes:
+ description: Attributes to add to the <svg> element. If key/value pairs are passed, the attributes and added with the paired value. If an array is passed, attributes are added with no key associated with them.
+ default: null
+ attribute:
+---
+
+Adds attributes to the outer most [`