diff --git a/markdown/dev/guides/best-practices/reuse-css-classes/en.md b/markdown/dev/guides/best-practices/reuse-css-classes/en.md
index ab1acde13e7..80b746ab31f 100644
--- a/markdown/dev/guides/best-practices/reuse-css-classes/en.md
+++ b/markdown/dev/guides/best-practices/reuse-css-classes/en.md
@@ -4,6 +4,6 @@ order: 30
---
While you can style your pattern however you want, try to re-use the CSS class names that
-are in use in our default [theme plugin](/reference/packages/plugin-theme/).
+are in use in our default [theme plugin](/reference/plugins/theme).
Doing so will ensure consistent styling for patterns.
diff --git a/markdown/dev/guides/markdown/custom-components/en.md b/markdown/dev/guides/markdown/custom-components/en.md
index 0ff59b3d1b5..136fdc2b1db 100644
--- a/markdown/dev/guides/markdown/custom-components/en.md
+++ b/markdown/dev/guides/markdown/custom-components/en.md
@@ -14,7 +14,7 @@ Below is a list of custom components you can use in our Markdown content:
## Example
- Example of the snippets provided by [the buttons plugin](/reference/plugings/buttons)
+ Example of the snippets provided by [the buttons plugin](/reference/plugins/buttons)
Use **Example** to embed an example (a part of our `examples` pattern) that is used to
diff --git a/markdown/dev/guides/patterns/config/en.md b/markdown/dev/guides/patterns/config/en.md
index eeaa6bdf9bc..92d843770e1 100644
--- a/markdown/dev/guides/patterns/config/en.md
+++ b/markdown/dev/guides/patterns/config/en.md
@@ -9,7 +9,7 @@ The pattern configuration holds important information about the pattern
-A pattern's [configuration](/reference/config/) is created by the pattern designer
+A pattern's [configuration](/reference/api/config/) is created by the pattern designer
and details a number of important things about the pattern, like:
- The **measurements** that are required to draft the pattern
diff --git a/markdown/dev/guides/patterns/paths/en.md b/markdown/dev/guides/patterns/paths/en.md
index 6cc3c3622de..71ddcf6e7d6 100644
--- a/markdown/dev/guides/patterns/paths/en.md
+++ b/markdown/dev/guides/patterns/paths/en.md
@@ -14,7 +14,7 @@ FreeSewing supports the following types of drawing operations:
- The **move** operation moves our virtual pen but does not draw anything.
- The **line** operation draws a straight line
-- The **curve** operation draws a [Bézier curve](/guides/overview/about/beziercurves/)
+- The **curve** operation draws a [Bézier curve](/guides/prerequisites/bezier-curves)
- The **close** operation closes the path
To crucial thing to keep in mind is that, with the exception of the **move** operation,
diff --git a/markdown/dev/guides/plugins/hooks/en.md b/markdown/dev/guides/plugins/hooks/en.md
index 689f4c6ba0c..2caeb45e36c 100644
--- a/markdown/dev/guides/plugins/hooks/en.md
+++ b/markdown/dev/guides/plugins/hooks/en.md
@@ -5,16 +5,16 @@ order: 60
A **hook** is a lifecycle event. The available hooks are:
-- [preRender](/reference/hooks/prerender/): Called at the start of [`Pattern.render()`](/reference/api/pattern#render)
-- [postRender](/reference/hooks/postrender/): Called at the end of [`Pattern.render()`](/reference/api/pattern#render)
-- [insertText](/reference/hooks/inserttext/): Called when inserting text
-- [preDraft](/reference/hooks/predraft/): Called at the start of [`Pattern.draft()`](/reference/api/pattern#draft)
-- [postDraft](/reference/hooks/postdraft/): Called at the end of [`Pattern.draft()`](/reference/api/pattern#draft)
-- [preSample](/reference/hooks/presample/): Called at the start of [`Pattern.sample()`](/reference/api/pattern#sample)
-- [postSample](/reference/hooks/postsample/): Called at the end of [`Pattern.sample()`](/reference/api/pattern#sample)
+- [preRender](/reference/api/hooks/prerender/): Called at the start of [`Pattern.render()`](/reference/api/pattern#render)
+- [postRender](/reference/api/hooks/postrender/): Called at the end of [`Pattern.render()`](/reference/api/pattern#render)
+- [insertText](/reference/api/hooks/inserttext/): Called when inserting text
+- [preDraft](/reference/api/hooks/predraft/): Called at the start of [`Pattern.draft()`](/reference/api/pattern#draft)
+- [postDraft](/reference/api/hooks/postdraft/): Called at the end of [`Pattern.draft()`](/reference/api/pattern#draft)
+- [preSample](/reference/api/hooks/presample/): Called at the start of [`Pattern.sample()`](/reference/api/pattern#sample)
+- [postSample](/reference/api/hooks/postsample/): Called at the end of [`Pattern.sample()`](/reference/api/pattern#sample)
You can register a method for a hook. When the hook is triggered, your method will be
called. It will receive two parameters:
-- An object relevant to the hook. See the [hooks API reference](/reference/hooks/) for details.
+- An object relevant to the hook. See the [hooks API reference](/reference/api/hooks/) for details.
- Data passed when the hook was registered (optional)
diff --git a/markdown/dev/howtos/code/adding-instructions/en.md b/markdown/dev/howtos/code/adding-instructions/en.md
index ec968cf5365..25ca908d66d 100644
--- a/markdown/dev/howtos/code/adding-instructions/en.md
+++ b/markdown/dev/howtos/code/adding-instructions/en.md
@@ -50,7 +50,7 @@ paths.flb.attr('data-text', 'facingLiningBoundary')
-Refer to [the sprinkle macro documentation](/reference/macros/sprinkle/) for details on how
+Refer to [the sprinkle macro documentation](/reference/api/macros/sprinkle/) for details on how
to use this macro
diff --git a/markdown/dev/howtos/code/adding-parts/en.md b/markdown/dev/howtos/code/adding-parts/en.md
index c87aa088cfb..4016c48869f 100644
--- a/markdown/dev/howtos/code/adding-parts/en.md
+++ b/markdown/dev/howtos/code/adding-parts/en.md
@@ -5,7 +5,7 @@ about: Shows you how to add new parts to your pattern
---
Since the patterns parts are listed
-in [the configuration file](/reference/config/), freesewing knows about
+in [the configuration file](/reference/api/config/), freesewing knows about
all the parts that belong to your pattern.
It expects that each pattern has its own draft method, that is called `draft`
diff --git a/markdown/dev/howtos/code/attributes/en.md b/markdown/dev/howtos/code/attributes/en.md
index 5fecab4e1af..edcc753e528 100644
--- a/markdown/dev/howtos/code/attributes/en.md
+++ b/markdown/dev/howtos/code/attributes/en.md
@@ -27,7 +27,7 @@ points.message = new Point(0,0)
In this example, we're using attributes to add text to our pattern.
-The [adding-text](/concepts/adding-text) documentation explains this in detail.
+The [adding-text](/howtos/code/adding-text) documentation explains this in detail.
diff --git a/markdown/dev/howtos/code/dependencies/en.md b/markdown/dev/howtos/code/dependencies/en.md
index 78955bac466..d5f0498e58b 100644
--- a/markdown/dev/howtos/code/dependencies/en.md
+++ b/markdown/dev/howtos/code/dependencies/en.md
@@ -4,7 +4,7 @@ for: developers
about: Shows you how to create dependencies between pattern parts
---
-Part dependencies are set in the [pattern configuration](/reference/config), and
+Part dependencies are set in the [pattern configuration](/reference/api/config), and
control the order in which parts are drawn. FreeSewing will make sure
that before drafting a part, it will first draft all its dependencies.
diff --git a/markdown/dev/howtos/code/inject/en.md b/markdown/dev/howtos/code/inject/en.md
index 55b7c13baeb..de84aa34b5d 100644
--- a/markdown/dev/howtos/code/inject/en.md
+++ b/markdown/dev/howtos/code/inject/en.md
@@ -5,7 +5,7 @@ about: Shows how you can use one part of your pattern as the basis for another
---
Part inheritance within your own pattern is handled via the `inject` settings in
-the [pattern configuration](/reference/config/). Here is a simple example:
+the [pattern configuration](/reference/api/config/). Here is a simple example:
```js
inject: {
diff --git a/markdown/dev/howtos/code/store/en.md b/markdown/dev/howtos/code/store/en.md
index 7bed724f287..6192b6285c4 100644
--- a/markdown/dev/howtos/code/store/en.md
+++ b/markdown/dev/howtos/code/store/en.md
@@ -30,4 +30,4 @@ export default function(part) {
```
In a case like this, the order in which parts are drafted becomes important, so you
-should reflect that in the [pattern configuration](/reference/config/).
+should reflect that in the [pattern configuration](/reference/api/config/).
diff --git a/markdown/dev/howtos/design/sprinkle-snippets/en.md b/markdown/dev/howtos/design/sprinkle-snippets/en.md
index 2272b7ac76b..3f855d34a28 100644
--- a/markdown/dev/howtos/design/sprinkle-snippets/en.md
+++ b/markdown/dev/howtos/design/sprinkle-snippets/en.md
@@ -40,7 +40,7 @@ macro('sprinkle', {
-Refer to [the sprinkle macro documentation](/reference/macros/sprinkle/) for details on how
+Refer to [the sprinkle macro documentation](/reference/api/macros/sprinkle) for details on how
to use this macro
diff --git a/markdown/dev/howtos/environments/browser/en.md b/markdown/dev/howtos/environments/browser/en.md
index f7656380c32..3d3667e7984 100644
--- a/markdown/dev/howtos/environments/browser/en.md
+++ b/markdown/dev/howtos/environments/browser/en.md
@@ -87,6 +87,6 @@ Below is a complete example.
## Dependencies
If you compare this example with [our NodeJS
-example](/reference/howtos/nodejs) you'll notice that you do not
+example](/howtos/environments/nodejs) you'll notice that you do not
need to worry about loading any dependencies. Not even `@freesewing/core`
is loaded, because Skypack will pull in all dependencies for you.
diff --git a/markdown/dev/tutorials/pattern-design/adding-options/en.md b/markdown/dev/tutorials/pattern-design/adding-options/en.md
index 0de48358bac..830a4f36e47 100644
--- a/markdown/dev/tutorials/pattern-design/adding-options/en.md
+++ b/markdown/dev/tutorials/pattern-design/adding-options/en.md
@@ -41,7 +41,7 @@ Can you guess what it means?
There are different types of options, but percentages are the most common ones.
-They are all documented [in the API docs](/reference/config/options).
+They are all documented [in the API docs](/reference/api/config/options).
diff --git a/markdown/dev/tutorials/pattern-design/completing-your-pattern/en.md b/markdown/dev/tutorials/pattern-design/completing-your-pattern/en.md
index 00bc6d3a58c..cb5ed5dd2c8 100644
--- a/markdown/dev/tutorials/pattern-design/completing-your-pattern/en.md
+++ b/markdown/dev/tutorials/pattern-design/completing-your-pattern/en.md
@@ -99,7 +99,7 @@ snippets.logo = new Snippet("logo", points.logo)
-You can find all possible snippets in [our documentation](/reference/snippets/).
+You can find all possible snippets in [our documentation](/reference/api/snippet/).
@@ -140,7 +140,7 @@ The `path.offset()` method makes it trivial to add seam allowance, since it will
a path parallel to the given path at the distance you pass it. 9 times out of 10, you'll be using it as `path.offset(sa)`.
Note that we're also using the attributes again, to change the look of the line, and add text to it,
-as explained in [Adding text](/concepts/adding-text).
+as explained in [Adding text](/howtos/code/adding-text).
## Scalebox and title
diff --git a/markdown/dev/tutorials/pattern-design/paperless-bib/en.md b/markdown/dev/tutorials/pattern-design/paperless-bib/en.md
index b0907b3c3a2..85ee396a55d 100644
--- a/markdown/dev/tutorials/pattern-design/paperless-bib/en.md
+++ b/markdown/dev/tutorials/pattern-design/paperless-bib/en.md
@@ -41,7 +41,7 @@ Thankfully, there's macros that can help you with that, specifically:
- The `ld` macro adds a linear dimension
- The `pd` macro adds a path dimension that follows a given path
- The documentation, as always, holds [all the information about the macros](/reference/macros/).
+ The documentation, as always, holds [all the information about the macros](/reference/api/macros/).
Let's look at the code: