diff --git a/.gitignore b/.gitignore
index 19ce42752cf..985b39ac1a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,8 @@ sites/orgdocs/src/lib/designs.mjs
sites/orgdocs/src/lib/designinfo.mjs
sites/orgdocs/src/lib/i18n.mjs
sites/orgdocs/docs/designs/*/options/readme.mdx
+sites/orgdocs/authors.json
+sites/orgdocs/showcase-tags.mjs
# Lab auto-generated content
sites/lab/lib
diff --git a/config/exceptions.yaml b/config/exceptions.yaml
index d66147cd1bf..778c7d0f2cc 100644
--- a/config/exceptions.yaml
+++ b/config/exceptions.yaml
@@ -32,7 +32,7 @@ packageJson:
author: AlfaLyr (https://github.com/alfalyr)
i18n:
private: true
- jane:
+ jane:
author: SeaZeeZee (https://github.com/SeaZeeZee)
lab:
private: true
@@ -73,6 +73,14 @@ packageJson:
files:
- index.json
- package.json
+ react-components:
+ exports:
+ ".":
+ "internal": "./src/index.mjs"
+ "default": "./dist/index.mjs"
+ "./linedrawings": "./src/linedrawings/index.mjs"
+ "./pattern": "./src/pattern/index.mjs"
+ "./xray": "./src/pattern-xray/index.mjs"
rehype-hightlight-lines:
private: true
sandy:
diff --git a/config/software/index.mjs b/config/software/index.mjs
index 512d03a7771..b38d19621c3 100644
--- a/config/software/index.mjs
+++ b/config/software/index.mjs
@@ -1,7 +1,6 @@
import designs from './designs.json' assert { type: 'json' }
import packages from './packages.json' assert { type: 'json' }
import plugins from './plugins.json' assert { type: 'json' }
-import sites from './sites.json' assert { type: 'json' }
// Helper method to construct summary objects
const unpack = (obj, folder) =>
@@ -22,14 +21,13 @@ const unpackDesigns = (obj, folder) =>
)
// Re-Export imported JSON
-export { designs, packages, plugins, sites }
+export { designs, packages, plugins }
// All software
export const software = {
...unpackDesigns(designs, 'designs'),
...unpack(plugins, 'plugins'),
...unpack(packages, 'packages'),
- ...unpack(sites, 'sites'),
}
// All software published on NPM
@@ -40,4 +38,4 @@ export const publishedSoftware = {
}
export const publishedTypes = ['designs', 'packages', 'plugins']
-export const types = [...publishedTypes, 'sites']
+export const types = publishedTypes
diff --git a/config/software/sites.json b/config/software/sites.json
deleted file mode 100644
index c11685745f3..00000000000
--- a/config/software/sites.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "backend": "FreeSewing backend",
- "dev": "FreeSewing website with documentation for contributors & developers",
- "org": "FreeSewing website",
- "sde": "Stand-alone develpment environment. Basis for the @freesewing/new-design package",
- "shared": "Shared code and React components for different websites"
-}
diff --git a/sites/dev/docs/guides/readme.mdx b/sites/dev/docs/guides/readme.mdx
index b75aec7e021..11a0bc0ec35 100644
--- a/sites/dev/docs/guides/readme.mdx
+++ b/sites/dev/docs/guides/readme.mdx
@@ -1,6 +1,5 @@
---
title: Guides
-order: zbb
---
Below is an overview of the various FreeSewing guides:
diff --git a/sites/dev/docs/howtos/editors/frontmatter/about/readme.mdx b/sites/dev/docs/howtos/editors/frontmatter/about/readme.mdx
index 6a3bbfa61a1..7cdad25399d 100644
--- a/sites/dev/docs/howtos/editors/frontmatter/about/readme.mdx
+++ b/sites/dev/docs/howtos/editors/frontmatter/about/readme.mdx
@@ -1,21 +1,21 @@
---
title: About Frontmatter
-order: 10
+sidebar_position: 10
---
Frontmatter is a way to add metadata to Markdown documents.
Frontmatter sits at the top of the file (it's matter that's at the front) and is
-surrounded by lines with three dashes on them. It contains several keys with a value.
+surrounded by lines with three dashes on them. It contains several keys with a value.
-The `title` key is required on every page, it holds the title of the page.
+The `title` key is required on every page, it holds the title of the page.
The `order` key is not required and can be used to sort pages in a certain order, if there is no order key then the pages will be sorted alphabetically.
```md
---
title: About Frontmatter
-order: 20
+sidebar_position: 20
---
```
diff --git a/sites/dev/docs/howtos/editors/frontmatter/lists/readme.mdx b/sites/dev/docs/howtos/editors/frontmatter/lists/readme.mdx
index 335b6bc2926..80bda3003a0 100644
--- a/sites/dev/docs/howtos/editors/frontmatter/lists/readme.mdx
+++ b/sites/dev/docs/howtos/editors/frontmatter/lists/readme.mdx
@@ -1,6 +1,6 @@
---
title: Lists or arrays
-order: 30
+sidebar_position: 30
---
Values are typically text or numbers, but you can also make it a list or array.
@@ -9,7 +9,8 @@ There's two types of syntax for this:
```md
tags: [tag1, another, three]
categories:
- - cat1
- - anothercat
- - somethingelse
+
+- cat1
+- anothercat
+- somethingelse
```
diff --git a/sites/dev/docs/howtos/editors/frontmatter/multi-line/readme.mdx b/sites/dev/docs/howtos/editors/frontmatter/multi-line/readme.mdx
index 7173c750861..e74f374b401 100644
--- a/sites/dev/docs/howtos/editors/frontmatter/multi-line/readme.mdx
+++ b/sites/dev/docs/howtos/editors/frontmatter/multi-line/readme.mdx
@@ -1,6 +1,6 @@
---
title: Multi-line text
-order: 40
+sidebar_position: 40
---
To add multi-line text in Frontmatter, use a `|` character,
@@ -8,6 +8,6 @@ and prefix the lines by spaces:
```md
about: |
- This is a multi-line text
- that will be assigned to the about key
+This is a multi-line text
+that will be assigned to the about key
```
diff --git a/sites/dev/docs/howtos/editors/frontmatter/structure/readme.mdx b/sites/dev/docs/howtos/editors/frontmatter/structure/readme.mdx
index b270b4e11c4..0f1b6bff9f5 100644
--- a/sites/dev/docs/howtos/editors/frontmatter/structure/readme.mdx
+++ b/sites/dev/docs/howtos/editors/frontmatter/structure/readme.mdx
@@ -1,6 +1,6 @@
---
title: Structure
-order: 20
+sidebar_position: 20
---
Frontmatter is made up of `key: value` pairs.
diff --git a/sites/dev/docs/howtos/readme.mdx b/sites/dev/docs/howtos/readme.mdx
index 6cbacbbf972..d02cc74739d 100644
--- a/sites/dev/docs/howtos/readme.mdx
+++ b/sites/dev/docs/howtos/readme.mdx
@@ -1,6 +1,5 @@
---
title: Howtos
-order: zcc
---
You can find a list of all FreeSewing hotwtos below:
@@ -17,4 +16,3 @@ Guides and howtos are on a spectrum with howtos being terse _do-this-then-that_
guides take more time to explain in-depth what is being done and why.
:::
-
diff --git a/sites/dev/docs/reference/readme.mdx b/sites/dev/docs/reference/readme.mdx
index 3282291cb7f..2a7dc4b7908 100644
--- a/sites/dev/docs/reference/readme.mdx
+++ b/sites/dev/docs/reference/readme.mdx
@@ -1,6 +1,5 @@
---
title: Reference
-order: zdd
---
You can find a list of all FreeSewing reference documentation below:
@@ -12,4 +11,3 @@ You can find a list of all FreeSewing reference documentation below:
## Full list
-
diff --git a/sites/dev/docs/training/readme.mdx b/sites/dev/docs/training/readme.mdx
index 09c6183be82..5cea06ea0dc 100644
--- a/sites/dev/docs/training/readme.mdx
+++ b/sites/dev/docs/training/readme.mdx
@@ -1,6 +1,5 @@
---
title: Training
-order: zzz
---
FreeSewing has created the following training materials:
diff --git a/sites/dev/docs/tutorials/getting-started-codespaces/readme.mdx b/sites/dev/docs/tutorials/getting-started-codespaces/readme.mdx
index f884c218c1c..fdb471e8273 100644
--- a/sites/dev/docs/tutorials/getting-started-codespaces/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-codespaces/readme.mdx
@@ -1,6 +1,6 @@
---
title: Getting started with Codespaces
-order: 13
+sidebar_position: 13
---
:::note
@@ -29,19 +29,22 @@ to have or use your own computer to perform this development work.
## Accessing Codespaces
Access Codespaces from the GitHub website while logged in:
+
- The "Your Codespaces" page is accessed via the "Codespaces" link at the top
-of any GitHub page.
+ of any GitHub page.
- A shortcut URL is: https://github.com/codespaces
## Creating a codespace
To create a new codespace:
+
- Select the "New codespace" button at the top of the Your Codespaces page.
- A shortcut URL is: https://github.com/codespaces/new
This will open a "Create a New Codespace" page.
On the Create a New Codespace page, select the options for your codespace:
+
- Repository -> ("`username/freesewing`" assuming that is the name of your GitHub repository)
- Branch -> (select the branch you want to use)
- Region -> (select the region most appropriate for you)
@@ -52,14 +55,13 @@ The Codespaces app will open in the browser window.
The Codespaces app is basically the [Visual Studio Code][vs] app with
Codespaces and GitHub integration built in.
-[vs]: https://code.visualstudio.com
-
-(Wait 45 seconds or so for the Codespace app to clone the repository from
-GitHub to the codespace repository and start.)
+[vs]: https://code.visualstudio.com 'Wait 45 seconds or so for the Codespace app to clone the repository from
+GitHub to the codespace repository and start.'
## Editing files
You can browse and edit files in your codespace repository from within the app:
+
- On the Activity Bar on the far left side of the page, select the
Explorer icon.
(The icon looks like two pages of paper.)
@@ -72,6 +74,7 @@ Auto-save is enabled by default, so any changes you make are
automatically saved in your codespace repository.
To commit changes to your codespace repository:
+
- In the Activity Bar on the far left side of the page,
select the Source Control icon.
- In the Source Control sidebar you can see a list of changed files.
@@ -82,6 +85,7 @@ To commit changes to your codespace repository:
To push committed changes from your codespace repository back to your
GitHub repository:
+
- After committing changes to your codespace repository, press the
"Sync Changes" button to push the committed changes to your GitHub
repository.
@@ -94,13 +98,16 @@ GitHub repository:
In the "Terminal" panel at the bottom of the page, you can run commands.
To start the lab website (to view and test new designs and design changes):
+
- In the Terminal panel, run `yarn kickstart` and then `yarn lab`.
To start the dev or org websites (to view and test documentation changes):
+
- dev: In the Terminal panel, run `cd sites/dev` and `yarn start`.
- org: In the Terminal panel, run `cd sites/org` and `yarn start`.
After the lab, dev, or org website starts:
+
- The usual `localhost:8000` port will automatically be forwarded to a custom
URL.
- A pop-up will appear saying that the port has been forwarded. The "Open in
@@ -122,6 +129,7 @@ However, you can make the port public so others can access it
(or so you can access it on a different browser while not logged into GitHub).
To make the port public:
+
- In the Ports panel, right-click on the port and select
Port Visibility -> Public.
- The custom URL will be now be a publicly-accessible forwarded port.
@@ -130,6 +138,7 @@ To make the port public:
## Starting and stopping a codespace
You can start and stop your codespace via the Your Codespaces page.
+
- To start: Click on the codespace name to browse to the Codespaces
app URL for that codespace.
(You can also right-click to copy the URL and open it in a
@@ -150,7 +159,8 @@ You can rename a codespace to make it easier to identify.
(This will help if you have more than one codespace.)
To rename a codespace:
-- Go to the Your Codespaces page.
+
+- Go to the Your Codespaces page.
- Open the "..." ellipses menu next to the codespace
and select "Rename".
@@ -158,17 +168,18 @@ To rename a codespace:
You can access GitHub Settings via the user icon menu in the upper right
corner of any GitHub page (but not on the Codespaces app page).
+
- Selecting the "Settings" menu item will open the GitHub Settings page.
- The Codespaces settings are under "Codespaces" in the left sidebar
-on the Settings page.
+ on the Settings page.
- A shortcut URL is: https://github.com/settings/codespaces
-
Among the Codespaces settings available are:
+
- "Default idle timeout" (how long codespaces continue to run when idle,
- before being stopped)
+ before being stopped)
- "Default retention period" (how long codespace repositories are kept
- when unused, before being deleted)
+ when unused, before being deleted)
:::note
Do not be confused by the other Settings icon/menu at the bottom left of the
@@ -180,11 +191,13 @@ are located.
## Usage and Quotas
To check usage:
+
- Usage information is under "Billing and plans" in the left sidebar on
the Settings page.
- A shortcut URL is: https://github.com/settings/billing
About quotas:
+
- As a free account user, you have a quota of 120 core-hours of usage
and 15 GB of storage per billing month.
That is the total for all your codespaces combined.
@@ -209,18 +222,20 @@ Don't worry -- you won't get a bill if you exceed your quota!
Instead, you will just be unable to start any of your codespaces
until the start of the next billing month.
And, if you have any work-in-progress changes that you need access to
-before then, you can export those changes to a new GitHub branch.
+before then, you can export those changes to a new GitHub branch.
:::
## Deleting a codespace
To delete a codespace:
+
- Go to the Your Codespaces page.
- Open the "..." ellipses menu next to the codespace
and select "Delete".
:::note RELATED
For more information, please see:
+
- [GitHub Codebases documentation](https://docs.github.com/en/codespaces).
- [About billing for GitHub Codespaces](https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)
-:::
+ :::
diff --git a/sites/dev/docs/tutorials/getting-started-gitpod/readme.mdx b/sites/dev/docs/tutorials/getting-started-gitpod/readme.mdx
index fea3f60552e..ace72c86674 100644
--- a/sites/dev/docs/tutorials/getting-started-gitpod/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-gitpod/readme.mdx
@@ -1,6 +1,6 @@
---
title: Getting started with Gitpod
-order: 10
+sidebar_position: 10
---
If you don't want to set up a dev environment or if you just want to kick the
diff --git a/sites/dev/docs/tutorials/getting-started-linux/dev-setup/readme.mdx b/sites/dev/docs/tutorials/getting-started-linux/dev-setup/readme.mdx
index 63cdbd7ce65..17933a6063e 100644
--- a/sites/dev/docs/tutorials/getting-started-linux/dev-setup/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-linux/dev-setup/readme.mdx
@@ -1,6 +1,6 @@
---
title: Setting up the FreeSewing development environment
-order: 40
+sidebar_position: 40
---
FreeSewing provides a development environment to help you design and develop
diff --git a/sites/dev/docs/tutorials/getting-started-linux/dev-start/readme.mdx b/sites/dev/docs/tutorials/getting-started-linux/dev-start/readme.mdx
index 9fe135dde95..1577a04548d 100644
--- a/sites/dev/docs/tutorials/getting-started-linux/dev-start/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-linux/dev-start/readme.mdx
@@ -1,6 +1,6 @@
---
title: Start the development environment
-order: 50
+sidebar_position: 50
---
FreeSewing provides a development environment to help you design and develop patterns.
@@ -21,7 +21,9 @@ yarn lab
Then point your browser to http://localhost:8000
:::tip
+
### Adding a new design
+
This is all you need to work on existing designs. If you'd like to add a new design, run:
```bash
diff --git a/sites/dev/docs/tutorials/getting-started-linux/installing-node/readme.mdx b/sites/dev/docs/tutorials/getting-started-linux/installing-node/readme.mdx
index dc841b4b77a..d506696a944 100644
--- a/sites/dev/docs/tutorials/getting-started-linux/installing-node/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-linux/installing-node/readme.mdx
@@ -1,6 +1,6 @@
---
title: Installing Node.js
-order: 20
+sidebar_position: 20
---
Now we will use `nvm` to install Node.js. Run the following command:
diff --git a/sites/dev/docs/tutorials/getting-started-linux/installing-nvm/readme.mdx b/sites/dev/docs/tutorials/getting-started-linux/installing-nvm/readme.mdx
index b7683d4341f..2649b44cefd 100644
--- a/sites/dev/docs/tutorials/getting-started-linux/installing-nvm/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-linux/installing-nvm/readme.mdx
@@ -1,6 +1,6 @@
---
title: Installing nvm
-order: 10
+sidebar_position: 10
---
FreeSewing is built with [Node.js](https://nodejs.org/), a JavaScript runtime.
diff --git a/sites/dev/docs/tutorials/getting-started-linux/node-versions/readme.mdx b/sites/dev/docs/tutorials/getting-started-linux/node-versions/readme.mdx
index 0bd3be48fbd..8e9de71159d 100644
--- a/sites/dev/docs/tutorials/getting-started-linux/node-versions/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-linux/node-versions/readme.mdx
@@ -1,6 +1,6 @@
---
title: Using a different Node.js version
-order: 30
+sidebar_position: 30
---
Now that you've got Node.js setup, we can start setting up the FreeSewing
diff --git a/sites/dev/docs/tutorials/getting-started-linux/readme.mdx b/sites/dev/docs/tutorials/getting-started-linux/readme.mdx
index d0cd8fb1ec9..4fb0004d33f 100644
--- a/sites/dev/docs/tutorials/getting-started-linux/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-linux/readme.mdx
@@ -1,6 +1,6 @@
---
title: Getting started on Linux
-order: 15
+sidebar_position: 15
---
In this tutorial, we will setup Node.js and initialize the FreeSewing
diff --git a/sites/dev/docs/tutorials/getting-started-mac/dev-setup/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/dev-setup/readme.mdx
index baf55fdc97a..c79874869af 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/dev-setup/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/dev-setup/readme.mdx
@@ -1,6 +1,6 @@
---
title: Setting up the FreeSewing development environment
-order: 40
+sidebar_position: 40
---
FreeSewing provides a development environment to help you design and develop
diff --git a/sites/dev/docs/tutorials/getting-started-mac/dev-start/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/dev-start/readme.mdx
index 9fe135dde95..1577a04548d 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/dev-start/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/dev-start/readme.mdx
@@ -1,6 +1,6 @@
---
title: Start the development environment
-order: 50
+sidebar_position: 50
---
FreeSewing provides a development environment to help you design and develop patterns.
@@ -21,7 +21,9 @@ yarn lab
Then point your browser to http://localhost:8000
:::tip
+
### Adding a new design
+
This is all you need to work on existing designs. If you'd like to add a new design, run:
```bash
diff --git a/sites/dev/docs/tutorials/getting-started-mac/installing-node/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/installing-node/readme.mdx
index dc841b4b77a..d506696a944 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/installing-node/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/installing-node/readme.mdx
@@ -1,6 +1,6 @@
---
title: Installing Node.js
-order: 20
+sidebar_position: 20
---
Now we will use `nvm` to install Node.js. Run the following command:
diff --git a/sites/dev/docs/tutorials/getting-started-mac/installing-nvm/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/installing-nvm/readme.mdx
index 9704638effa..d9228ff02be 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/installing-nvm/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/installing-nvm/readme.mdx
@@ -1,6 +1,6 @@
---
title: Installing nvm
-order: 15
+sidebar_position: 15
---
FreeSewing is built with [Node.js](https://nodejs.org/), a JavaScript runtime.
diff --git a/sites/dev/docs/tutorials/getting-started-mac/installing-xcode/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/installing-xcode/readme.mdx
index 10f489e412c..0de56b9c755 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/installing-xcode/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/installing-xcode/readme.mdx
@@ -1,6 +1,6 @@
---
title: Installing the Xcode command line tools
-order: 10
+sidebar_position: 10
---
Before we can get started, we need some basic tools for development.
diff --git a/sites/dev/docs/tutorials/getting-started-mac/node-versions/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/node-versions/readme.mdx
index 510b9812332..fa7409296c3 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/node-versions/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/node-versions/readme.mdx
@@ -1,6 +1,6 @@
---
title: Using a different Node.js version
-order: 30
+sidebar_position: 30
---
Now that you've got Node.js setup, we can start setting up the FreeSewing
diff --git a/sites/dev/docs/tutorials/getting-started-mac/readme.mdx b/sites/dev/docs/tutorials/getting-started-mac/readme.mdx
index 812a3da7153..a04f189be19 100644
--- a/sites/dev/docs/tutorials/getting-started-mac/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-mac/readme.mdx
@@ -1,6 +1,6 @@
---
title: Getting started on Mac
-order: 25
+sidebar_position: 25
---
In this tutorial, we will setup Node.js and initialize the FreeSewing
diff --git a/sites/dev/docs/tutorials/getting-started-vercel/readme.mdx b/sites/dev/docs/tutorials/getting-started-vercel/readme.mdx
index 163bbd85638..997c4853668 100644
--- a/sites/dev/docs/tutorials/getting-started-vercel/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-vercel/readme.mdx
@@ -1,6 +1,6 @@
---
title: Getting started with Vercel
-order: 14
+sidebar_position: 14
---
## What is Vercel?
@@ -23,6 +23,7 @@ containing a fork of the FreeSewing repository.
## Why you might want to use Vercel
There are reasons why you might want your own Vercel account:
+
- You can preview your changes:
- if you develop on a mobile device or if you do not have access to a
computer.
@@ -61,7 +62,7 @@ Free Hobby accounts are limited to 3 Projects per Git repository.
Under each project there will be many, many deployments.
-_Deployments are simply builds, an instance of a website/app
+\_Deployments are simply builds, an instance of a website/app
built from a specific commit version of a specific branch of the repository.
These deployments can be accessed using a web browser to preview
the web app or website.
@@ -103,11 +104,11 @@ account/credentials without having to create a separate username
or password.
1. On the [Vercel website][v] select the "Sign Up" button.
-(A shortcut URL is: [https://vercel.com/signup][vsu].)
+ (A shortcut URL is: [https://vercel.com/signup][vsu].)
2. Select the "Continue with GitHub" button.
3. A pop-up window will appear asking you for permission to access
-your GitHub information.
-Press the green "Authorize Vercel" button to continue.
+ your GitHub information.
+ Press the green "Authorize Vercel" button to continue.
[v]: https://vercel.com
[vsu]: https://vercel.com/signup
@@ -125,12 +126,12 @@ FreeSewing repository.
2. Select your personal GitHub account from the list.
3. Select the "Only select repositories" radio button.
4. In "Select repositories" drop-down menu, select your `freesewing`
-repository.
+ repository.
5. Click the green "Install" button.
6. Confirm that you are giving permission to access the repository
-by entering your GitHub password.
+ by entering your GitHub password.
7. Finally, back at the Import Git Repository screen complete the
-import by selecting the white "Import" button.
+ import by selecting the white "Import" button.
## Creating a project
@@ -139,15 +140,16 @@ create a project.
By default, the default Root Directory will be `sites/dev`.
The Root Directory setting will determine the build type for the project.
+
- `sites/dev` will build a freesewing.dev website
- `sites/org` will build a freesewing.org website
1. Change the name of the project, if you wish.
-Names can consist of alphanumeric lowercase and hyphen characters.
+ Names can consist of alphanumeric lowercase and hyphen characters.
2. Change the Root Directory to the desired setting, as described above.
3. In the Build & Development Settings,
-add `yarn build` as the Build Command override.
-(All the other settings will work fine with the default values.)
+ add `yarn build` as the Build Command override.
+ (All the other settings will work fine with the default values.)
4. Press the white "Deploy" button.
Vercel will then create the project and start building the project's first
@@ -167,17 +169,18 @@ ones based on the `develop` branch
`develop` instead of `main).
Created deployments include:
+
1. The initial production deployment. (Because you don't have a branch named
-`main` in your repository, Vercel will instead create the initial
-production deployment from the default `develop` branch.)
+ `main` in your repository, Vercel will instead create the initial
+ production deployment from the default `develop` branch.)
2. A new preview deployment every time you update your `develop` branch in GitHub
-(for example, whenever you sync it with the latest `freesewing/freesewing`
-updates)
+ (for example, whenever you sync it with the latest `freesewing/freesewing`
+ updates)
3. A new preview deployment for every new branch you push to GitHub
4. A new preview deployment for every update you make to these new branches
-when you push to GitHub
+ when you push to GitHub
5. A new preview deployment for every update you make to your existing branches
-when you push to GitHub
+ when you push to GitHub
If you have multiple projects for the same repository
(for example, if you have both `sites/org` and `sites/dev` projects),
@@ -196,7 +199,7 @@ Once they start, deployments take about
You will manage your account and projects from the Vercel Dashboard
page, [https://vercel.com/dashboard][vd].
-The default __Overview__ tab at the top of the Dashboard page will show your repositories
+The default **Overview** tab at the top of the Dashboard page will show your repositories
and projects.
Click on a project name to go to its project page.
@@ -204,31 +207,32 @@ Click on a project name to go to its project page.
## Project pages
-The default __Project__ tab at the top of the project page will show the
+The default **Project** tab at the top of the project page will show the
the production deployment and some of the most recent preview
deployments for that project.
-Click on the __Deployments__ tab to see all of the project's deployments.
+Click on the **Deployments** tab to see all of the project's deployments.
Click on a deployment name to go to its deployment page.
-Click on the __Settings__ tab to see the project's settings.
+Click on the **Settings** tab to see the project's settings.
## Deployment pages
-On the default __Deployment__ tab at the top of the deployment page
+On the default **Deployment** tab at the top of the deployment page
you will see information about the deployment.
-Under __Domains__ you will see one or more URLs that can be used to
+Under **Domains** you will see one or more URLs that can be used to
access the deployment.
These are also the URLs that you can share with others so they
can view your deployments.
+
- URLs containing hash characters link to the deployment for a single
-commit.
+ commit.
- URLs without a hash point to the deployment for the latest version
-of that branch.
+ of that branch.
If you ever want to delete a deployment you can do so on its
-deployment page, under the "__...__" three dots menu.
+deployment page, under the "**...**" three dots menu.
## Usage and Billing
@@ -237,11 +241,12 @@ Vercel's free Hobby accounts come with
This should be at least 10-15x the amount you will actually use in
a month, so do not worry about this.
-If you want to check your usage, please seee the __Usage__ tab at the
+If you want to check your usage, please seee the **Usage** tab at the
top of the Dashboard page.
+
- A shortcut URL is [https://vercel.com/dashboard/usage][vu]
- Or, [https://vercel.com/account/billing][vb] will show a summary
-of your usage.
+ of your usage.
## Disabling automatic deployments
@@ -249,8 +254,8 @@ You can disable and enable automatic deployments for a project,
for example if you wish to temporarily stop them while working on
a bug that prevents successful builds.
-On the Project Settings page, select __Git__ from the menu on the
-left. Change the __Ignored Build Step__ behavior from "Automatic" to
+On the Project Settings page, select **Git** from the menu on the
+left. Change the **Ignored Build Step** behavior from "Automatic" to
"Don't build anything".
[vu]: https://vercel.com/dashboard/usage
diff --git a/sites/dev/docs/tutorials/getting-started-windows/readme.mdx b/sites/dev/docs/tutorials/getting-started-windows/readme.mdx
index 5d1f67b917f..e612048cb2e 100644
--- a/sites/dev/docs/tutorials/getting-started-windows/readme.mdx
+++ b/sites/dev/docs/tutorials/getting-started-windows/readme.mdx
@@ -1,6 +1,6 @@
---
title: Getting started on Windows
-order: 30
+sidebar_position: 30
---
:::warning
diff --git a/sites/dev/docs/tutorials/pattern-design/part1/new-design/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part1/new-design/readme.mdx
index 9524efe076e..0cfd2e1b3f0 100644
--- a/sites/dev/docs/tutorials/pattern-design/part1/new-design/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part1/new-design/readme.mdx
@@ -1,6 +1,6 @@
---
title: Setting up the development environment
-order: 20
+sidebar_position: 20
---
FreeSewing provides a development environment that visualizes your design for
@@ -18,7 +18,7 @@ It will ask if it is ok to install the development environment in a new folder
named `freesewing`. You can accept the default, or pick a different folder name
if you prefer.
-It will also ask what package manager you would like to use.
+It will also ask what package manager you would like to use.
Here too the default (`npm`) is fine., unless you are certain you have **yarn** installed.
After answering these questions, files will be downloaded, dependencies installed,
diff --git a/sites/dev/docs/tutorials/pattern-design/part1/nodejs/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part1/nodejs/readme.mdx
index c5ebbe0973a..5600b135cb6 100644
--- a/sites/dev/docs/tutorials/pattern-design/part1/nodejs/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part1/nodejs/readme.mdx
@@ -1,6 +1,6 @@
---
title: Installing NodeJS
-order: 10
+sidebar_position: 10
---
FreeSewing is a JavaScript project, so you need JavaScript to work with it.
@@ -9,14 +9,15 @@ precise. You can switch this website theme from light to dark mode, and
that would not work without JavaScript.
As a **user** of FreeSewing, this is all you need. To develop with FreeSewing
-you are going to need to be able to run JavaScript *outside* the browser using
-a JavaScript *runtime*. Which just means a thing that can *run* JavaScript.
+you are going to need to be able to run JavaScript _outside_ the browser using
+a JavaScript _runtime_. Which just means a thing that can _run_ JavaScript.
We are going to be using [NodeJS](https://nodejs.org/) in this tutorial. It is
-the most established of the different JavaScript runtimes. But there's also
-other runtimes like [Deno](https://deno.com/) or [Bun](https://bun.sh/).
+the most established of the different JavaScript runtimes. But there's also
+other runtimes like [Deno](https://deno.com/) or [Bun](https://bun.sh/).
## Install
+
If you don't have NodeJS on your system, you can go to
[NodeJS.org](https://nodejs.org/) and follow the install instructions.
diff --git a/sites/dev/docs/tutorials/pattern-design/part1/sde/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part1/sde/readme.mdx
index ecb9a30511a..2ca7d18ff8c 100644
--- a/sites/dev/docs/tutorials/pattern-design/part1/sde/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part1/sde/readme.mdx
@@ -1,6 +1,6 @@
---
title: The FreeSewing development environment
-order: 30
+sidebar_position: 30
---
If you have been to FreeSewing.org the FreeSewing development environment will look familiar.
@@ -44,4 +44,3 @@ For the following along this tutorial, you have two options:
- Pick **From scratch** if you prefer to actively participate by recreating the design in this tutorial.
I recommend the latter. You will learn (and remember) a lot more if you are actively engaging.
-
diff --git a/sites/dev/docs/tutorials/pattern-design/part1/structure/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part1/structure/readme.mdx
index 08093bf72af..0b5c9ba1940 100644
--- a/sites/dev/docs/tutorials/pattern-design/part1/structure/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part1/structure/readme.mdx
@@ -1,6 +1,6 @@
---
title: Folder structure
-order: 40
+sidebar_position: 40
---
Inside the `freesewing` folder -- which might have a different name if that is
@@ -23,10 +23,10 @@ this menu:

As you might have guessed by now, each of these options is contained in its
-own subfolder under `designs`.
+own subfolder under `designs`.
You can edit the files under `designs/[template]/src/` and the changes you make
will be reflected in the development environment.
-Don't take my word for it though. Let's start doing exactly that
+Don't take my word for it though. Let's start doing exactly that
in [Part 2](/tutorials/pattern-design/part2).
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/adding-measurements/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/adding-measurements/readme.mdx
index 1f7d03905a2..3bf959f83a2 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/adding-measurements/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/adding-measurements/readme.mdx
@@ -1,10 +1,10 @@
---
title: Adding measurements
-order: 30
+sidebar_position: 30
---
-FreeSewing is all about _bespoke_ sewing patterns -- or *parametric
-design* to use a more generic term.
+FreeSewing is all about _bespoke_ sewing patterns -- or _parametric
+design_ to use a more generic term.
That means that when drafting our pattern, I will take the measurements provided
by the user into account.
@@ -21,7 +21,7 @@ So let's add it as a required measurement.
In our `src/bib.mjs` file, we will add a `measurements` property to the `bib` object.
This property will be an Array (a list) holding all required measurements for this part.
-I am using [*the official name* of the measurement](/reference/measurements) here. For head
+I am using [_the official name_ of the measurement](/reference/measurements) here. For head
circumference, that name is `head`.
:::note [FIXME]
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/adding-options/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/adding-options/readme.mdx
index 662c2dce3a8..64ec1b67020 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/adding-options/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/adding-options/readme.mdx
@@ -1,6 +1,6 @@
---
title: Adding options
-order: 40
+sidebar_position: 40
---
I have shown what our bib should look like, and added the _head_ measurement
@@ -12,7 +12,7 @@ to work with. But there's still a number of choices I have to make:
I could make all of these choices for the user and set them in stone, so to speak.
-But since the pattern I am designing is code, it is trivial (and _IMHO_ very satisfying)
+But since the pattern I am designing is code, it is trivial (and _IMHO_ very satisfying)
to make a pattern flexible and let the user choose.
All I need to do to give control to the user is add _options_ to the part.
@@ -34,10 +34,10 @@ export const bib = {
measurements: [ 'head' ],
// highlight-start
options: {
- neckRatio: {
- pct: 80,
- min: 70,
- max: 90,
+ neckRatio: {
+ pct: 80,
+ min: 70,
+ max: 90,
menu: 'fit'
},
},
@@ -61,7 +61,7 @@ They are all documented [in the part reference docs](/reference/api/part/config/
##### What is `menu` and why should you care?
-The `menu` property on our option is *extra*.
+The `menu` property on our option is _extra_.
It will be ignored by FreeSewing's core library and if we leave it out, our design will produce the same result.
Instead, this `menu` property is there for the benefit of FreeSewing's development environment which will use this to build a menu structure for the various
@@ -85,25 +85,25 @@ export const bib = {
draft: draftBib,
measurements: [ 'head' ],
options: {
- neckRatio: {
- pct: 80,
- min: 70,
- max: 90,
+ neckRatio: {
+ pct: 80,
+ min: 70,
+ max: 90,
menu: 'fit'
},
-
+
// highlight-start
- widthRatio: {
- pct: 45,
- min: 35,
- max: 55,
- menu: 'style'
+ widthRatio: {
+ pct: 45,
+ min: 35,
+ max: 55,
+ menu: 'style'
},
- lengthRatio: {
- pct: 75,
- min: 55,
- max: 85,
- menu: 'style'
+ lengthRatio: {
+ pct: 75,
+ min: 55,
+ max: 85,
+ menu: 'style'
},
// highlight-end
},
@@ -116,4 +116,3 @@ Later, I will test-drive our pattern to see how it behaves when we adapt the opt
between their minimum and maximum values. At that time, I may need to tweak these values.
With that out of the way, I will start drawing the bib.
-
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/avoiding-overlap/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/avoiding-overlap/readme.mdx
index 1b1017a45a3..baf2192eeb9 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/avoiding-overlap/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/avoiding-overlap/readme.mdx
@@ -1,6 +1,6 @@
---
title: Avoiding overlap
-order: 92
+sidebar_position: 92
---
While we've only drawn the end of one strap, it's pretty obvious they overlap,
@@ -11,9 +11,10 @@ Specifically, we're going to rotate our strap out of the way until it no longer
The rest of our bib should stay as it is, so let's start by making a list of points we need
to rotate.
-However, there is a catch.
+However, there is a catch.
## Macros and auto-generated IDs
+
We have used the `round` macro to help us round the corners
of our strap, and it added a bunch of auto-generated points to our pattern. We need to
rotate these points too, but what are their names?
@@ -49,7 +50,7 @@ that return value, but if we did, it would look like this:
```
Those names aren't very handy to remember. So I will rewrite this code a bit to
-we'll capture these return values from the `round` macros and create
+we'll capture these return values from the `round` macros and create
easy-to-remember points from them:
@@ -68,36 +69,38 @@ function draftBib({
part,
}) {
- /*
- * Construct the quarter neck opening
- */
+/\*
+
+- Construct the quarter neck opening
+ _/
let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
+ let target = (measurements.head _ options.neckRatio) /4
let delta
do {
- points.right = new Point(
- tweak * measurements.head / 10,
- 0
- )
- points.bottom = new Point(
- 0,
- tweak * measurements.head / 12
- )
-
+ points.right = new Point(
+ tweak _ measurements.head / 10,
+ 0
+ )
+ points.bottom = new Point(
+ 0,
+ tweak _ measurements.head / 12
+ )
+
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
-
+
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
.hide()
@@ -105,11 +108,13 @@ function draftBib({
delta = paths.quarterNeck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- /*
- * Construct the complete neck opening
- */
+} while (Math.abs(delta) > 1)
+
+/\*
+
+- Construct the complete neck opening
+ \*/
points.rightCp2 = points.rightCp1.flipY()
points.bottomCp1 = points.bottomCp2.flipX()
points.left = points.right.flipX()
@@ -119,97 +124,103 @@ function draftBib({
points.topCp1 = points.bottomCp2.flipY()
points.topCp2 = points.bottomCp1.flipY()
- paths.neck = new Path()
- .move(points.top)
- .curve(points.topCp2, points.leftCp1, points.left)
- .curve(points.leftCp2, points.bottomCp1, points.bottom)
- .curve(points.bottomCp2, points.rightCp1, points.right)
- .curve(points.rightCp2, points.topCp1, points.top)
- .close()
- .addClass('fabric')
+paths.neck = new Path()
+.move(points.top)
+.curve(points.topCp2, points.leftCp1, points.left)
+.curve(points.leftCp2, points.bottomCp1, points.bottom)
+.curve(points.bottomCp2, points.rightCp1, points.right)
+.curve(points.rightCp2, points.topCp1, points.top)
+.close()
+.addClass('fabric')
- /*
- * Drawing the bib outline
- */
- const width = measurements.head * options.widthRatio
- const length = measurements.head * options.lengthRatio
+/\*
- points.topLeft = new Point(
- width / -2,
- points.top.y - (width / 2 - points.right.x)
- )
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+- Drawing the bib outline
+ _/
+ const width = measurements.head _ options.widthRatio
+ const length = measurements.head \* options.lengthRatio
- /*
- * Shape the straps
- */
+points.topLeft = new Point(
+width / -2,
+points.top.y - (width / 2 - points.right.x)
+)
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
+
+/\*
+
+- Shape the straps
+ \*/
points.edgeLeft = new Point(points.topLeft.x, points.left.y)
points.edgeRight = new Point(points.topRight.x, points.right.y)
points.edgeTop = new Point(0, points.topLeft.y)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
- points.topLeft,
- 0.5
- )
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
+points.topLeft,
+0.5
+)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- // Round the straps
- const strap = points.edgeTop.dy(points.top)
+// Round the straps
+const strap = points.edgeTop.dy(points.top)
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- // highlight-start
- /*
- * Macros will return the auto-generated IDs
- */
+// highlight-start
+/\*
+
+- Macros will return the auto-generated IDs
+ \*/
const ids1 = {
- tipRightTop: macro("round", {
- id: "tipRightTop",
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- hide: false
- }),
- tipRightBottom: macro("round", {
- id: "tipRightBottom",
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- hide: false
- })
+ tipRightTop: macro("round", {
+ id: "tipRightTop",
+ from: points.edgeTop,
+ to: points.tipRight,
+ via: points.tipRightTop,
+ hide: false
+ }),
+ tipRightBottom: macro("round", {
+ id: "tipRightBottom",
+ from: points.tipRight,
+ to: points.top,
+ via: points.tipRightBottom,
+ hide: false
+ })
}
- /*
- * Create points from them with easy names
- */
+/\*
+
+- Create points from them with easy names
+ \*/
for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
+ for (const id of ['start', 'cp1', 'cp2', 'end']) {
+ points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+ }
}
// highlight-end
-
- /*
- * Now, adapt our `rect` path so it's no longer a rectangle:
- */
- paths.rect = new Path()
- .move(points.edgeTop)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .line(points.bottomLeft)
- .line(points.bottomRight)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop)
- .close()
- return part
+/\*
+
+- Now, adapt our `rect` path so it's no longer a rectangle:
+ \*/
+ paths.rect = new Path()
+ .move(points.edgeTop)
+ .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+ .line(points.bottomLeft)
+ .line(points.bottomRight)
+ .line(points.edgeRight)
+ .curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop)
+ .close()
+
+return part
}
-```
+
+````
Once we have our list of points to rotate, we can rotate them. How far? Until the strap no longer overlaps.
@@ -236,28 +247,28 @@ function draftBib({
let delta
do {
points.right = new Point(
- tweak * measurements.head / 10,
+ tweak * measurements.head / 10,
0
)
points.bottom = new Point(
- 0,
+ 0,
tweak * measurements.head / 12
)
-
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
-
+
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
.hide()
@@ -266,7 +277,7 @@ function draftBib({
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
} while (Math.abs(delta) > 1)
-
+
/*
* Construct the complete neck opening
*/
@@ -422,5 +433,6 @@ function draftBib({
return part
}
-```
+````
+
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/completing-the-neck-opening/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/completing-the-neck-opening/readme.mdx
index b71d6d475e9..49606b57b51 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/completing-the-neck-opening/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/completing-the-neck-opening/readme.mdx
@@ -1,6 +1,6 @@
---
title: Completing the neck opening
-order: 80
+sidebar_position: 80
---
We've constructed the perfectly sized quarter neck, and we're going to use this
@@ -25,36 +25,38 @@ function draftBib({
part,
}) {
- /*
- * Construct the quarter neck opening
- */
+/\*
+
+- Construct the quarter neck opening
+ _/
let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
+ let target = (measurements.head _ options.neckRatio) /4
let delta
do {
- points.right = new Point(
- tweak * measurements.head / 10,
- 0
- )
- points.bottom = new Point(
- 0,
- tweak * measurements.head / 12
- )
+ points.right = new Point(
+ tweak _ measurements.head / 10,
+ 0
+ )
+ points.bottom = new Point(
+ 0,
+ tweak _ measurements.head / 12
+ )
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
// highlight-start
@@ -64,11 +66,13 @@ function draftBib({
delta = paths.quarterNeck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- return part
+} while (Math.abs(delta) > 1)
+
+return part
}
-```
+
+````
We're saying: _hide this path_. In other words, don't show it.
@@ -105,28 +109,28 @@ function draftBib({
let delta
do {
points.right = new Point(
- tweak * measurements.head / 10,
+ tweak * measurements.head / 10,
0
)
points.bottom = new Point(
- 0,
+ 0,
tweak * measurements.head / 12
)
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
-
+
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
.hide()
@@ -160,11 +164,12 @@ function draftBib({
// highlight-end
return part
}
-```
+````
+
To add the points, we're using the `Point.flipX()` and `Point.flipY()` methods
-here. There's a few new Path methods too, like `close()` and `addClass()`.
+here. There's a few new Path methods too, like `close()` and `addClass()`.
Perhaps you can figure out what they do? If not, both [the Point
documentation](/reference/api/point/) and [the Path
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/conclusion/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/conclusion/readme.mdx
index b4900bd5c1d..1675f2d0a35 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/conclusion/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/conclusion/readme.mdx
@@ -1,6 +1,6 @@
---
title: Conclusion (of part 2)
-order: 99
+sidebar_position: 99
---
You made it to the end of part 2, in which we got to do some real parametric design.
@@ -14,7 +14,7 @@ way.
You've also learned how to draw paths, which are the lines and curves that make up our pattern.
And we've used macros which can help us with repetitive tasks.
-What we've gotten so far is a perfectly suitable sewing pattern. You can print this,
+What we've gotten so far is a perfectly suitable sewing pattern. You can print this,
and make a nice bib out of it.
But when we stick to these basics, FreeSewing doesn't really get a chance to shine.
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/constructing-the-neck-opening/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/constructing-the-neck-opening/readme.mdx
index d19a03cfcdb..96f4fd93f51 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/constructing-the-neck-opening/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/constructing-the-neck-opening/readme.mdx
@@ -1,6 +1,6 @@
---
title: Constructing the neck opening
-order: 60
+sidebar_position: 60
---
Our goal is to construct an oval neck opening that has a circumference
@@ -51,39 +51,41 @@ function draftBib({
}) {
// highlight-start
- /*
- * Construct the quarter neck opening
- */
+/\*
+
+- Construct the quarter neck opening
+ \*/
points.right = new Point(
- measurements.head / 10,
- 0
+ measurements.head / 10,
+ 0
)
points.bottom = new Point(
- 0,
- measurements.head / 12
+ 0,
+ measurements.head / 12
)
- points.rightCp1 = points.right.shift(
- 90,
- points.bottom.dy(points.right) / 2
- )
- points.bottomCp2 = points.bottom.shift(
- 0,
- points.bottom.dx(points.right) / 2
- )
+points.rightCp1 = points.right.shift(
+90,
+points.bottom.dy(points.right) / 2
+)
+points.bottomCp2 = points.bottom.shift(
+0,
+points.bottom.dx(points.right) / 2
+)
- paths.quarterNeck = new Path()
- .move(points.right)
- .curve(
- points.rightCp1,
- points.bottomCp2,
- points.bottom
- )
+paths.quarterNeck = new Path()
+.move(points.right)
+.curve(
+points.rightCp1,
+points.bottomCp2,
+points.bottom
+)
// highlight-end
- return part
+return part
}
-```
+
+````
We've added some points to our part, and drawn our first path.
@@ -93,10 +95,10 @@ Let's look at each line in detail.
```js
points.right = new Point(
- measurements.head / 10,
+ measurements.head / 10,
0
)
-```
+````
- We're adding a point named `right` to the `points` object which holds our
part's points
@@ -108,10 +110,7 @@ points.right = new Point(
The creation of `points.bottom` is very similar, so let's skip to the next line:
```js
-points.rightCp1 = points.right.shift(
- 90,
- points.bottom.dy(points.right) / 2
-)
+points.rightCp1 = points.right.shift(90, points.bottom.dy(points.right) / 2)
```
- We're adding a point named `rightCp1`, which will become the _control point_
@@ -130,7 +129,9 @@ the right (0 degrees) for half of the X-delta between points `bottom` and
`right`.
:::tip
+
##### Further reading
+
The `Point.shift()` and `Point.dy()` are just the tip of the iceberg.
Points come with a bunch of these methods.
You can find them all in [the Point API docs](/reference/api/point/).
@@ -144,11 +145,7 @@ introduced on the next line: Paths.
```js
paths.quarterNeck = new Path()
.move(points.right)
- .curve(
- points.rightCp1,
- points.bottomCp2,
- points.bottom
- )
+ .curve(points.rightCp1, points.bottomCp2, points.bottom)
```
- We're adding a path named `quarterNeck` to the `paths` object which holds our
@@ -166,7 +163,7 @@ From there, we drew a cubic Bézier curve to our `bottom` point by using
:::tip
-Many of the methods in the FreeSewing API are *chainable* allowing you
+Many of the methods in the FreeSewing API are _chainable_ allowing you
to string them together like in this example.
:::
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/creating-the-closure/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/creating-the-closure/readme.mdx
index 172c062eb10..5548e1302ea 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/creating-the-closure/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/creating-the-closure/readme.mdx
@@ -1,6 +1,6 @@
---
title: Creating the closure
-order: 91
+sidebar_position: 91
---
Things are starting to look good, but we can't fit the bib over the baby's head like this.
@@ -60,28 +60,27 @@ function draftBib({
tweak _ measurements.head / 12
)
+ points.rightCp1 = points.right.shift(
+ 90,
+ points.bottom.dy(points.right) / 2
+ )
+ points.bottomCp2 = points.bottom.shift(
+ 0,
+ points.bottom.dx(points.right) / 2
+ )
- points.rightCp1 = points.right.shift(
- 90,
- points.bottom.dy(points.right) / 2
- )
- points.bottomCp2 = points.bottom.shift(
- 0,
- points.bottom.dx(points.right) / 2
- )
+ paths.quarterNeck = new Path()
+ .move(points.right)
+ .curve(
+ points.rightCp1,
+ points.bottomCp2,
+ points.bottom
+ )
+ .hide()
- paths.quarterNeck = new Path()
- .move(points.right)
- .curve(
- points.rightCp1,
- points.bottomCp2,
- points.bottom
- )
- .hide()
-
- delta = paths.quarterNeck.length() - target
- if (delta > 0) tweak = tweak * 0.99
- else tweak = tweak * 1.02
+ delta = paths.quarterNeck.length() - target
+ if (delta > 0) tweak = tweak _ 0.99
+ else tweak = tweak _ 1.02
} while (Math.abs(delta) > 1)
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/draft-method/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/draft-method/readme.mdx
index a5d72692f6a..3019c9d7da9 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/draft-method/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/draft-method/readme.mdx
@@ -1,6 +1,6 @@
---
title: A part's draft method
-order: 50
+sidebar_position: 50
---
Time to turn our attention to the draft method of our part.
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-bib-outline/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-bib-outline/readme.mdx
index 175f4cbc829..2065cc6c9c8 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-bib-outline/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-bib-outline/readme.mdx
@@ -1,6 +1,6 @@
---
title: Drawing the bib outline
-order: 88
+sidebar_position: 88
---
With our neck opening in place, let us draw the basic outline of our bib.
@@ -17,46 +17,47 @@ function draftBib({
part,
}) {
- // Construct the quarter neck opening
- let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
- let delta
- do {
- points.right = new Point(
- tweak * measurements.head / 10,
- 0
- )
- points.bottom = new Point(
- 0,
- tweak * measurements.head / 12
- )
-
+// Construct the quarter neck opening
+let tweak = 1
+let target = (measurements.head _ options.neckRatio) /4
+let delta
+do {
+points.right = new Point(
+tweak _ measurements.head / 10,
+0
+)
+points.bottom = new Point(
+0,
+tweak \* measurements.head / 12
+)
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
- paths.quarterNeck = new Path()
- .move(points.right)
- .curve(
- points.rightCp1,
- points.bottomCp2,
- points.bottom
- )
- .hide()
+paths.quarterNeck = new Path()
+.move(points.right)
+.curve(
+points.rightCp1,
+points.bottomCp2,
+points.bottom
+)
+.hide()
- delta = paths.quarterNeck.length() - target
- if (delta > 0) tweak = tweak * 0.99
- else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
+delta = paths.quarterNeck.length() - target
+if (delta > 0) tweak = tweak _ 0.99
+else tweak = tweak _ 1.02
+} while (Math.abs(delta) > 1)
- /*
- * Construct the complete neck opening
- */
+/\*
+
+- Construct the complete neck opening
+ \*/
points.rightCp2 = points.rightCp1.flipY()
points.bottomCp1 = points.bottomCp2.flipX()
points.left = points.right.flipX()
@@ -66,43 +67,45 @@ function draftBib({
points.topCp1 = points.bottomCp2.flipY()
points.topCp2 = points.bottomCp1.flipY()
- paths.neck = new Path()
- .move(points.top)
- .curve(points.topCp2, points.leftCp1, points.left)
- .curve(points.leftCp2, points.bottomCp1, points.bottom)
- .curve(points.bottomCp2, points.rightCp1, points.right)
- .curve(points.rightCp2, points.topCp1, points.top)
- .close()
- .addClass('fabric')
+paths.neck = new Path()
+.move(points.top)
+.curve(points.topCp2, points.leftCp1, points.left)
+.curve(points.leftCp2, points.bottomCp1, points.bottom)
+.curve(points.bottomCp2, points.rightCp1, points.right)
+.curve(points.rightCp2, points.topCp1, points.top)
+.close()
+.addClass('fabric')
// highlight-start
- /*
- * Drawing the bib outline
- */
- const width = measurements.head * options.widthRatio
- const length = measurements.head * options.lengthRatio
+/\*
- points.topLeft = new Point(
- width / -2,
- points.top.y - (width / 2 - points.right.x)
- )
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+- Drawing the bib outline
+ _/
+ const width = measurements.head _ options.widthRatio
+ const length = measurements.head \* options.lengthRatio
- paths.rect = new Path()
- .move(points.topLeft)
- .line(points.bottomLeft)
- .line(points.bottomRight)
- .line(points.topRight)
- .line(points.topLeft)
- .close()
- .addClass('fabric')
+points.topLeft = new Point(
+width / -2,
+points.top.y - (width / 2 - points.right.x)
+)
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
+
+paths.rect = new Path()
+.move(points.topLeft)
+.line(points.bottomLeft)
+.line(points.bottomRight)
+.line(points.topRight)
+.line(points.topLeft)
+.close()
+.addClass('fabric')
// highlight-end
- return part
+return part
}
-```
+
+````
First thing we did was create the `width` and `length` variables to
@@ -111,7 +114,7 @@ save ourselves some typing:
```js
const width = measurements.head * options.widthRatio
const length = measurements.head * options.lengthRatio
-```
+````
Both the length and width of our bib are a factor of the head circumference.
This way, our bib size will adapt to the size of the baby, and the user can tweak
@@ -120,10 +123,7 @@ the length and width by playing with the options we added to the pattern.
Once we have our variables, we're adding some new points, and a second path called `rect`.
```js
-points.topLeft = new Point(
- width / -2,
- points.top.y - (width / 2 - points.right.x)
-)
+points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
points.topRight = points.topLeft.shift(0, width)
points.bottomLeft = points.topLeft.shift(-90, length)
points.bottomRight = points.topRight.shift(-90, length)
@@ -142,4 +142,3 @@ We're calculating the `topLeft` point so that the top edge of our bib
and the sides are equidistant from the neck opening.
We didn't have to do that. But it looks nicely balanced this way.
-
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-straps/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-straps/readme.mdx
index 509f6e1a8dc..a16a8917690 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-straps/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/drawing-the-straps/readme.mdx
@@ -1,6 +1,6 @@
---
title: Drawing the straps
-order: 93
+sidebar_position: 93
---
All we have to do now is flip a bunch of points on the other side,
@@ -28,36 +28,38 @@ function draftBib({
part,
}) {
- /*
- * Construct the neck opening
- */
+/\*
+
+- Construct the neck opening
+ _/
let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
+ let target = (measurements.head _ options.neckRatio) /4
let delta
do {
- points.right = new Point(
- tweak * measurements.head / 10,
- 0
- )
- points.bottom = new Point(
- 0,
- tweak * measurements.head / 12
- )
-
+ points.right = new Point(
+ tweak _ measurements.head / 10,
+ 0
+ )
+ points.bottom = new Point(
+ 0,
+ tweak _ measurements.head / 12
+ )
+
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
-
+
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
.hide()
@@ -65,11 +67,13 @@ function draftBib({
delta = paths.quarterNeck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- /*
- * Construct the complete neck opening
- */
+} while (Math.abs(delta) > 1)
+
+/\*
+
+- Construct the complete neck opening
+ \*/
points.rightCp2 = points.rightCp1.flipY()
points.bottomCp1 = points.bottomCp2.flipX()
points.left = points.right.flipX()
@@ -79,233 +83,239 @@ function draftBib({
points.topCp1 = points.bottomCp2.flipY()
points.topCp2 = points.bottomCp1.flipY()
- // strikeout-start
- /* Remove this path
- paths.neck = new Path()
- .move(points.top)
- .curve(points.topCp2, points.leftCp1, points.left)
- .curve(points.leftCp2, points.bottomCp1, points.bottom)
- .curve(points.bottomCp2, points.rightCp1, points.right)
- .curve(points.rightCp2, points.topCp1, points.top)
- .close()
- .addClass('fabric')
- */
- // strikeout-end
+// strikeout-start
+/_ Remove this path
+paths.neck = new Path()
+.move(points.top)
+.curve(points.topCp2, points.leftCp1, points.left)
+.curve(points.leftCp2, points.bottomCp1, points.bottom)
+.curve(points.bottomCp2, points.rightCp1, points.right)
+.curve(points.rightCp2, points.topCp1, points.top)
+.close()
+.addClass('fabric')
+_/
+// strikeout-end
- // Drawing the bib outline
- const width = measurements.head * options.widthRatio
- const length = measurements.head * options.lengthRatio
+// Drawing the bib outline
+const width = measurements.head _ options.widthRatio
+const length = measurements.head _ options.lengthRatio
- points.topLeft = new Point(
- width / -2,
- points.top.y - (width / 2 - points.right.x)
- )
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+points.topLeft = new Point(
+width / -2,
+points.top.y - (width / 2 - points.right.x)
+)
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
- /*
- * Shape the straps
- */
+/\*
+
+- Shape the straps
+ \*/
points.edgeLeft = new Point(points.topLeft.x, points.left.y)
points.edgeRight = new Point(points.topRight.x, points.right.y)
points.edgeTop = new Point(0, points.topLeft.y)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
- points.topLeft,
- 0.5
- )
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
+points.topLeft,
+0.5
+)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- // Round the straps
- const strap = points.edgeTop.dy(points.top)
+// Round the straps
+const strap = points.edgeTop.dy(points.top)
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- /*
- * Macros will return the auto-generated IDs
- */
+/\*
+
+- Macros will return the auto-generated IDs
+ _/
const ids1 = {
- tipRightTop: macro("round", {
- id: "tipRightTop",
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- // strikeout-start
- /* Remove this to have the macro
- * only create the points we need
- * and not draw a path
- hide: false
- */
- // strikeout-end
- }),
- tipRightBottom: macro("round", {
- id: "tipRightBottom",
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- // strikeout-start
- /* Remove this to have the macro
- * only create the points we need
- * and not draw a path
- hide: false
- */
- // strikeout-end
- })
- }
-
- /*
- * Create points from them with easy names
- */
- for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
- }
-
- /*
- * This is the list of points we need to rotate
- * to move our strap out of the way
- */
-
- const rotateThese = [
- "edgeTopLeftCp",
- "edgeTop",
- "tipRight",
- "tipRightTop",
- "tipRightTopStart",
- "tipRightTopCp1",
- "tipRightTopCp2",
- "tipRightTopEnd",
- "tipRightBottomStart",
- "tipRightBottomCp1",
- "tipRightBottomCp2",
- "tipRightBottomEnd",
- "tipRightBottom",
- "top",
- "topCp2"
- ]
- /*
- * We're rotating all the points in
- * the `rotateThese` array around
- * the `edgeLeft` point.
- *
- * We're using increments of 1 degree
- * until the `tipRightBottomStart` point
- * is 1 mm beyond the center of our bib.
- */
- while (points.tipRightBottomStart.x > -1) {
- for (const p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
- }
-
+ tipRightTop: macro("round", {
+ id: "tipRightTop",
+ from: points.edgeTop,
+ to: points.tipRight,
+ via: points.tipRightTop,
// strikeout-start
- /* Remove this repetition
- macro("round", {
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- prefix: "tipRightTop",
- hide: false,
- class: 'contrast dotted',
- })
- macro("round", {
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- prefix: "tipRightBottom",
- hide: false,
- class: 'contrast dotted',
- })
-
- paths.rect = new Path()
- .move(points.edgeTop)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .line(points.bottomLeft)
- .line(points.bottomRight)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop)
- .close()
- */
+ /_ Remove this to have the macro
+ _ only create the points we need
+ _ and not draw a path
+ hide: false
+ _/
// strikeout-end
+ }),
+ tipRightBottom: macro("round", {
+ id: "tipRightBottom",
+ from: points.tipRight,
+ to: points.top,
+ via: points.tipRightBottom,
+ // strikeout-start
+ /_ Remove this to have the macro
+ _ only create the points we need
+ _ and not draw a path
+ hide: false
+ \*/
+ // strikeout-end
+ })
+ }
- // highlight-start
- // Add points for second strap
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.topCp1 = points.topCp2.flipX()
- points.tipLeftTopStart = points.tipRightTopStart.flipX()
- points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
- points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
- points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
- points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
- points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
- points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
- points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
+/\*
- // Create one path for the bib outline
- paths.seam = new Path()
- .move(points.edgeLeft)
- .line(points.bottomLeft)
- .line(points.bottomRight)
- .line(points.edgeRight)
- .curve(
- points.edgeRightCp,
- points.edgeTopRightCp,
- points.tipLeftTopStart
- )
- .curve(
- points.tipLeftTopCp1,
- points.tipLeftTopCp2,
- points.tipLeftTopEnd
- )
- .curve(
- points.tipLeftBottomCp1,
- points.tipLeftBottomCp2,
- points.tipLeftBottomEnd
- )
- .curve(
- points.topCp1,
- points.rightCp2,
- points.right
- )
- .curve(
- points.rightCp1,
- points.bottomCp2,
- points.bottom
- )
- .curve(
- points.bottomCp1,
- points.leftCp2,
- points.left
- )
- .curve(
- points.leftCp1,
- points.topCp2,
- points.tipRightBottomEnd
- )
- .curve(
- points.tipRightBottomCp2,
- points.tipRightBottomCp1,
- points.tipRightBottomStart
- )
- .curve(
- points.tipRightTopCp2,
- points.tipRightTopCp1,
- points.tipRightTopStart
- )
- .curve(
- points.edgeTopLeftCp,
- points.edgeLeftCp,
- points.edgeLeft
- )
- .close()
- .addClass("fabric")
- // highlight-end
+- Create points from them with easy names
+ \*/
+ for (const side in ids1) {
+ for (const id of ['start', 'cp1', 'cp2', 'end']) {
+ points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+ }
+ }
- return part
+/\*
+
+- This is the list of points we need to rotate
+- to move our strap out of the way
+ \*/
+
+const rotateThese = [
+"edgeTopLeftCp",
+"edgeTop",
+"tipRight",
+"tipRightTop",
+"tipRightTopStart",
+"tipRightTopCp1",
+"tipRightTopCp2",
+"tipRightTopEnd",
+"tipRightBottomStart",
+"tipRightBottomCp1",
+"tipRightBottomCp2",
+"tipRightBottomEnd",
+"tipRightBottom",
+"top",
+"topCp2"
+]
+/\*
+_ We're rotating all the points in
+_ the `rotateThese` array around
+_ the `edgeLeft` point.
+_
+_ We're using increments of 1 degree
+_ until the `tipRightBottomStart` point
+_ is 1 mm beyond the center of our bib.
+_/
+while (points.tipRightBottomStart.x > -1) {
+for (const p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
}
+
+// strikeout-start
+/\* Remove this repetition
+macro("round", {
+from: points.edgeTop,
+to: points.tipRight,
+via: points.tipRightTop,
+prefix: "tipRightTop",
+hide: false,
+class: 'contrast dotted',
+})
+macro("round", {
+from: points.tipRight,
+to: points.top,
+via: points.tipRightBottom,
+prefix: "tipRightBottom",
+hide: false,
+class: 'contrast dotted',
+})
+
+paths.rect = new Path()
+.move(points.edgeTop)
+.curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+.line(points.bottomLeft)
+.line(points.bottomRight)
+.line(points.edgeRight)
+.curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop)
+.close()
+\*/
+// strikeout-end
+
+// highlight-start
+// Add points for second strap
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.topCp1 = points.topCp2.flipX()
+points.tipLeftTopStart = points.tipRightTopStart.flipX()
+points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
+points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
+points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
+points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
+points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
+points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
+points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
+
+// Create one path for the bib outline
+paths.seam = new Path()
+.move(points.edgeLeft)
+.line(points.bottomLeft)
+.line(points.bottomRight)
+.line(points.edgeRight)
+.curve(
+points.edgeRightCp,
+points.edgeTopRightCp,
+points.tipLeftTopStart
+)
+.curve(
+points.tipLeftTopCp1,
+points.tipLeftTopCp2,
+points.tipLeftTopEnd
+)
+.curve(
+points.tipLeftBottomCp1,
+points.tipLeftBottomCp2,
+points.tipLeftBottomEnd
+)
+.curve(
+points.topCp1,
+points.rightCp2,
+points.right
+)
+.curve(
+points.rightCp1,
+points.bottomCp2,
+points.bottom
+)
+.curve(
+points.bottomCp1,
+points.leftCp2,
+points.left
+)
+.curve(
+points.leftCp1,
+points.topCp2,
+points.tipRightBottomEnd
+)
+.curve(
+points.tipRightBottomCp2,
+points.tipRightBottomCp1,
+points.tipRightBottomStart
+)
+.curve(
+points.tipRightTopCp2,
+points.tipRightTopCp1,
+points.tipRightTopStart
+)
+.curve(
+points.edgeTopLeftCp,
+points.edgeLeftCp,
+points.edgeLeft
+)
+.close()
+.addClass("fabric")
+// highlight-end
+
+return part
+}
+
```
+```
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/fitting-the-neck-opening/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/fitting-the-neck-opening/readme.mdx
index 045bdfb077b..d2d935f9962 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/fitting-the-neck-opening/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/fitting-the-neck-opening/readme.mdx
@@ -1,10 +1,10 @@
---
title: Fitting the neck opening
-order: 70
+sidebar_position: 70
---
We are not going to create some opening that we _hope_ is the right size, we're
-going to make sure it is. Here's how we'll make sure the neck opening is _just
+going to make sure it is. Here's how we'll make sure the neck opening is _just
right_:
@@ -19,54 +19,56 @@ function draftBib({
part,
}) {
- /*
- * Construct the quarter neck opening
- */
-// highlight-start
+/\*
+
+- Construct the quarter neck opening
+ _/
+ // highlight-start
let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
+ let target = (measurements.head _ options.neckRatio) /4
let delta
do {
-// highlight-end
- points.right = new Point(
-// highlight-start
- tweak * measurements.head / 10,
-// highlight-end
- 0
- )
- points.bottom = new Point(
- 0,
-// highlight-start
- tweak * measurements.head / 12
-// highlight-end
- )
+ // highlight-end
+ points.right = new Point(
+ // highlight-start
+ tweak _ measurements.head / 10,
+ // highlight-end
+ 0
+ )
+ points.bottom = new Point(
+ 0,
+ // highlight-start
+ tweak _ measurements.head / 12
+ // highlight-end
+ )
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
-
// highlight-start
- delta = paths.quarterNeck.length() - target
- if (delta > 0) tweak = tweak * 0.99
- else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
+delta = paths.quarterNeck.length() - target
+if (delta > 0) tweak = tweak _ 0.99
+else tweak = tweak _ 1.02
+} while (Math.abs(delta) > 1)
// highlight-end
- return part
+return part
}
+
```
@@ -94,3 +96,4 @@ are within 1 mm of our target value.
Now that we're happy with the length of our quarter neck opening, let's
complete the entire neck opening.
+```
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/our-first-design/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/our-first-design/readme.mdx
index a73713cca94..013b0c1afe2 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/our-first-design/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/our-first-design/readme.mdx
@@ -1,14 +1,14 @@
---
title: Creating a new design
-order: 10
+sidebar_position: 10
---
The development environment has already setup various designs for us.
-Since I am using the **From scratch** template, the files I want to edit live
+Since I am using the **From scratch** template, the files I want to edit live
in `design/from-scratch`.
The design's main file is `design/from-scratch/src/index.mjs`, and our bib part
-will live in `design/from-scratch/src/bib.mjs`.
+will live in `design/from-scratch/src/bib.mjs`.
This `bib.mjs` file is where will be doing most of the work here in part 2 of this
tutorial. But let's start with the `index.mjs` file as an appetizer, because this
@@ -37,7 +37,7 @@ Not too intimidating, is it?
## Imports
-At the top of the file, we have a bunch of *imports*:
+At the top of the file, we have a bunch of _imports_:
```src/index.mjs
import { Design } from '@freesewing/core'
@@ -48,13 +48,13 @@ import { bib } from './bib.mjs'
An `import` is how JavaScript loads code from a different file. \
It essentially says: _import **something** from **somewhere**_:
-| Something | Somewhere | Description |
-| ---------:|:--------- |:----------- |
-| `Design` | `@freesewing/core` | Loads the `Design` constructor from FreeSewing's core library |
-| `i18n` | `../i18n/index.mjs` | Loads `i18n` from the `index.mjs` file in the `i18n` one level higher (these are the translations) |
-| `bib` | `./bib.mjs` | Loads `bib` from the `bib.mjs` file in the same folder (this is our part) |
+| Something | Somewhere | Description |
+| --------: | :------------------ | :------------------------------------------------------------------------------------------------- |
+| `Design` | `@freesewing/core` | Loads the `Design` constructor from FreeSewing's core library |
+| `i18n` | `../i18n/index.mjs` | Loads `i18n` from the `index.mjs` file in the `i18n` one level higher (these are the translations) |
+| `bib` | `./bib.mjs` | Loads `bib` from the `bib.mjs` file in the same folder (this is our part) |
-As you can see, the *somewhere* can be different things. A local file like in
+As you can see, the _somewhere_ can be different things. A local file like in
lines 2 and 3, or a package published on
[NPM](https://www.npmjs.com/package/@freesewing/core), in line 1.
@@ -82,7 +82,7 @@ If you are not familiar with this syntax, you'll get the hang of it soon enough.
## Design constructor
-Finally, the most interesting part of this file is the middle part where we are
+Finally, the most interesting part of this file is the middle part where we are
creating a new design:
```src/index.mjs
@@ -95,7 +95,7 @@ const FromScratch = new Design({
})
```
-The `Design` that we imported on line 1 is a so-called **constructor**.
+The `Design` that we imported on line 1 is a so-called **constructor**.
A constructor is a function that can create things out of nothing. Or,
to be more accurate, that you can use with the `new` keyword.
@@ -105,8 +105,8 @@ It's a convention that constructor names start with an **C**apital letter.
:::
We are passing some info to this `Design` function, but the `data` we are
-passing is optional. If we strip that away for a moment, and don't bother
-assigning the result to a variable, we reveal the essence of what it takes to
+passing is optional. If we strip that away for a moment, and don't bother
+assigning the result to a variable, we reveal the essence of what it takes to
create a new FreeSewing design:
```src/index.mjs
@@ -115,8 +115,8 @@ new Design({
})
```
-In several places in this documentation, I will mention that *a design is not
-much more than a thin wrapper around parts*. But I feel nothing drives
+In several places in this documentation, I will mention that _a design is not
+much more than a thin wrapper around parts_. But I feel nothing drives
that point home like seeing it in code like this.
To create a new design, we call the `Design` constructor and give it a list
@@ -124,9 +124,8 @@ To create a new design, we call the `Design` constructor and give it a list
:::note RELATED
-Refer to [the design reference documentation](/reference/api/design) for
+Refer to [the design reference documentation](/reference/api/design) for
all details about what you can pass to the Design constructor.
:::
That's it. So let's look at where the real action is next: Our first part.
-
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/our-first-part/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/our-first-part/readme.mdx
index 1047361cdff..014ce159547 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/our-first-part/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/our-first-part/readme.mdx
@@ -1,6 +1,6 @@
---
title: Creating a part
-order: 20
+sidebar_position: 20
---
Much like garments themselves, patterns are made up of _parts_.
@@ -9,14 +9,14 @@ so on. The pattern you create today is very simple, and only has one part: the b
:::tip
-It's a good idea to keep each part in its own file. You don't *have to* do
-this, but it's a good habit to get into.
+It's a good idea to keep each part in its own file. You don't _have to_ do
+this, but it's a good habit to get into.
:::
## bib.mjs
-I am going to use the **From scratch** template. So the files I want to edit live
+I am going to use the **From scratch** template. So the files I want to edit live
in `design/from-scratch`.
Our part lives in `design/from-scratch/src/bib.mjs`, and it currently looks like this:
@@ -41,8 +41,8 @@ The only mandatory keys on a part object are `name` and `draft`.
:::note RELATED
-Refer to [the part reference documentation](/reference/api/part) for
-all details about configuring the part object
+Refer to [the part reference documentation](/reference/api/part) for
+all details about configuring the part object
:::
:::note
@@ -52,7 +52,6 @@ Each parts stands on its own, and parts from various designs can be combined
to create other designs.
:::
-
### The part name
```src/bib.mjs
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/rounding-the-corners/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/rounding-the-corners/readme.mdx
index 26189ce4eef..7cd0b4925cb 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/rounding-the-corners/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/rounding-the-corners/readme.mdx
@@ -1,6 +1,6 @@
---
title: Rounding the corners
-order: 94
+sidebar_position: 94
---
We already know how to round corners, we'll have the `round` macro take care of that for us.
@@ -22,36 +22,38 @@ function draftBib({
part,
}) {
- /*
- * Construct the quarter neck opening
- */
+/\*
+
+- Construct the quarter neck opening
+ _/
let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
+ let target = (measurements.head _ options.neckRatio) /4
let delta
do {
- points.right = new Point(
- tweak * measurements.head / 10,
- 0
- )
- points.bottom = new Point(
- 0,
- tweak * measurements.head / 12
- )
-
+ points.right = new Point(
+ tweak _ measurements.head / 10,
+ 0
+ )
+ points.bottom = new Point(
+ 0,
+ tweak _ measurements.head / 12
+ )
+
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
-
+
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
.hide()
@@ -59,11 +61,13 @@ function draftBib({
delta = paths.quarterNeck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- /*
- * Construct the complete neck opening
- */
+} while (Math.abs(delta) > 1)
+
+/\*
+
+- Construct the complete neck opening
+ \*/
points.rightCp2 = points.rightCp1.flipY()
points.bottomCp1 = points.bottomCp2.flipX()
points.left = points.right.flipX()
@@ -73,216 +77,225 @@ function draftBib({
points.topCp1 = points.bottomCp2.flipY()
points.topCp2 = points.bottomCp1.flipY()
- // Drawing the bib outline
- const width = measurements.head * options.widthRatio
- const length = measurements.head * options.lengthRatio
+// Drawing the bib outline
+const width = measurements.head _ options.widthRatio
+const length = measurements.head _ options.lengthRatio
- points.topLeft = new Point(
- width / -2,
- points.top.y - (width / 2 - points.right.x)
- )
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+points.topLeft = new Point(
+width / -2,
+points.top.y - (width / 2 - points.right.x)
+)
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
- /*
- * Shape the straps
- */
+/\*
+
+- Shape the straps
+ \*/
points.edgeLeft = new Point(points.topLeft.x, points.left.y)
points.edgeRight = new Point(points.topRight.x, points.right.y)
points.edgeTop = new Point(0, points.topLeft.y)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
- points.topLeft,
- 0.5
- )
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
+points.topLeft,
+0.5
+)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- // Round the straps
- const strap = points.edgeTop.dy(points.top)
+// Round the straps
+const strap = points.edgeTop.dy(points.top)
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- /*
- * Macros will return the auto-generated IDs
- */
+/\*
+
+- Macros will return the auto-generated IDs
+ \*/
const ids1 = {
- tipRightTop: macro("round", {
- id: "tipRightTop",
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- }),
- tipRightBottom: macro("round", {
- id: "tipRightBottom",
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- })
+ tipRightTop: macro("round", {
+ id: "tipRightTop",
+ from: points.edgeTop,
+ to: points.tipRight,
+ via: points.tipRightTop,
+ }),
+ tipRightBottom: macro("round", {
+ id: "tipRightBottom",
+ from: points.tipRight,
+ to: points.top,
+ via: points.tipRightBottom,
+ })
}
- /*
- * Create points from them with easy names
- */
+/\*
+
+- Create points from them with easy names
+ \*/
for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
+ for (const id of ['start', 'cp1', 'cp2', 'end']) {
+ points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+ }
}
+
/*
- * This is the list of points we need to rotate
- * to move our strap out of the way
- */
+
+- This is the list of points we need to rotate
+- to move our strap out of the way
+ _/
const rotateThese = [
- "edgeTopLeftCp",
- "edgeTop",
- "tipRight",
- "tipRightTop",
- "tipRightTopStart",
- "tipRightTopCp1",
- "tipRightTopCp2",
- "tipRightTopEnd",
- "tipRightBottomStart",
- "tipRightBottomCp1",
- "tipRightBottomCp2",
- "tipRightBottomEnd",
- "tipRightBottom",
- "top",
- "topCp2"
+ "edgeTopLeftCp",
+ "edgeTop",
+ "tipRight",
+ "tipRightTop",
+ "tipRightTopStart",
+ "tipRightTopCp1",
+ "tipRightTopCp2",
+ "tipRightTopEnd",
+ "tipRightBottomStart",
+ "tipRightBottomCp1",
+ "tipRightBottomCp2",
+ "tipRightBottomEnd",
+ "tipRightBottom",
+ "top",
+ "topCp2"
]
- /*
- * We're rotating all the points in
- * the `rotateThese` array around
- * the `edgeLeft` point.
- *
- * We're using increments of 1 degree
- * until the `tipRightBottomStart` point
- * is 1 mm beyond the center of our bib.
- */
- while (points.tipRightBottomStart.x > -1) {
+ /_
+ - We're rotating all the points in
+ - the `rotateThese` array around
+ - the `edgeLeft` point.
+ -
+ - We're using increments of 1 degree
+ - until the `tipRightBottomStart` point
+ - is 1 mm beyond the center of our bib.
+ \*/
+ while (points.tipRightBottomStart.x > -1) {
for (const p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
- }
-
- // Add points for second strap
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.topCp1 = points.topCp2.flipX()
- points.tipLeftTopStart = points.tipRightTopStart.flipX()
- points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
- points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
- points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
- points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
- points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
- points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
- points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
-
- // highlight-start
- /*
- * Round the bottom corners
- * Macros will return the auto-generated IDs
- */
- const ids2 = {
- bottomLeft: macro("round", {
- id: "bottomLeft",
- from: points.topLeft,
- to: points.bottomRight,
- via: points.bottomLeft,
- radius: points.bottomRight.x / 4,
- }),
- bottomRight: macro("round", {
- id: "bottomRight",
- from: points.bottomLeft,
- to: points.topRight,
- via: points.bottomRight,
- radius: points.bottomRight.x / 4,
- })
- }
-
- /*
- * Create points from them with easy names
- */
- for (const side in ids2) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
}
+
+// Add points for second strap
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.topCp1 = points.topCp2.flipX()
+points.tipLeftTopStart = points.tipRightTopStart.flipX()
+points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
+points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
+points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
+points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
+points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
+points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
+points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
+
+// highlight-start
+/\*
+
+- Round the bottom corners
+- Macros will return the auto-generated IDs
+ \*/
+ const ids2 = {
+ bottomLeft: macro("round", {
+ id: "bottomLeft",
+ from: points.topLeft,
+ to: points.bottomRight,
+ via: points.bottomLeft,
+ radius: points.bottomRight.x / 4,
+ }),
+ bottomRight: macro("round", {
+ id: "bottomRight",
+ from: points.bottomLeft,
+ to: points.topRight,
+ via: points.bottomRight,
+ radius: points.bottomRight.x / 4,
+ })
+ }
+
+/\*
+
+- Create points from them with easy names
+ \*/
+ for (const side in ids2) {
+ for (const id of ['start', 'cp1', 'cp2', 'end']) {
+ points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
+ }
}
// highlight-end
- // Create one path for the bib outline
- paths.seam = new Path()
- .move(points.edgeLeft)
- // strikeout-start
- /* We only need to replace the start
- * with the new lines below
- .line(points.bottomLeft)
- .line(points.bottomRight)
- */
- // strikeout-end
- // highlight-start
- .line(points.bottomLeftStart)
- .curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
- .line(points.bottomRightStart)
- .curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
- // highlight-end
- .line(points.edgeRight)
- .curve(
- points.edgeRightCp,
- points.edgeTopRightCp,
- points.tipLeftTopStart
- )
- .curve(
- points.tipLeftTopCp1,
- points.tipLeftTopCp2,
- points.tipLeftTopEnd
- )
- .curve(
- points.tipLeftBottomCp1,
- points.tipLeftBottomCp2,
- points.tipLeftBottomEnd
- )
- .curve(
- points.topCp1,
- points.rightCp2,
- points.right
- )
- .curve(
- points.rightCp1,
- points.bottomCp2,
- points.bottom
- )
- .curve(
- points.bottomCp1,
- points.leftCp2,
- points.left
- )
- .curve(
- points.leftCp1,
- points.topCp2,
- points.tipRightBottomEnd
- )
- .curve(
- points.tipRightBottomCp2,
- points.tipRightBottomCp1,
- points.tipRightBottomStart
- )
- .curve(
- points.tipRightTopCp2,
- points.tipRightTopCp1,
- points.tipRightTopStart
- )
- .curve(
- points.edgeTopLeftCp,
- points.edgeLeftCp,
- points.edgeLeft
- )
- .close()
- .addClass("fabric")
+// Create one path for the bib outline
+paths.seam = new Path()
+.move(points.edgeLeft)
+// strikeout-start
+/_ We only need to replace the start
+_ with the new lines below
+.line(points.bottomLeft)
+.line(points.bottomRight)
+\*/
+// strikeout-end
+// highlight-start
+.line(points.bottomLeftStart)
+.curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
+.line(points.bottomRightStart)
+.curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
+// highlight-end
+.line(points.edgeRight)
+.curve(
+points.edgeRightCp,
+points.edgeTopRightCp,
+points.tipLeftTopStart
+)
+.curve(
+points.tipLeftTopCp1,
+points.tipLeftTopCp2,
+points.tipLeftTopEnd
+)
+.curve(
+points.tipLeftBottomCp1,
+points.tipLeftBottomCp2,
+points.tipLeftBottomEnd
+)
+.curve(
+points.topCp1,
+points.rightCp2,
+points.right
+)
+.curve(
+points.rightCp1,
+points.bottomCp2,
+points.bottom
+)
+.curve(
+points.bottomCp1,
+points.leftCp2,
+points.left
+)
+.curve(
+points.leftCp1,
+points.topCp2,
+points.tipRightBottomEnd
+)
+.curve(
+points.tipRightBottomCp2,
+points.tipRightBottomCp1,
+points.tipRightBottomStart
+)
+.curve(
+points.tipRightTopCp2,
+points.tipRightTopCp1,
+points.tipRightTopStart
+)
+.curve(
+points.edgeTopLeftCp,
+points.edgeLeftCp,
+points.edgeLeft
+)
+.close()
+.addClass("fabric")
- return part
+return part
}
+
```
+```
diff --git a/sites/dev/docs/tutorials/pattern-design/part2/shaping-the-straps/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part2/shaping-the-straps/readme.mdx
index 0a6aa468bc7..25739c8d295 100644
--- a/sites/dev/docs/tutorials/pattern-design/part2/shaping-the-straps/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part2/shaping-the-straps/readme.mdx
@@ -1,6 +1,6 @@
---
title: Shaping the straps
-order: 90
+sidebar_position: 90
---
Our straps should follow the neck opening, which isn't that hard to do.
@@ -15,7 +15,6 @@ As always, [the API docs](/reference/api/point/) have all the details.
:::
-
```design/src/bib.mjs
function draftBib({
@@ -28,36 +27,38 @@ function draftBib({
part,
}) {
- /*
- * Construct the quarter neck opening
- */
+/\*
+
+- Construct the quarter neck opening
+ _/
let tweak = 1
- let target = (measurements.head * options.neckRatio) /4
+ let target = (measurements.head _ options.neckRatio) /4
let delta
do {
- points.right = new Point(
- tweak * measurements.head / 10,
- 0
- )
- points.bottom = new Point(
- 0,
- tweak * measurements.head / 12
- )
-
+ points.right = new Point(
+ tweak _ measurements.head / 10,
+ 0
+ )
+ points.bottom = new Point(
+ 0,
+ tweak _ measurements.head / 12
+ )
+
+
points.rightCp1 = points.right.shift(
- 90,
+ 90,
points.bottom.dy(points.right) / 2
)
points.bottomCp2 = points.bottom.shift(
- 0,
+ 0,
points.bottom.dx(points.right) / 2
)
paths.quarterNeck = new Path()
.move(points.right)
.curve(
- points.rightCp1,
- points.bottomCp2,
+ points.rightCp1,
+ points.bottomCp2,
points.bottom
)
.hide()
@@ -65,11 +66,13 @@ function draftBib({
delta = paths.quarterNeck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- /*
- * Construct the complete neck opening
- */
+} while (Math.abs(delta) > 1)
+
+/\*
+
+- Construct the complete neck opening
+ \*/
points.rightCp2 = points.rightCp1.flipY()
points.bottomCp1 = points.bottomCp2.flipX()
points.left = points.right.flipX()
@@ -79,75 +82,81 @@ function draftBib({
points.topCp1 = points.bottomCp2.flipY()
points.topCp2 = points.bottomCp1.flipY()
- paths.neck = new Path()
- .move(points.top)
- .curve(points.topCp2, points.leftCp1, points.left)
- .curve(points.leftCp2, points.bottomCp1, points.bottom)
- .curve(points.bottomCp2, points.rightCp1, points.right)
- .curve(points.rightCp2, points.topCp1, points.top)
- .close()
- .addClass('fabric')
+paths.neck = new Path()
+.move(points.top)
+.curve(points.topCp2, points.leftCp1, points.left)
+.curve(points.leftCp2, points.bottomCp1, points.bottom)
+.curve(points.bottomCp2, points.rightCp1, points.right)
+.curve(points.rightCp2, points.topCp1, points.top)
+.close()
+.addClass('fabric')
- /*
- * Drawing the bib outline
- */
- const width = measurements.head * options.widthRatio
- const length = measurements.head * options.lengthRatio
+/\*
- points.topLeft = new Point(
- width / -2,
- points.top.y - (width / 2 - points.right.x)
- )
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+- Drawing the bib outline
+ _/
+ const width = measurements.head _ options.widthRatio
+ const length = measurements.head \* options.lengthRatio
+
+points.topLeft = new Point(
+width / -2,
+points.top.y - (width / 2 - points.right.x)
+)
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
// strikeout-start
-/*
-* Remove this path
+/\*
+
+- Remove this path
paths.rect = new Path()
- .move(points.topLeft)
- .line(points.bottomLeft)
- .line(points.bottomRight)
- .line(points.topRight)
- .line(points.topLeft)
- .close()
- .addClass('fabric')
-*/
-// strikeout-end
+ .move(points.topLeft)
+ .line(points.bottomLeft)
+ .line(points.bottomRight)
+ .line(points.topRight)
+ .line(points.topLeft)
+ .close()
+ .addClass('fabric')
+ \*/
+ // strikeout-end
// highlight-start
- /*
- * Shape the straps
- */
+/\*
+
+- Shape the straps
+ \*/
points.edgeLeft = new Point(points.topLeft.x, points.left.y)
points.edgeRight = new Point(points.topRight.x, points.right.y)
points.edgeTop = new Point(0, points.topLeft.y)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
- points.topLeft,
- 0.5
- )
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(
+points.topLeft,
+0.5
+)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- /*
- * Now, adapt our `rect` path so it's no longer a rectangle:
- */
+/\*
+
+- Now, adapt our `rect` path so it's no longer a rectangle:
+ \*/
paths.rect = new Path()
- .move(points.edgeTop)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .line(points.bottomLeft)
- .line(points.bottomRight)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop)
- .close()
+ .move(points.edgeTop)
+ .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+ .line(points.bottomLeft)
+ .line(points.bottomRight)
+ .line(points.edgeRight)
+ .curve(points.edgeRightCp, points.edgeTopRightCp, points.edgeTop)
+ .close()
// highlight-end
- return part
+return part
}
+
```
+```
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/annotations/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/annotations/readme.mdx
index 81b9c77e616..d8020b7f8be 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/annotations/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/annotations/readme.mdx
@@ -1,11 +1,11 @@
---
title: Adding annotations
-order: 20
+sidebar_position: 20
---
-Our pattern is still a little bit *bare*. It would be nice to add some *annotations* to it.
+Our pattern is still a little bit _bare_. It would be nice to add some _annotations_ to it.
-When I say *annotations* it's an umbrella term for things like text or other
+When I say _annotations_ it's an umbrella term for things like text or other
bits of information that help the user understand the pattern.
## Adding snippets
@@ -42,15 +42,17 @@ function draftBib({
part,
}) {
- /*
- * Construct the neck opening
- */
- const target = (measurements.head * options.neckRatio) / 4
+/\*
+
+- Construct the neck opening
+ _/
+ const target = (measurements.head _ options.neckRatio) / 4
let tweak = 1
let delta
do {
- points.right = new Point((tweak * measurements.head) / 10, 0)
- points.bottom = new Point(0, (tweak * measurements.head) / 12)
+ points.right = new Point((tweak _ measurements.head) / 10, 0)
+ points.bottom = new Point(0, (tweak _ measurements.head) / 12)
+
points.rightCp1 = points.right.shift(90, points.bottom.dy(points.right) / 2)
points.bottomCp2 = points.bottom.shift(0, points.bottom.dx(points.right) / 2)
@@ -62,108 +64,116 @@ function draftBib({
delta = paths.neck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- points.rightCp2 = points.rightCp1.flipY()
- points.bottomCp1 = points.bottomCp2.flipX()
+} while (Math.abs(delta) > 1)
- points.left = points.right.flipX()
- points.leftCp1 = points.rightCp2.flipX()
- points.leftCp2 = points.rightCp1.flipX()
+points.rightCp2 = points.rightCp1.flipY()
+points.bottomCp1 = points.bottomCp2.flipX()
- points.top = points.bottom.flipY()
- points.topCp1 = points.bottomCp2.flipY()
- points.topCp2 = points.bottomCp1.flipY()
+points.left = points.right.flipX()
+points.leftCp1 = points.rightCp2.flipX()
+points.leftCp2 = points.rightCp1.flipX()
- /*
- * Construct the outline
- */
- let width = measurements.head * options.widthRatio
- let length = measurements.head * options.lengthRatio
+points.top = points.bottom.flipY()
+points.topCp1 = points.bottomCp2.flipY()
+points.topCp2 = points.bottomCp1.flipY()
- points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+/\*
- points.edgeLeft = new Point(points.topLeft.x, points.left.y)
- points.edgeRight = new Point(points.topRight.x, points.right.y)
- points.edgeTop = new Point(0, points.topLeft.y)
+- Construct the outline
+ _/
+ let width = measurements.head _ options.widthRatio
+ let length = measurements.head \* options.lengthRatio
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
- /*
- * Round the end of the straps
- */
+points.edgeLeft = new Point(points.topLeft.x, points.left.y)
+points.edgeRight = new Point(points.topRight.x, points.right.y)
+points.edgeTop = new Point(0, points.topLeft.y)
+
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+
+/\*
+
+- Round the end of the straps
+ \*/
let strap = points.edgeTop.dy(points.top)
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- /*
- * Macros will return the auto-generated IDs
- */
+/\*
+
+- Macros will return the auto-generated IDs
+ \*/
const ids1 = {
- tipRightTop: macro('round', {
- id: 'tipRightTop',
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- }),
- tipRightBottom: macro('round', {
- id: 'tipRightBottom',
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- }),
+ tipRightTop: macro('round', {
+ id: 'tipRightTop',
+ from: points.edgeTop,
+ to: points.tipRight,
+ via: points.tipRightTop,
+ }),
+ tipRightBottom: macro('round', {
+ id: 'tipRightBottom',
+ from: points.tipRight,
+ to: points.top,
+ via: points.tipRightBottom,
+ }),
}
- /*
- * Create points from them with easy names
- */
+/\*
+
+- Create points from them with easy names
+ \*/
for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
+ for (const id of ['start', 'cp1', 'cp2', 'end']) {
+ points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+ }
}
- /*
- * Rotate straps so they don't overlap
- */
+/\*
+
+- Rotate straps so they don't overlap
+ \*/
let rotateThese = [
- 'edgeTopLeftCp',
- 'edgeTop',
- 'tipRight',
- 'tipRightTop',
- 'tipRightTopStart',
- 'tipRightTopCp1',
- 'tipRightTopCp2',
- 'tipRightTopEnd',
- 'tipRightBottomStart',
- 'tipRightBottomCp1',
- 'tipRightBottomCp2',
- 'tipRightBottomEnd',
- 'tipRightBottom',
- 'top',
- 'topCp2',
+ 'edgeTopLeftCp',
+ 'edgeTop',
+ 'tipRight',
+ 'tipRightTop',
+ 'tipRightTopStart',
+ 'tipRightTopCp1',
+ 'tipRightTopCp2',
+ 'tipRightTopEnd',
+ 'tipRightBottomStart',
+ 'tipRightBottomCp1',
+ 'tipRightBottomCp2',
+ 'tipRightBottomEnd',
+ 'tipRightBottom',
+ 'top',
+ 'topCp2',
]
- while (points.tipRightBottomStart.x > -1) {
- for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
- }
+while (points.tipRightBottomStart.x > -1) {
+for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
+}
- /*
- * Add points to anchor snaps on
- */
+/\*
+
+- Add points to anchor snaps on
+ \*/
points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
- /*
- * Mirror points to the other side
- */
+/\*
+
+- Mirror points to the other side
+ \*/
points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
points.topCp1 = points.topCp2.flipX()
points.tipLeftTopStart = points.tipRightTopStart.flipX()
@@ -176,83 +186,88 @@ function draftBib({
points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
points.snapRight = points.snapLeft.flipX()
- /*
- * Round the bottom of the bib
- * Radius is fixed, but you could use an option for it)
- *
- * Macros will return the auto-generated IDs
- */
+/\*
+
+- Round the bottom of the bib
+- Radius is fixed, but you could use an option for it)
+-
+- Macros will return the auto-generated IDs
+ _/
const ids2 = {
- bottomLeft: macro('round', {
- id: 'bottomLeft',
- from: points.topLeft,
- to: points.bottomRight,
- via: points.bottomLeft,
- radius: points.bottomRight.x / 4,
- }),
- bottomRight: macro('round', {
- id: 'bottomRight',
- from: points.bottomLeft,
- to: points.topRight,
- via: points.bottomRight,
- radius: points.bottomRight.x / 4,
- }),
+ bottomLeft: macro('round', {
+ id: 'bottomLeft',
+ from: points.topLeft,
+ to: points.bottomRight,
+ via: points.bottomLeft,
+ radius: points.bottomRight.x / 4,
+ }),
+ bottomRight: macro('round', {
+ id: 'bottomRight',
+ from: points.bottomLeft,
+ to: points.topRight,
+ via: points.bottomRight,
+ radius: points.bottomRight.x / 4,
+ }),
}
- /*
- * Create points from them with easy names
- */
+ /_
+- Create points from them with easy names
+ \*/
for (const side in ids2) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
- }
+ for (const id of ['start', 'cp1', 'cp2', 'end']) {
+ points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
+ }
}
- /*
- * Construct the path
- */
+/\*
+
+- Construct the path
+ \*/
paths.seam = new Path()
- .move(points.edgeLeft)
- .line(points.bottomLeftStart)
- .curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
- .line(points.bottomRightStart)
- .curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
- .curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
- .curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
- .curve(points.topCp1, points.rightCp2, points.right)
- .curve(points.rightCp1, points.bottomCp2, points.bottom)
- .curve(points.bottomCp1, points.leftCp2, points.left)
- .curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
- .curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
- .curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .close()
- .attr('class', 'fabric')
+ .move(points.edgeLeft)
+ .line(points.bottomLeftStart)
+ .curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
+ .line(points.bottomRightStart)
+ .curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
+ .line(points.edgeRight)
+ .curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
+ .curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
+ .curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
+ .curve(points.topCp1, points.rightCp2, points.right)
+ .curve(points.rightCp1, points.bottomCp2, points.bottom)
+ .curve(points.bottomCp1, points.leftCp2, points.left)
+ .curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
+ .curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
+ .curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
+ .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+ .close()
+ .attr('class', 'fabric')
- // highlight-start
- /*
- *
- * Annotations
- *
- */
+// highlight-start
+/\*
- /*
- * Add the snaps
- */
+-
+- Annotations
+- \*/
+
+/\*
+
+- Add the snaps
+ \*/
snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
- /*
- * Add the logo
- */
+/\*
+
+- Add the logo
+ \*/
points.logo = new Point(0, 0)
snippets.logo = new Snippet('logo', points.logo)
// highlight-end
- return part
+return part
}
-```
+
+````
## Setting the cutlist, adding a title and scalebox
@@ -522,6 +537,6 @@ function draftBib({
return part
}
-```
-
+````
+
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/complete/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/complete/readme.mdx
index 9a96827dd21..958dc410454 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/complete/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/complete/readme.mdx
@@ -1,24 +1,24 @@
---
title: Dealing with laser cutters
-order: 25
+sidebar_position: 25
---
Laser cutters is merely an example of a situation where your user wants not the
complete detailed pattern with all annotations, but just the outlines.
Essentially what we had at the end of part 2 of this tutorial.
-Since then, we've added a bunch of embellishments, and perhaps the user does
+Since then, we've added a bunch of embellishments, and perhaps the user does
not want those.
-Well, good news: there is a setting for that too. That setting is `complete`,
+Well, good news: there is a setting for that too. That setting is `complete`,
and more annotations will automatically take it into account.
-For example, if you put a logo or title on the pattern, it will check the
+For example, if you put a logo or title on the pattern, it will check the
`complete` setting and if it is `false` it will do nothing.
-When we say we're going to *complete* our pattern, we mean we're going to add
+When we say we're going to _complete_ our pattern, we mean we're going to add
things like a title and a scalebox and so on.
-So while in most scenarios you don't have to worry about `complete`, you
+So while in most scenarios you don't have to worry about `complete`, you
should keep it in mind when you are adding text or paths to the design
that should not be shown on a non-complete pattern.
@@ -46,15 +46,15 @@ function draftBib({
part,
}) {
- /*
- * Construct the neck opening
- */
- const target = (measurements.head * options.neckRatio) / 4
- let tweak = 1
- let delta
- do {
- points.right = new Point((tweak * measurements.head) / 10, 0)
- points.bottom = new Point(0, (tweak * measurements.head) / 12)
+/\*
+_ Construct the neck opening
+_/
+const target = (measurements.head _ options.neckRatio) / 4
+let tweak = 1
+let delta
+do {
+points.right = new Point((tweak _ measurements.head) / 10, 0)
+points.bottom = new Point(0, (tweak \* measurements.head) / 12)
points.rightCp1 = points.right.shift(90, points.bottom.dy(points.right) / 2)
points.bottomCp2 = points.bottom.shift(0, points.bottom.dx(points.right) / 2)
@@ -66,229 +66,229 @@ function draftBib({
delta = paths.neck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- points.rightCp2 = points.rightCp1.flipY()
- points.bottomCp1 = points.bottomCp2.flipX()
+} while (Math.abs(delta) > 1)
- points.left = points.right.flipX()
- points.leftCp1 = points.rightCp2.flipX()
- points.leftCp2 = points.rightCp1.flipX()
+points.rightCp2 = points.rightCp1.flipY()
+points.bottomCp1 = points.bottomCp2.flipX()
- points.top = points.bottom.flipY()
- points.topCp1 = points.bottomCp2.flipY()
- points.topCp2 = points.bottomCp1.flipY()
+points.left = points.right.flipX()
+points.leftCp1 = points.rightCp2.flipX()
+points.leftCp2 = points.rightCp1.flipX()
- /*
- * Construct the outline
- */
- let width = measurements.head * options.widthRatio
- let length = measurements.head * options.lengthRatio
+points.top = points.bottom.flipY()
+points.topCp1 = points.bottomCp2.flipY()
+points.topCp2 = points.bottomCp1.flipY()
- points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+/\*
+_ Construct the outline
+_/
+let width = measurements.head _ options.widthRatio
+let length = measurements.head _ options.lengthRatio
- points.edgeLeft = new Point(points.topLeft.x, points.left.y)
- points.edgeRight = new Point(points.topRight.x, points.right.y)
- points.edgeTop = new Point(0, points.topLeft.y)
+points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeft = new Point(points.topLeft.x, points.left.y)
+points.edgeRight = new Point(points.topRight.x, points.right.y)
+points.edgeTop = new Point(0, points.topLeft.y)
- /*
- * Round the end of the straps
- */
- let strap = points.edgeTop.dy(points.top)
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+/\*
+_ Round the end of the straps
+_/
+let strap = points.edgeTop.dy(points.top)
- /*
- * Macros will return the auto-generated IDs
- */
- const ids1 = {
- tipRightTop: macro('round', {
- id: 'tipRightTop',
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- }),
- tipRightBottom: macro('round', {
- id: 'tipRightBottom',
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- }),
- }
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- /*
- * Create points from them with easy names
- */
- for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
- }
-
- /*
- * Rotate straps so they don't overlap
- */
- let rotateThese = [
- 'edgeTopLeftCp',
- 'edgeTop',
- 'tipRight',
- 'tipRightTop',
- 'tipRightTopStart',
- 'tipRightTopCp1',
- 'tipRightTopCp2',
- 'tipRightTopEnd',
- 'tipRightBottomStart',
- 'tipRightBottomCp1',
- 'tipRightBottomCp2',
- 'tipRightBottomEnd',
- 'tipRightBottom',
- 'top',
- 'topCp2',
- ]
-
- while (points.tipRightBottomStart.x > -1) {
- for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
- }
-
- /*
- * Add points to anchor snaps on
- */
- points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
-
- /*
- * Mirror points to the other side
- */
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.topCp1 = points.topCp2.flipX()
- points.tipLeftTopStart = points.tipRightTopStart.flipX()
- points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
- points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
- points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
- points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
- points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
- points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
- points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
- points.snapRight = points.snapLeft.flipX()
-
- /*
- * Round the bottom of the bib
- * Radius is fixed, but you could use an option for it)
- *
- * Macros will return the auto-generated IDs
- */
- const ids2 = {
- bottomLeft: macro('round', {
- id: 'bottomLeft',
- from: points.topLeft,
- to: points.bottomRight,
- via: points.bottomLeft,
- radius: points.bottomRight.x / 4,
- }),
- bottomRight: macro('round', {
- id: 'bottomRight',
- from: points.bottomLeft,
- to: points.topRight,
- via: points.bottomRight,
- radius: points.bottomRight.x / 4,
- }),
- }
- /*
- * Create points from them with easy names
- */
- for (const side in ids2) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
- }
- }
-
- /*
- * Construct the path
- */
- paths.seam = new Path()
- .move(points.edgeLeft)
- .line(points.bottomLeftStart)
- .curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
- .line(points.bottomRightStart)
- .curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
- .curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
- .curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
- .curve(points.topCp1, points.rightCp2, points.right)
- .curve(points.rightCp1, points.bottomCp2, points.bottom)
- .curve(points.bottomCp1, points.leftCp2, points.left)
- .curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
- .curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
- .curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .close()
- .attr('class', 'fabric')
-
- /*
- *
- * Annotations
- *
- */
-
- /*
- * Cut list
- */
- store.cutlist.addCut({ cut: 1, from: 'fabric' })
-
- /*
- * Add the snaps
- */
- snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
- snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
-
- // highlight-start
- /*
- * Add the bias tape
- */
- if (complete)
- paths.bias = paths.seam
- .offset(-5)
- .addClass('note dashed')
- .addText('tutorial:finishWithBiasTape', 'center fill-note')
- // highlight-end
-
- /*
- * Add the title
- */
- points.title = points.bottom.shift(-90, 45)
- macro('title', {
- at: points.title,
- nr: 1,
- title: 'bib',
- align: 'center',
- scale: 0.8,
- })
-
- /*
- * Add the scalebox
- */
- points.scalebox = points.title.shift(-90, 65)
- macro('scalebox', { at: points.scalebox })
-
- /*
- * Add the logo
- */
- points.logo = new Point(0, 0)
- snippets.logo = new Snippet('logo', points.logo)
-
- return part
+/\*
+_ Macros will return the auto-generated IDs
+_/
+const ids1 = {
+tipRightTop: macro('round', {
+id: 'tipRightTop',
+from: points.edgeTop,
+to: points.tipRight,
+via: points.tipRightTop,
+}),
+tipRightBottom: macro('round', {
+id: 'tipRightBottom',
+from: points.tipRight,
+to: points.top,
+via: points.tipRightBottom,
+}),
}
-```
+
+/\*
+_ Create points from them with easy names
+_/
+for (const side in ids1) {
+for (const id of ['start', 'cp1', 'cp2', 'end']) {
+points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+}
+}
+
+/\*
+_ Rotate straps so they don't overlap
+_/
+let rotateThese = [
+'edgeTopLeftCp',
+'edgeTop',
+'tipRight',
+'tipRightTop',
+'tipRightTopStart',
+'tipRightTopCp1',
+'tipRightTopCp2',
+'tipRightTopEnd',
+'tipRightBottomStart',
+'tipRightBottomCp1',
+'tipRightBottomCp2',
+'tipRightBottomEnd',
+'tipRightBottom',
+'top',
+'topCp2',
+]
+
+while (points.tipRightBottomStart.x > -1) {
+for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
+}
+
+/\*
+_ Add points to anchor snaps on
+_/
+points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
+
+/\*
+_ Mirror points to the other side
+_/
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.topCp1 = points.topCp2.flipX()
+points.tipLeftTopStart = points.tipRightTopStart.flipX()
+points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
+points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
+points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
+points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
+points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
+points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
+points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
+points.snapRight = points.snapLeft.flipX()
+
+/\*
+_ Round the bottom of the bib
+_ Radius is fixed, but you could use an option for it) \*
+_ Macros will return the auto-generated IDs
+_/
+const ids2 = {
+bottomLeft: macro('round', {
+id: 'bottomLeft',
+from: points.topLeft,
+to: points.bottomRight,
+via: points.bottomLeft,
+radius: points.bottomRight.x / 4,
+}),
+bottomRight: macro('round', {
+id: 'bottomRight',
+from: points.bottomLeft,
+to: points.topRight,
+via: points.bottomRight,
+radius: points.bottomRight.x / 4,
+}),
+}
+/\*
+_ Create points from them with easy names
+_/
+for (const side in ids2) {
+for (const id of ['start', 'cp1', 'cp2', 'end']) {
+points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
+}
+}
+
+/\*
+_ Construct the path
+_/
+paths.seam = new Path()
+.move(points.edgeLeft)
+.line(points.bottomLeftStart)
+.curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
+.line(points.bottomRightStart)
+.curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
+.line(points.edgeRight)
+.curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
+.curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
+.curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
+.curve(points.topCp1, points.rightCp2, points.right)
+.curve(points.rightCp1, points.bottomCp2, points.bottom)
+.curve(points.bottomCp1, points.leftCp2, points.left)
+.curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
+.curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
+.curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
+.curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+.close()
+.attr('class', 'fabric')
+
+/\* \*
+_ Annotations
+_
+\*/
+
+/\*
+_ Cut list
+_/
+store.cutlist.addCut({ cut: 1, from: 'fabric' })
+
+/\*
+_ Add the snaps
+_/
+snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
+snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
+
+// highlight-start
+/\*
+_ Add the bias tape
+_/
+if (complete)
+paths.bias = paths.seam
+.offset(-5)
+.addClass('note dashed')
+.addText('tutorial:finishWithBiasTape', 'center fill-note')
+// highlight-end
+
+/\*
+_ Add the title
+_/
+points.title = points.bottom.shift(-90, 45)
+macro('title', {
+at: points.title,
+nr: 1,
+title: 'bib',
+align: 'center',
+scale: 0.8,
+})
+
+/\*
+_ Add the scalebox
+_/
+points.scalebox = points.title.shift(-90, 65)
+macro('scalebox', { at: points.scalebox })
+
+/\*
+_ Add the logo
+_/
+points.logo = new Point(0, 0)
+snippets.logo = new Snippet('logo', points.logo)
+
+return part
+}
+
+````
@@ -556,6 +556,6 @@ function draftBib({
return part
}
-```
-
+````
+
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/conclusion/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/conclusion/readme.mdx
index 132ed6d13ea..4970bae71da 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/conclusion/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/conclusion/readme.mdx
@@ -1,6 +1,6 @@
---
title: Conclusion
-order: 90
+sidebar_position: 90
---
Congratulations, we have created our first pattern. And while it's arguably
@@ -25,13 +25,14 @@ stuck at any moment, or need some help or advice, you can [join our chat
room](https://discord.freesewing.org/) and we'll help you out.
:::note COMMENT (by joost)
+
##### How did I do?
You could do me a real favor by letting me know what you loved or hated about
this tutorial.
Were there areas that were not clear? Did I dwell too long on one topic, or
-rushed through another one too quickly? Your feedback helps improve things,
+rushed through another one too quickly? Your feedback helps improve things,
so don't be shy and tell me what you think.
You can reach me at joost@freesewing.org
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/expand/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/expand/readme.mdx
index c007e0bdab4..05d0878bb8e 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/expand/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/expand/readme.mdx
@@ -1,6 +1,6 @@
---
title: Saving space (and trees) with exand
-order: 40
+sidebar_position: 40
---
There is one more way we like to save space (and trees): The `expand` setting.
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/flag/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/flag/readme.mdx
index 5a898cfa5ba..a550e10c252 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/flag/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/flag/readme.mdx
@@ -1,10 +1,10 @@
---
title: How to communicate to the user
-order: 50
+sidebar_position: 50
---
As a designer, there are times you want to bring something to the attention of
-the user. I am not talking about generic information that can go in the
+the user. I am not talking about generic information that can go in the
documentation, but rather a message that is tailored specifically to this
pattern, much like this pattern is specifically tailored to the user.
@@ -47,15 +47,15 @@ function draftBib({
part,
}) {
- /*
- * Construct the neck opening
- */
- const target = (measurements.head * options.neckRatio) / 4
- let tweak = 1
- let delta
- do {
- points.right = new Point((tweak * measurements.head) / 10, 0)
- points.bottom = new Point(0, (tweak * measurements.head) / 12)
+/\*
+_ Construct the neck opening
+_/
+const target = (measurements.head _ options.neckRatio) / 4
+let tweak = 1
+let delta
+do {
+points.right = new Point((tweak _ measurements.head) / 10, 0)
+points.bottom = new Point(0, (tweak \* measurements.head) / 12)
points.rightCp1 = points.right.shift(90, points.bottom.dy(points.right) / 2)
points.bottomCp2 = points.bottom.shift(0, points.bottom.dx(points.right) / 2)
@@ -67,277 +67,278 @@ function draftBib({
delta = paths.neck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- points.rightCp2 = points.rightCp1.flipY()
- points.bottomCp1 = points.bottomCp2.flipX()
+} while (Math.abs(delta) > 1)
- points.left = points.right.flipX()
- points.leftCp1 = points.rightCp2.flipX()
- points.leftCp2 = points.rightCp1.flipX()
+points.rightCp2 = points.rightCp1.flipY()
+points.bottomCp1 = points.bottomCp2.flipX()
- points.top = points.bottom.flipY()
- points.topCp1 = points.bottomCp2.flipY()
- points.topCp2 = points.bottomCp1.flipY()
+points.left = points.right.flipX()
+points.leftCp1 = points.rightCp2.flipX()
+points.leftCp2 = points.rightCp1.flipX()
- /*
- * Construct the outline
- */
- let width = measurements.head * options.widthRatio
- let length = measurements.head * options.lengthRatio
+points.top = points.bottom.flipY()
+points.topCp1 = points.bottomCp2.flipY()
+points.topCp2 = points.bottomCp1.flipY()
- points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+/\*
+_ Construct the outline
+_/
+let width = measurements.head _ options.widthRatio
+let length = measurements.head _ options.lengthRatio
- points.edgeLeft = new Point(points.topLeft.x, points.left.y)
- points.edgeRight = new Point(points.topRight.x, points.right.y)
- points.edgeTop = new Point(0, points.topLeft.y)
+points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeft = new Point(points.topLeft.x, points.left.y)
+points.edgeRight = new Point(points.topRight.x, points.right.y)
+points.edgeTop = new Point(0, points.topLeft.y)
- /*
- * Round the end of the straps
- */
- let strap = points.edgeTop.dy(points.top)
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+/\*
+_ Round the end of the straps
+_/
+let strap = points.edgeTop.dy(points.top)
- /*
- * Macros will return the auto-generated IDs
- */
- const ids1 = {
- tipRightTop: macro('round', {
- id: 'tipRightTop',
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- }),
- tipRightBottom: macro('round', {
- id: 'tipRightBottom',
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- }),
- }
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- /*
- * Create points from them with easy names
- */
- for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
- }
-
- /*
- * Rotate straps so they don't overlap
- */
- let rotateThese = [
- 'edgeTopLeftCp',
- 'edgeTop',
- 'tipRight',
- 'tipRightTop',
- 'tipRightTopStart',
- 'tipRightTopCp1',
- 'tipRightTopCp2',
- 'tipRightTopEnd',
- 'tipRightBottomStart',
- 'tipRightBottomCp1',
- 'tipRightBottomCp2',
- 'tipRightBottomEnd',
- 'tipRightBottom',
- 'top',
- 'topCp2',
- ]
-
- while (points.tipRightBottomStart.x > -1) {
- for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
- }
-
- /*
- * Add points to anchor snaps on
- */
- points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
-
- /*
- * Mirror points to the other side
- */
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.topCp1 = points.topCp2.flipX()
- points.tipLeftTopStart = points.tipRightTopStart.flipX()
- points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
- points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
- points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
- points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
- points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
- points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
- points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
- points.snapRight = points.snapLeft.flipX()
-
- /*
- * Round the bottom of the bib
- * Radius is fixed, but you could use an option for it)
- *
- * Macros will return the auto-generated IDs
- */
- const ids2 = {
- bottomLeft: macro('round', {
- id: 'bottomLeft',
- from: points.topLeft,
- to: points.bottomRight,
- via: points.bottomLeft,
- radius: points.bottomRight.x / 4,
- }),
- bottomRight: macro('round', {
- id: 'bottomRight',
- from: points.bottomLeft,
- to: points.topRight,
- via: points.bottomRight,
- radius: points.bottomRight.x / 4,
- }),
- }
- /*
- * Create points from them with easy names
- */
- for (const side in ids2) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
- }
- }
-
- /*
- * Construct the path
- */
- paths.seam = new Path()
- .move(points.edgeLeft)
- .line(points.bottomLeftStart)
- .curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
- .line(points.bottomRightStart)
- .curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
- .curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
- .curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
- .curve(points.topCp1, points.rightCp2, points.right)
- .curve(points.rightCp1, points.bottomCp2, points.bottom)
- .curve(points.bottomCp1, points.leftCp2, points.left)
- .curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
- .curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
- .curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .close()
- .attr('class', 'fabric')
-
- /*
- *
- * Annotations
- *
- */
-
- // highlight-start
- /*
- * Let the user know about the bias tape and fabric requirements
- */
- store.flag.note({
- msg: 'tutorial:biasTapeLength',
- replace: {
- l: units(paths.seam.length()),
- },
- })
- // highlight-end
-
- /*
- * Cut list
- */
- store.cutlist.addCut({ cut: 1, from: 'fabric' })
-
- /*
- * Add the snaps
- */
- snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
- snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
-
- /*
- * Add the bias tape
- */
- if (complete)
- paths.bias = paths.seam
- .offset(-5)
- .addClass('note dashed')
- .addText('finishWithBiasTape', 'center fill-note')
-
- /*
- * Add the title
- */
- points.title = points.bottom.shift(-90, 45)
- macro('title', {
- at: points.title,
- nr: 1,
- title: 'bib',
- align: 'center',
- scale: 0.8,
- })
-
- /*
- * Add the scalebox
- */
- points.scalebox = points.title.shift(-90, 65)
- macro('scalebox', { at: points.scalebox })
-
- /*
- * Add the logo
- */
- points.logo = new Point(0, 0)
- snippets.logo = new Snippet('logo', points.logo)
-
- /*
- * Add dimensions
- */
- macro('hd', {
- id: 'wFull',
- from: points.bottomLeftStart,
- to: points.bottomRightEnd,
- y: points.bottomLeft.y + 15,
- })
- macro('vd', {
- id: 'hBottomToOpeningBottom',
- from: points.bottomRightStart,
- to: points.bottom,
- x: points.bottomRight.x + 15,
- })
- macro('vd', {
- id: 'hBottomToOpeningCenter',
- from: points.bottomRightStart,
- to: points.right,
- x: points.bottomRight.x + 30,
- })
- macro('vd', {
- id: 'hTotal',
- from: points.bottomRightStart,
- to: points.tipLeftTopStart,
- x: points.bottomRight.x + 45,
- })
- macro('hd', {
- id: 'wOpening',
- from: points.left,
- to: points.right,
- y: points.left.y + 25,
- })
- macro('ld', {
- id: 'wStrap',
- from: points.tipLeftBottomEnd,
- to: points.tipLeftTopStart,
- d: -15,
- })
-
- return part
+/\*
+_ Macros will return the auto-generated IDs
+_/
+const ids1 = {
+tipRightTop: macro('round', {
+id: 'tipRightTop',
+from: points.edgeTop,
+to: points.tipRight,
+via: points.tipRightTop,
+}),
+tipRightBottom: macro('round', {
+id: 'tipRightBottom',
+from: points.tipRight,
+to: points.top,
+via: points.tipRightBottom,
+}),
}
+
+/\*
+_ Create points from them with easy names
+_/
+for (const side in ids1) {
+for (const id of ['start', 'cp1', 'cp2', 'end']) {
+points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+}
+}
+
+/\*
+_ Rotate straps so they don't overlap
+_/
+let rotateThese = [
+'edgeTopLeftCp',
+'edgeTop',
+'tipRight',
+'tipRightTop',
+'tipRightTopStart',
+'tipRightTopCp1',
+'tipRightTopCp2',
+'tipRightTopEnd',
+'tipRightBottomStart',
+'tipRightBottomCp1',
+'tipRightBottomCp2',
+'tipRightBottomEnd',
+'tipRightBottom',
+'top',
+'topCp2',
+]
+
+while (points.tipRightBottomStart.x > -1) {
+for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
+}
+
+/\*
+_ Add points to anchor snaps on
+_/
+points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
+
+/\*
+_ Mirror points to the other side
+_/
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.topCp1 = points.topCp2.flipX()
+points.tipLeftTopStart = points.tipRightTopStart.flipX()
+points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
+points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
+points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
+points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
+points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
+points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
+points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
+points.snapRight = points.snapLeft.flipX()
+
+/\*
+_ Round the bottom of the bib
+_ Radius is fixed, but you could use an option for it) \*
+_ Macros will return the auto-generated IDs
+_/
+const ids2 = {
+bottomLeft: macro('round', {
+id: 'bottomLeft',
+from: points.topLeft,
+to: points.bottomRight,
+via: points.bottomLeft,
+radius: points.bottomRight.x / 4,
+}),
+bottomRight: macro('round', {
+id: 'bottomRight',
+from: points.bottomLeft,
+to: points.topRight,
+via: points.bottomRight,
+radius: points.bottomRight.x / 4,
+}),
+}
+/\*
+_ Create points from them with easy names
+_/
+for (const side in ids2) {
+for (const id of ['start', 'cp1', 'cp2', 'end']) {
+points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
+}
+}
+
+/\*
+_ Construct the path
+_/
+paths.seam = new Path()
+.move(points.edgeLeft)
+.line(points.bottomLeftStart)
+.curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
+.line(points.bottomRightStart)
+.curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
+.line(points.edgeRight)
+.curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
+.curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
+.curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
+.curve(points.topCp1, points.rightCp2, points.right)
+.curve(points.rightCp1, points.bottomCp2, points.bottom)
+.curve(points.bottomCp1, points.leftCp2, points.left)
+.curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
+.curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
+.curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
+.curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+.close()
+.attr('class', 'fabric')
+
+/\* \*
+_ Annotations
+_
+\*/
+
+// highlight-start
+/\*
+_ Let the user know about the bias tape and fabric requirements
+_/
+store.flag.note({
+msg: 'tutorial:biasTapeLength',
+replace: {
+l: units(paths.seam.length()),
+},
+})
+// highlight-end
+
+/\*
+_ Cut list
+_/
+store.cutlist.addCut({ cut: 1, from: 'fabric' })
+
+/\*
+_ Add the snaps
+_/
+snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
+snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
+
+/\*
+_ Add the bias tape
+_/
+if (complete)
+paths.bias = paths.seam
+.offset(-5)
+.addClass('note dashed')
+.addText('finishWithBiasTape', 'center fill-note')
+
+/\*
+_ Add the title
+_/
+points.title = points.bottom.shift(-90, 45)
+macro('title', {
+at: points.title,
+nr: 1,
+title: 'bib',
+align: 'center',
+scale: 0.8,
+})
+
+/\*
+_ Add the scalebox
+_/
+points.scalebox = points.title.shift(-90, 65)
+macro('scalebox', { at: points.scalebox })
+
+/\*
+_ Add the logo
+_/
+points.logo = new Point(0, 0)
+snippets.logo = new Snippet('logo', points.logo)
+
+/\*
+_ Add dimensions
+_/
+macro('hd', {
+id: 'wFull',
+from: points.bottomLeftStart,
+to: points.bottomRightEnd,
+y: points.bottomLeft.y + 15,
+})
+macro('vd', {
+id: 'hBottomToOpeningBottom',
+from: points.bottomRightStart,
+to: points.bottom,
+x: points.bottomRight.x + 15,
+})
+macro('vd', {
+id: 'hBottomToOpeningCenter',
+from: points.bottomRightStart,
+to: points.right,
+x: points.bottomRight.x + 30,
+})
+macro('vd', {
+id: 'hTotal',
+from: points.bottomRightStart,
+to: points.tipLeftTopStart,
+x: points.bottomRight.x + 45,
+})
+macro('hd', {
+id: 'wOpening',
+from: points.left,
+to: points.right,
+y: points.left.y + 25,
+})
+macro('ld', {
+id: 'wStrap',
+from: points.tipLeftBottomEnd,
+to: points.tipLeftTopStart,
+d: -15,
+})
+
+return part
+}
+
```
+```
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/i18n/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/i18n/readme.mdx
index be4753693b9..a8fbf643361 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/i18n/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/i18n/readme.mdx
@@ -1,6 +1,6 @@
---
title: Supporting translation
-order: 80
+sidebar_position: 80
---
:::note [FIXME]
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/menu/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/menu/readme.mdx
index a3bd967273f..441751435d2 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/menu/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/menu/readme.mdx
@@ -1,6 +1,6 @@
---
title: Facilitating frontend integration
-order: 60
+sidebar_position: 60
---
Strictly speaking, this tutorial is about learning to use FreeSewing's core
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/paperless/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/paperless/readme.mdx
index 67755386be5..973cd68a797 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/paperless/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/paperless/readme.mdx
@@ -1,6 +1,6 @@
---
title: Supporting paperless patterns
-order: 30
+sidebar_position: 30
---
The goal of paperless patterns is to create a pattern that we don't need to
@@ -14,14 +14,14 @@ So let's make the extra effort to make our bib design support paperless.
## The paperless setting
Users can request paperless patterns by setting [the `paperless`
-setting](/reference/settings/paperless) to a *truthy* value.
+setting](/reference/settings/paperless) to a _truthy_ value.
With paperless enabled, FreeSewing will automatically render a grid for each
pattern part with metric or imperial markings, depending on the units requested
by the user.
Such a grid is already a good starting point. In addition, we'll be using
-different macros to add *dimensions* to the pattern.
+different macros to add _dimensions_ to the pattern.
While the grid gets added automatically, the dimensions we have to add ourselves.
Thankfully, there's macros that can help us with that, specifically:
@@ -58,15 +58,15 @@ function draftBib({
part,
}) {
- /*
- * Construct the neck opening
- */
- const target = (measurements.head * options.neckRatio) / 4
- let tweak = 1
- let delta
- do {
- points.right = new Point((tweak * measurements.head) / 10, 0)
- points.bottom = new Point(0, (tweak * measurements.head) / 12)
+/\*
+_ Construct the neck opening
+_/
+const target = (measurements.head _ options.neckRatio) / 4
+let tweak = 1
+let delta
+do {
+points.right = new Point((tweak _ measurements.head) / 10, 0)
+points.bottom = new Point(0, (tweak \* measurements.head) / 12)
points.rightCp1 = points.right.shift(90, points.bottom.dy(points.right) / 2)
points.bottomCp2 = points.bottom.shift(0, points.bottom.dx(points.right) / 2)
@@ -78,267 +78,268 @@ function draftBib({
delta = paths.neck.length() - target
if (delta > 0) tweak = tweak * 0.99
else tweak = tweak * 1.02
- } while (Math.abs(delta) > 1)
- points.rightCp2 = points.rightCp1.flipY()
- points.bottomCp1 = points.bottomCp2.flipX()
+} while (Math.abs(delta) > 1)
- points.left = points.right.flipX()
- points.leftCp1 = points.rightCp2.flipX()
- points.leftCp2 = points.rightCp1.flipX()
+points.rightCp2 = points.rightCp1.flipY()
+points.bottomCp1 = points.bottomCp2.flipX()
- points.top = points.bottom.flipY()
- points.topCp1 = points.bottomCp2.flipY()
- points.topCp2 = points.bottomCp1.flipY()
+points.left = points.right.flipX()
+points.leftCp1 = points.rightCp2.flipX()
+points.leftCp2 = points.rightCp1.flipX()
- /*
- * Construct the outline
- */
- let width = measurements.head * options.widthRatio
- let length = measurements.head * options.lengthRatio
+points.top = points.bottom.flipY()
+points.topCp1 = points.bottomCp2.flipY()
+points.topCp2 = points.bottomCp1.flipY()
- points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
- points.topRight = points.topLeft.shift(0, width)
- points.bottomLeft = points.topLeft.shift(-90, length)
- points.bottomRight = points.topRight.shift(-90, length)
+/\*
+_ Construct the outline
+_/
+let width = measurements.head _ options.widthRatio
+let length = measurements.head _ options.lengthRatio
- points.edgeLeft = new Point(points.topLeft.x, points.left.y)
- points.edgeRight = new Point(points.topRight.x, points.right.y)
- points.edgeTop = new Point(0, points.topLeft.y)
+points.topLeft = new Point(width / -2, points.top.y - (width / 2 - points.right.x))
+points.topRight = points.topLeft.shift(0, width)
+points.bottomLeft = points.topLeft.shift(-90, length)
+points.bottomRight = points.topRight.shift(-90, length)
- points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeRightCp = points.edgeLeftCp.flipX()
- points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.edgeLeft = new Point(points.topLeft.x, points.left.y)
+points.edgeRight = new Point(points.topRight.x, points.right.y)
+points.edgeTop = new Point(0, points.topLeft.y)
- /*
- * Round the end of the straps
- */
- let strap = points.edgeTop.dy(points.top)
+points.edgeLeftCp = points.edgeLeft.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeRightCp = points.edgeLeftCp.flipX()
+points.edgeTopLeftCp = points.edgeTop.shiftFractionTowards(points.topLeft, 0.5)
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
- points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
- points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
+/\*
+_ Round the end of the straps
+_/
+let strap = points.edgeTop.dy(points.top)
- /*
- * Macros will return the auto-generated IDs
- */
- const ids1 = {
- tipRightTop: macro('round', {
- id: 'tipRightTop',
- from: points.edgeTop,
- to: points.tipRight,
- via: points.tipRightTop,
- }),
- tipRightBottom: macro('round', {
- id: 'tipRightBottom',
- from: points.tipRight,
- to: points.top,
- via: points.tipRightBottom,
- }),
- }
+points.tipRight = points.edgeTop.translate(strap / 2, strap / 2)
+points.tipRightTop = new Point(points.tipRight.x, points.edgeTop.y)
+points.tipRightBottom = new Point(points.tipRight.x, points.top.y)
- /*
- * Create points from them with easy names
- */
- for (const side in ids1) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
- }
- }
-
- /*
- * Rotate straps so they don't overlap
- */
- let rotateThese = [
- 'edgeTopLeftCp',
- 'edgeTop',
- 'tipRight',
- 'tipRightTop',
- 'tipRightTopStart',
- 'tipRightTopCp1',
- 'tipRightTopCp2',
- 'tipRightTopEnd',
- 'tipRightBottomStart',
- 'tipRightBottomCp1',
- 'tipRightBottomCp2',
- 'tipRightBottomEnd',
- 'tipRightBottom',
- 'top',
- 'topCp2',
- ]
-
- while (points.tipRightBottomStart.x > -1) {
- for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
- }
-
- /*
- * Add points to anchor snaps on
- */
- points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
-
- /*
- * Mirror points to the other side
- */
- points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
- points.topCp1 = points.topCp2.flipX()
- points.tipLeftTopStart = points.tipRightTopStart.flipX()
- points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
- points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
- points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
- points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
- points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
- points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
- points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
- points.snapRight = points.snapLeft.flipX()
-
- /*
- * Round the bottom of the bib
- * Radius is fixed, but you could use an option for it)
- *
- * Macros will return the auto-generated IDs
- */
- const ids2 = {
- bottomLeft: macro('round', {
- id: 'bottomLeft',
- from: points.topLeft,
- to: points.bottomRight,
- via: points.bottomLeft,
- radius: points.bottomRight.x / 4,
- }),
- bottomRight: macro('round', {
- id: 'bottomRight',
- from: points.bottomLeft,
- to: points.topRight,
- via: points.bottomRight,
- radius: points.bottomRight.x / 4,
- }),
- }
- /*
- * Create points from them with easy names
- */
- for (const side in ids2) {
- for (const id of ['start', 'cp1', 'cp2', 'end']) {
- points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
- }
- }
-
- /*
- * Construct the path
- */
- paths.seam = new Path()
- .move(points.edgeLeft)
- .line(points.bottomLeftStart)
- .curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
- .line(points.bottomRightStart)
- .curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
- .line(points.edgeRight)
- .curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
- .curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
- .curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
- .curve(points.topCp1, points.rightCp2, points.right)
- .curve(points.rightCp1, points.bottomCp2, points.bottom)
- .curve(points.bottomCp1, points.leftCp2, points.left)
- .curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
- .curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
- .curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
- .curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
- .close()
- .attr('class', 'fabric')
-
- /*
- *
- * Annotations
- *
- */
-
- /*
- * Cut list
- */
- store.cutlist.addCut({ cut: 1, from: 'fabric' })
-
- /*
- * Add the snaps
- */
- snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
- snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
-
- /*
- * Add the bias tape
- */
- if (complete)
- paths.bias = paths.seam
- .offset(-5)
- .addClass('note dashed')
- .addText('fronscratch:finishWithBiasTape', 'center fill-note')
-
- /*
- * Add the title
- */
- points.title = points.bottom.shift(-90, 45)
- macro('title', {
- at: points.title,
- nr: 1,
- title: 'bib',
- align: 'center',
- scale: 0.8,
- })
-
- /*
- * Add the scalebox
- */
- points.scalebox = points.title.shift(-90, 65)
- macro('scalebox', { at: points.scalebox })
-
- /*
- * Add the logo
- */
- points.logo = new Point(0, 0)
- snippets.logo = new Snippet('logo', points.logo)
-
- // highlight-start
- /*
- * Add dimensions
- */
- macro('hd', {
- id: 'wFull',
- from: points.bottomLeftStart,
- to: points.bottomRightEnd,
- y: points.bottomLeft.y + 15,
- })
- macro('vd', {
- id: 'hBottomToOpeningBottom',
- from: points.bottomRightStart,
- to: points.bottom,
- x: points.bottomRight.x + 15,
- })
- macro('vd', {
- id: 'hBottomToOpeningCenter',
- from: points.bottomRightStart,
- to: points.right,
- x: points.bottomRight.x + 30,
- })
- macro('vd', {
- id: 'hTotal',
- from: points.bottomRightStart,
- to: points.tipLeftTopStart,
- x: points.bottomRight.x + 45,
- })
- macro('hd', {
- id: 'wOpening',
- from: points.left,
- to: points.right,
- y: points.left.y + 25,
- })
- macro('ld', {
- id: 'wStrap',
- from: points.tipLeftBottomEnd,
- to: points.tipLeftTopStart,
- d: -15,
- })
- // highlight-end
-
- return part
+/\*
+_ Macros will return the auto-generated IDs
+_/
+const ids1 = {
+tipRightTop: macro('round', {
+id: 'tipRightTop',
+from: points.edgeTop,
+to: points.tipRight,
+via: points.tipRightTop,
+}),
+tipRightBottom: macro('round', {
+id: 'tipRightBottom',
+from: points.tipRight,
+to: points.top,
+via: points.tipRightBottom,
+}),
}
+
+/\*
+_ Create points from them with easy names
+_/
+for (const side in ids1) {
+for (const id of ['start', 'cp1', 'cp2', 'end']) {
+points[`${side}${utils.capitalize(id)}`] = points[ids1[side].points[id]].copy()
+}
+}
+
+/\*
+_ Rotate straps so they don't overlap
+_/
+let rotateThese = [
+'edgeTopLeftCp',
+'edgeTop',
+'tipRight',
+'tipRightTop',
+'tipRightTopStart',
+'tipRightTopCp1',
+'tipRightTopCp2',
+'tipRightTopEnd',
+'tipRightBottomStart',
+'tipRightBottomCp1',
+'tipRightBottomCp2',
+'tipRightBottomEnd',
+'tipRightBottom',
+'top',
+'topCp2',
+]
+
+while (points.tipRightBottomStart.x > -1) {
+for (let p of rotateThese) points[p] = points[p].rotate(1, points.edgeLeft)
+}
+
+/\*
+_ Add points to anchor snaps on
+_/
+points.snapLeft = points.top.shiftFractionTowards(points.edgeTop, 0.5)
+
+/\*
+_ Mirror points to the other side
+_/
+points.edgeTopRightCp = points.edgeTopLeftCp.flipX()
+points.topCp1 = points.topCp2.flipX()
+points.tipLeftTopStart = points.tipRightTopStart.flipX()
+points.tipLeftTopCp1 = points.tipRightTopCp1.flipX()
+points.tipLeftTopCp2 = points.tipRightTopCp2.flipX()
+points.tipLeftTopEnd = points.tipRightTopEnd.flipX()
+points.tipLeftBottomStart = points.tipRightBottomStart.flipX()
+points.tipLeftBottomCp1 = points.tipRightBottomCp1.flipX()
+points.tipLeftBottomCp2 = points.tipRightBottomCp2.flipX()
+points.tipLeftBottomEnd = points.tipRightBottomEnd.flipX()
+points.snapRight = points.snapLeft.flipX()
+
+/\*
+_ Round the bottom of the bib
+_ Radius is fixed, but you could use an option for it) \*
+_ Macros will return the auto-generated IDs
+_/
+const ids2 = {
+bottomLeft: macro('round', {
+id: 'bottomLeft',
+from: points.topLeft,
+to: points.bottomRight,
+via: points.bottomLeft,
+radius: points.bottomRight.x / 4,
+}),
+bottomRight: macro('round', {
+id: 'bottomRight',
+from: points.bottomLeft,
+to: points.topRight,
+via: points.bottomRight,
+radius: points.bottomRight.x / 4,
+}),
+}
+/\*
+_ Create points from them with easy names
+_/
+for (const side in ids2) {
+for (const id of ['start', 'cp1', 'cp2', 'end']) {
+points[`${side}${utils.capitalize(id)}`] = points[ids2[side].points[id]].copy()
+}
+}
+
+/\*
+_ Construct the path
+_/
+paths.seam = new Path()
+.move(points.edgeLeft)
+.line(points.bottomLeftStart)
+.curve(points.bottomLeftCp1, points.bottomLeftCp2, points.bottomLeftEnd)
+.line(points.bottomRightStart)
+.curve(points.bottomRightCp1, points.bottomRightCp2, points.bottomRightEnd)
+.line(points.edgeRight)
+.curve(points.edgeRightCp, points.edgeTopRightCp, points.tipLeftTopStart)
+.curve(points.tipLeftTopCp1, points.tipLeftTopCp2, points.tipLeftTopEnd)
+.curve(points.tipLeftBottomCp1, points.tipLeftBottomCp2, points.tipLeftBottomEnd)
+.curve(points.topCp1, points.rightCp2, points.right)
+.curve(points.rightCp1, points.bottomCp2, points.bottom)
+.curve(points.bottomCp1, points.leftCp2, points.left)
+.curve(points.leftCp1, points.topCp2, points.tipRightBottomEnd)
+.curve(points.tipRightBottomCp2, points.tipRightBottomCp1, points.tipRightBottomStart)
+.curve(points.tipRightTopCp2, points.tipRightTopCp1, points.tipRightTopStart)
+.curve(points.edgeTopLeftCp, points.edgeLeftCp, points.edgeLeft)
+.close()
+.attr('class', 'fabric')
+
+/\* \*
+_ Annotations
+_
+\*/
+
+/\*
+_ Cut list
+_/
+store.cutlist.addCut({ cut: 1, from: 'fabric' })
+
+/\*
+_ Add the snaps
+_/
+snippets.snapStud = new Snippet('snap-stud', points.snapLeft)
+snippets.snapSocket = new Snippet('snap-socket', points.snapRight).attr('opacity', 0.5)
+
+/\*
+_ Add the bias tape
+_/
+if (complete)
+paths.bias = paths.seam
+.offset(-5)
+.addClass('note dashed')
+.addText('fronscratch:finishWithBiasTape', 'center fill-note')
+
+/\*
+_ Add the title
+_/
+points.title = points.bottom.shift(-90, 45)
+macro('title', {
+at: points.title,
+nr: 1,
+title: 'bib',
+align: 'center',
+scale: 0.8,
+})
+
+/\*
+_ Add the scalebox
+_/
+points.scalebox = points.title.shift(-90, 65)
+macro('scalebox', { at: points.scalebox })
+
+/\*
+_ Add the logo
+_/
+points.logo = new Point(0, 0)
+snippets.logo = new Snippet('logo', points.logo)
+
+// highlight-start
+/\*
+_ Add dimensions
+_/
+macro('hd', {
+id: 'wFull',
+from: points.bottomLeftStart,
+to: points.bottomRightEnd,
+y: points.bottomLeft.y + 15,
+})
+macro('vd', {
+id: 'hBottomToOpeningBottom',
+from: points.bottomRightStart,
+to: points.bottom,
+x: points.bottomRight.x + 15,
+})
+macro('vd', {
+id: 'hBottomToOpeningCenter',
+from: points.bottomRightStart,
+to: points.right,
+x: points.bottomRight.x + 30,
+})
+macro('vd', {
+id: 'hTotal',
+from: points.bottomRightStart,
+to: points.tipLeftTopStart,
+x: points.bottomRight.x + 45,
+})
+macro('hd', {
+id: 'wOpening',
+from: points.left,
+to: points.right,
+y: points.left.y + 25,
+})
+macro('ld', {
+id: 'wStrap',
+from: points.tipLeftBottomEnd,
+to: points.tipLeftTopStart,
+d: -15,
+})
+// highlight-end
+
+return part
+}
+
```
+```
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/sa/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/sa/readme.mdx
index f70dbbe1162..0ee0b438311 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/sa/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/sa/readme.mdx
@@ -1,6 +1,6 @@
---
title: Adding seam allowance
-order: 10
+sidebar_position: 10
---
When adding seam allowance to a pattern, there are 3 things that come into play:
@@ -24,29 +24,30 @@ function draftBib({
part,
}) {
- points.topLeft = new Point(0,0)
- points.bottomRight = new Point(100,40)
- points.topRight = new Point(points.bottomRight.x, points.topLeft.y)
- points.bottomLeft = new Point(points.topLeft.x, points.bottomRight.y)
- points.cp1 = new Point(50, 20)
- points.cp2 = new Point(70, 60)
+points.topLeft = new Point(0,0)
+points.bottomRight = new Point(100,40)
+points.topRight = new Point(points.bottomRight.x, points.topLeft.y)
+points.bottomLeft = new Point(points.topLeft.x, points.bottomRight.y)
+points.cp1 = new Point(50, 20)
+points.cp2 = new Point(70, 60)
- paths.shape = new Path()
- .move(points.topLeft)
- .line(points.bottomLeft)
- .curve(points.cp1, points.cp2, points.bottomRight)
- .line(points.topRight)
- .line(points.topLeft)
- .close()
- .addClass('fabric')
+paths.shape = new Path()
+.move(points.topLeft)
+.line(points.bottomLeft)
+.curve(points.cp1, points.cp2, points.bottomRight)
+.line(points.topRight)
+.line(points.topLeft)
+.close()
+.addClass('fabric')
- // highlight-start
- if (sa) paths.sa = paths.shape.offset(sa).addClass('fabric sa')
- // highlight-end
+// highlight-start
+if (sa) paths.sa = paths.shape.offset(sa).addClass('fabric sa')
+// highlight-end
- return part
+return part
}
-```
+
+````
As you can see from the source, we can destructure an `sa` variable (short for
@@ -63,7 +64,7 @@ seam allowance:
if (sa) paths.sa = paths.shape
.offset(sa)
.addClass('fabric sa')
-```
+````
To refer back to our three question: Whether the user wants seam allowance, and
if so how much seam allowance is answered by the `sa` value passed to our draft
diff --git a/sites/dev/docs/tutorials/pattern-design/part3/tests/readme.mdx b/sites/dev/docs/tutorials/pattern-design/part3/tests/readme.mdx
index 1788a0804d9..f80649f98d0 100644
--- a/sites/dev/docs/tutorials/pattern-design/part3/tests/readme.mdx
+++ b/sites/dev/docs/tutorials/pattern-design/part3/tests/readme.mdx
@@ -1,6 +1,6 @@
---
title: Testing your designs
-order: 70
+sidebar_position: 70
---
With the basic outline of our pattern ready, now would be a good time
diff --git a/sites/dev/docs/tutorials/readme.mdx b/sites/dev/docs/tutorials/readme.mdx
index 66606742904..76385dabd50 100644
--- a/sites/dev/docs/tutorials/readme.mdx
+++ b/sites/dev/docs/tutorials/readme.mdx
@@ -1,6 +1,5 @@
---
title: Tutorials
-order: zaa
---
You can find a list of all FreeSewing tutorials below:
@@ -14,4 +13,3 @@ You can find a list of all FreeSewing tutorials below:
Tutorials are lessons that take you by the hand through a series of steps to complete a project.
:::
-
diff --git a/sites/dev/package.json b/sites/dev/package.json
index d24e5a80e8c..f4e67c814e6 100644
--- a/sites/dev/package.json
+++ b/sites/dev/package.json
@@ -1,74 +1,46 @@
{
- "name": "@freesewing/dev",
- "version": "3.3.0-rc.1",
- "description": "FreeSewing website with documentation for contributors & developers",
- "author": "Joost De Cock (https://github.com/joostdecock)",
- "homepage": "https://freesewing.org/",
- "repository": "github:freesewing/freesewing",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/freesewing/freesewing/issues"
- },
- "funding": {
- "type": "individual",
- "url": "https://freesewing.org/patrons/join"
- },
+ "name": "dev",
+ "version": "0.0.0",
+ "private": true,
"scripts": {
- "build": "next build",
- "cibuild": "yarn build && node scripts/algolia.mjs",
- "clean": "rimraf prebuild/* && rimraf public/locales/*/* && rimraf public/feeds/* && rimraf ../shared/prebuild/data/*",
- "dev": "next dev -p 8000",
- "develop": "next dev -p 8000",
- "i18n": "SITE=dev node --conditions=internal ../shared/prebuild/i18n-only.mjs",
- "lint": "next lint",
- "prebuild": "node --conditions=internal --experimental-json-modules ./prebuild.mjs",
- "serve": "pm2 start npm --name 'dev' -- run start",
- "start": "yarn prebuild && yarn dev",
- "wbuild": "next build",
- "prewbuild": "node --conditions=internal --experimental-json-modules ./prebuild.mjs"
+ "docusaurus": "docusaurus",
+ "start": "docusaurus start",
+ "build": "docusaurus build",
+ "swizzle": "docusaurus swizzle",
+ "deploy": "docusaurus deploy",
+ "clear": "docusaurus clear",
+ "serve": "docusaurus serve",
+ "write-translations": "docusaurus write-translations",
+ "write-heading-ids": "docusaurus write-heading-ids"
},
- "peerDependencies": {},
"dependencies": {
- "@mdx-js/mdx": "^3.0.0",
+ "@docusaurus/core": "3.5.2",
+ "@docusaurus/preset-classic": "3.5.2",
"@mdx-js/react": "^3.0.0",
- "@mdx-js/runtime": "2.0.0-next.9",
- "@next/bundle-analyzer": "14.2.3",
- "@tailwindcss/typography": "0.5.13",
- "algoliasearch": "4.23.3",
- "daisyui": "4.11.1",
- "lodash.get": "4.4.2",
- "lodash.orderby": "4.6.0",
- "lodash.set": "4.3.2",
- "next": "14.2.3",
- "react": "18.3.1",
- "react-copy-to-clipboard": "5.1.0",
- "react-dom": "18.3.1",
- "react-hotkeys-hook": "4.5.0",
- "react-instantsearch-dom": "6.40.4",
- "react-instantsearch-hooks-web": "6.47.3",
- "react-swipeable": "7.0.1",
- "react-timeago": "7.2.0",
- "rehype-autolink-headings": "7.1.0",
- "rehype-highlight": "7.0.0",
- "rehype-sanitize": "6.0.0",
- "rehype-slug": "6.0.0",
- "rehype-stringify": "10.0.1",
- "remark": "15.0.1",
- "remark-copy-linked-files": "git+https://git@github.com/joostdecock/remark-copy-linked-files",
- "remark-gfm": "4.0.0",
- "strip-markdown": "6.0.0"
+ "clsx": "^2.0.0",
+ "prism-react-renderer": "^2.3.0",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "react-markdown": "^9.0.1",
+ "tailwindcss": "^3.4.13"
},
"devDependencies": {
- "autoprefixer": "10.4.19",
- "js-yaml": "4.1.0",
- "postcss": "8.4.38",
- "remark-extract-frontmatter": "3.2.0",
- "remark-mdx-frontmatter": "5.0.0",
- "tailwindcss": "3.4.3",
- "yaml-loader": "0.8.1"
+ "@docusaurus/module-type-aliases": "3.5.2",
+ "@docusaurus/types": "3.5.2"
+ },
+ "browserslist": {
+ "production": [
+ ">0.5%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 3 chrome version",
+ "last 3 firefox version",
+ "last 5 safari version"
+ ]
},
"engines": {
- "node": ">= 18.17.0 <22"
- },
- "private": true
+ "node": ">=18.0"
+ }
}
diff --git a/sites/orgdocs/blog/2-20-for-dolls/index.mdx b/sites/orgdocs/blog/2-20-for-dolls/index.mdx
new file mode 100644
index 00000000000..7287f51a7ec
--- /dev/null
+++ b/sites/orgdocs/blog/2-20-for-dolls/index.mdx
@@ -0,0 +1,41 @@
+---
+authors: 1
+caption: 'Photo by Anna Doschechko [via Pexels]'
+date: '2022-01-24'
+intro: 'FreeSewing 2.20: Would you like it smaller?'
+title: 'FreeSewing 2.20: Would you like it smaller?'
+---
+
+I'm happy to announce that we've released FreeSewing 2.20, which comes with a
+feature request that was on our roadmap: Better support for doll clothes. We
+have some passionate doll enthusiasts in our community which make sense when
+you consider that our patterns adapt seamlessly to all sorts of measurements,
+including those of dolls.
+
+
+
+But there's another issue that comes up when generating these tiny patterns,
+that is that while the pattern itself adapts to the doll measurements, things
+like font sizes and arrows and logos do not. That causes doll patterns to look
+like a chaotic mess as the things that are typically taking up just a bit of
+space tend to overwhelm the actual pattern:
+
+
+
+
+
+To make this happen, we've added [a new scale
+setting](/docs/about/site/draft#scale) that you can find under _Advanced_ after
+enabling _Expert mode_. We hope those of you making doll clothes will find
+this useful, and as always [we look forward to hearing your
+feedback](https://discord.freesewing.org/).
+
+## More in this release
+
+2.20 also packs a bunch of changes and improvements, check the
+[changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md#2200-2022-01-24)
+for the full list.
diff --git a/sites/orgdocs/blog/2019-yearly-report/index.mdx b/sites/orgdocs/blog/2019-yearly-report/index.mdx
new file mode 100644
index 00000000000..2fc05089e8d
--- /dev/null
+++ b/sites/orgdocs/blog/2019-yearly-report/index.mdx
@@ -0,0 +1,89 @@
+---
+authors: 1
+caption: 'Close-up of a dandelion against a pink background'
+date: '2019-12-10'
+intro: '4109 reasons to be happy about 2019'
+title: '4109 reasons to be happy about 2019'
+---
+
+Wow! What a year it's been for FreeSewing.
+In August we released version 2.0 which was nothing less than a complete rewrite
+of our entire technology stack.
+
+For our users, the most obvious change is that you get to see your pattern adapt
+live in your browser as you tweak options and preferences.
+It's one of those things that I knew should be possible with the state of web
+technology today, yet seeing it actually happen still boggles my mind somehow.
+
+
+
+## Scaling is hard, but we made remarkable progress
+
+Cool as our new technoglogy stack is, it is not the most important work we've done over the last
+year. Yes, it's pretty neat, and yes it's only possible because of the work done
+on 2.0. But that work itself is what matters most. The main reason for the 2.0
+rewrite was to allow the project to scale horizontally. Or to put it bluntly,
+to allow FreeSewing to go where I could not carry it on my own.
+
+In a way, FreeSewing has grown up as a (software) project. We have several people
+making regular contributions, [an active chat room](https://discord.freesewing.org/),
+[a dedicated website for developer and translator documentation](https://freesewing.dev),
+a plethora of [packages we publish on NPM](https://www.npmjs.com/search?q=keywords:freesewing),
+we've contributed fixes and improvements to upstream software we depend on, and we now
+also have other people and teams who depend on the packages we put out.
+
+We (currently) have [23 patterns available](/designs/), we publish 62 packages on NPM
+(the Node.js package registry). Since putting out version 2.0, on average 450 people
+sign up every month, and our total tally currently stands above 15.000.
+
+## Translation has never been easier
+
+Since v2, we've also switched to [Crowdin](https://crowdin.com) for
+[our translations](https://freesewing.dev/guides/translator/). Translation is arguably
+the best way to democratize access to our platform, and I'd like to give a shout-out to
+all people who have helped and continue to help with these efforts.
+
+It's perhaps also a good time to point out that you too can help with this.
+Our [documentation for translators](https://freesewing.dev/guides/translator/) is a good
+place to get started, or stop by [our chat room](https://discord.freesewing.org/).
+
+## What we're planning for next year
+
+Our next year plans roughly fall apart into two categories:
+improving our platform, and adding more patterns.
+
+As the project grows, so does the amount of work required to keep everything
+running smoothly. We still have more performance improvements to do, as well as
+auxiliary tasks such as writing more tests so we can go ahead and change things with
+confidence, rather than risk that rolling out a new feature causes bugs down the line.
+
+We also know there is a lot of room for improvement of the user experience (UX), as
+well as design and user interface (UI). We've been doing the best we can, but it's
+not really our field of expertise, and we're hoping to find more contributors who can
+help us in this regard.
+
+## v2.2 will include a ladies bodice block
+
+But hey, you want more patterns, right? So rest assured that that's high on our
+todo list. We are going to apply some affirmative action towards the ladies who have
+so far been under-served. Not only by making existing patterns available to them
+(as we did recently with Simone, a ladies version of our Simon pattern) but also
+by developing a dedicated ladies block to develop patterns on.
+
+We have earmarked this as a must-have for FreeSewing v2.2, which we hope to be able
+to release sometime in January.
+
+We're also looking at ways to get more designers on board with FreeSewing.
+One plan on the drawing board is to offer pair-programming sessions to designers
+where they walk us through their vision, and we implement their design in FreeSewing.
+We're even thinking of live-streaming these sessions so anybody who is interested
+can drop by and follow along.
+
+## 'Tis the season for giving
+
+Thanks to our awesome patrons, revenue was up this year too. As you may or may not know,
+FreeSewing donates 100% of its revenue to Médecins Sans Frontières/Doctors Without Borders.
+So this morning, I had the great honour to write a 4109.38€ cheque to [MSF](https://www.msf.org/).
+
+That felt **real good** so thanks to [all our patrons](/patrons) for their continued support.
+If you'd like to join this awesome group of people, [you can do so here](/patrons/join).
diff --git a/sites/orgdocs/blog/2021-wrapup/index.mdx b/sites/orgdocs/blog/2021-wrapup/index.mdx
new file mode 100644
index 00000000000..aef25e0c35a
--- /dev/null
+++ b/sites/orgdocs/blog/2021-wrapup/index.mdx
@@ -0,0 +1,68 @@
+---
+authors: 1
+caption: 'Picture by Snapwire - Via pexels.com'
+date: '2022-01-01'
+intro: "I'm not going to do a whole blog post about 2021 stuff because I feel like most of us just sorta want to move on and forget about it, but if you were looking for a longer read, then here's the table of content of our latest newsletter edition that also went out today:"
+title: '2021 wrap-up: A new FreeSewing.dev and announcing our bug bounty program'
+---
+
+I'm not going to do a whole blog post about 2021 stuff because I feel like most
+of us just sorta want to move on and forget about it, but if you were looking
+for a longer read, then here's the table of content of [our latest newsletter
+edition](/newsletter/2022q1/) that also went out today:
+
+
+
+- 🎉 2021 is salted and burned
+- 🧐 What our contributors have been up to in 2021
+- 🎖️ FreeSewing is now an 'all contributors' project
+- 🚧 Why version 3 has been put on hold
+- 🤓 What I've been up to in 2021
+- 🐛 FreeSewing's bug bounty program
+- ⛑️ Yearly revenue and where it went (spoiler: same as always)
+- 🤞 What I hope will happen this year
+
+Here, I'd like to cherry-pick just those things that I think are exciting right
+now.
+
+## freesewing.dev has been rebuilt
+
+[The effort I started in the summer](https://freesewing.dev/blog/project-2022)
+came to fruition on the last day of the year as I deployed the new
+[freesewing.dev](https://freesewing.dev/blog/project-2022) site in production.
+
+It's a complete redesign, and the code is now [hosted in our
+monorepo](https://github.com/freesewing/freesewing), which means that [our
+dedicated repository for
+freesewing.dev](https://github.com/freesewing/freesewing.dev) has now been
+archived.
+
+This effort implemented a bunch of items from [our v3
+roadmap](https://github.com/freesewing/freesewing/discussions/1278) which has
+sort of grown into this long list of ideas/plans. From the top of my head:
+
+- Migrate to NextJS
+- Better open graph support
+- Migrate style to TailwindCSS
+- Migrate blog posts and showcase posts to Strapi
+- Migrate newsletter to Strapi
+- Move markdown content into monorepo & merge Crowdin translation projects
+- Add endpoint to backend for auto-generated open graph images
+
+Have all been implemented as a direct result or side effect of this effort.
+
+This site will also become the blueprint for an overhaul of freesewing.org,
+something that's on the planning for this year.
+
+## FreeSewing's bug bounty program
+
+Once again, [read our newsletter](/newsletter/2022q1/) for the entire
+backstory, but here's the gist of it: We are now launching the FreeSewing bug
+bounty program:
+
+> If you find a bug in one of our patterns, or in our core library, we will
+> (with your permission) add you to our list of contributors, and send you a
+> little something to say thanks.
+
+So keep your eyes peeled, and if something seems off, [let us know about
+it](https://discord.freesewing.org/) and we'll send you some goodies
diff --git a/sites/orgdocs/blog/a-call-for-help/index.mdx b/sites/orgdocs/blog/a-call-for-help/index.mdx
new file mode 100644
index 00000000000..b9d0d406ce6
--- /dev/null
+++ b/sites/orgdocs/blog/a-call-for-help/index.mdx
@@ -0,0 +1,247 @@
+---
+authors: 1
+caption: 'Note: This post is a long read. Although nowhere near as long as this book'
+date: '2020-08-30'
+intro: 'Please help grow FreeSewing beyond what I can do on my own'
+title: 'Please help grow FreeSewing beyond what I can do on my own'
+---
+
+Hi everyone, Joost here. I'm writing this post to address some problems that
+have been worrying me lately. Specifically, these problems:
+
+
+
+1. [There is too much work for one
+ person](#problem-1-there-is-too-much-work-for-one-person) 2. [I feel I'm
+ losing track of the sewing
+ community](#problem-2-i-feel-im-losing-track-of-the-community) 3. [I feel
+ insecure about how to deal with the issue of systemic
+ racism](#problem-3-i-feel-insecure-about-how-to-deal-with-the-issue-of-systemic-racism)
+
+The good news is that it's a relatively short list. The even better news is
+that all of these problems be addressed by the same solution: [Community
+building](#community-building).
+
+Before we get into that, let's briefly look at each problem:
+
+## Problem 1: There is too much work for one person
+
+Over the course of the last week I read [Working in public: The making and
+maintenance of open source software](https://www.amazon.com/dp/0578675862/) by
+[Nadia Eghbal](https://nadiaeghbal.com/).
+
+I bought it because I was hoping to find answers to some of the questions that
+I ask myself. Questions like “_How do other maintainers do it?_”, or “_Am I
+doing it wrong?_”
+
+In other words, I was hoping to find a fix for what I increasingly perceive as
+a problem: The inability to scale my own labour in line with how I'd like to
+scale FreeSewing, the project.
+
+I don't want to spoil the book, but it didn't provide any straightforward
+answers on how to address that problem. It turns out that the vast majority of
+open source maintainers are in the same boat. Most projects are run by either a
+single person, or a handful of people.
+
+There's nothing wrong with that. But it does put a firm upper limit on how much
+projects like FreeSewing can accomplish.
+
+## Problem 2: I feel I'm losing track of the sewing community
+
+I worry that I have been neglecting the communal aspects of FreeSewing, there
+are no comments or _social_ aspects on the site. I've always felt it was a
+fool's errand to try to corral people onto your own website. Better to let
+them have discussions on the platforms of their choice.
+
+For the sewing community, the platform of choice is often Instagram. Since I
+have left Instagram a year ago, I feel like I'm getting further away from the
+sewing community.
+
+My [reasons for
+leaving](https://joost.decock.org/post/187710847164/24-hours-from-now-i-want-to-remove-my-instagram)
+are as valid today as they were back then, but I wish I could connect with the
+sewing community in a way that works for me.
+
+## Problem 3: I feel insecure about how to deal with the issue of systemic
+
+racism.
+
+First things first: **Black lives matter** ✊🏾
+
+My insecurity stems from my environment. I am a white, middle-aged, cis-gender
+man who was born and raised in a country with a history drenched in the blood
+of people of color ([that country is
+Belgium](https://en.wikipedia.org/wiki/Atrocities_in_the_Congo_Free_State)).
+To this day, casual racism permeates all aspects of the society I live in.
+
+A welcoming and diverse community is a _sine qua non_ for me. But I feel
+ill-equipped to figure out how to create one on FreeSewing.
+
+## Community building
+
+As I mentioned earlier, these things have been on my mind for a while, albeit
+they were a lot more fuzzy. Then earlier this month I listened to [Black
+makers matter with Julian Collins on the podcast Love To
+Sew](https://lovetosewpodcast.com/episodes/episode-156-black-makers-matter-with-julian-collins/).
+
+[Julian](https://www.instagram.com/juliancreates/) is a patron of FreeSewing
+(thanks Julian) and actively involved with the [Black Makers
+Matter](https://www.instagram.com/blkmakersmatter/) movement on Instagram. I
+reached out to Julian looking for help, and we had a lengthy Zoom call where we
+talked about his work and how he goes about organizing the community.
+
+Julian had a lot of good advice. I couldn't possibly cram it all into this
+post, but it sort of boils down to:
+
+- Just ask people for help
+- Be clear about what kind of community you want to build
+
+So I am taking Julian's advice to heart, and asking for help. Before we get to
+that though, let's make sure we're all on the same page about the kind of
+community we're trying to build here.
+
+## Quick check: Are you on board with FreeSewing's values?
+
+To ensure that your values are aligned with those of FreeSewing, please take a
+moment to familiarize yourself with:
+
+- [Our community standards](/docs/about/community-standards/)
+- [Our code of conduct](https://freesewing.dev/contributors/code-of-conduct/)
+- [Our revenue pledge](/docs/about/pledge/)
+
+If reading that made you happy rather than angry, we could use your help :)
+
+## Please help grow FreeSewing beyond what I can do on my own
+
+We're starting simple: We plan to hold a Zoom/Skype/Whatever call every 2 weeks
+to figure it out as we go. We start the first weekend of September (next
+weekend). We haven't picked a time yet, for it will depend on the time zones
+the participants live in.
+
+If you'd like to attend, please [let us know in our chat
+room](https://discord.freesewing.org/).
+
+### What kind of help is needed?
+
+Beggars can't be choosers. All help is welcome, and I certainly don't want to
+turn down any volunteers.
+
+That being said, an overly vague call defuses the message. So I've
+listed/included a number of _roles_ below to give you an idea of the kind of
+work that goes into FreeSewing. It's not meant to be an exhaustive list, but
+merely a starting point for a discussion.
+
+The order is alphabetic.
+
+**Backend Developer** You keep our backend in step with the latest frontend
+developments. Express is no stranger to you. Node JS is a good friend. Or
+maybe you'd like them to be.
+
+**Body Ambassador** Maybe you're unusually short or tall. Maybe you have a bit
+of a pot belly or very large breasts. Maybe you have a disability that requires
+fit adjustments. Whatever it is, you represent a minority fitting issue, and
+are willing to act as an ambassador to make sure your needs are heard and
+understood.
+
+**Community Builder** You're an extrovert extraordinaire, or you're good at
+faking it. You enjoy chatting with all sorts of people, and networking is just
+you doing you. You're like the jelly that molds a group of individuals into a
+cohesive community.
+
+**Database Administrator** You look after our database. Other people might
+feel that's not important, but you know better. You're familiar with MongoDB.
+
+**Devops Engineer** Your aim is to make almost all these other roles
+irrelevant by automating the heck out of everything. CI and Github actions are
+fun for you. You like to sit back and have the robots do the work for you.
+
+**Frontend Developer** You improve our websites, specifically freesewing.org
+and freesewing.dev. Both of them are built with
+[Gatsby](https://www.gatsbyjs.com/), an open source framework for building
+frontends that is powered by [React](https://reactjs.org/). If you know these
+things, or would like to learn them, this is your jam.
+
+**Illustrator** You create illustrations to go alongside the written
+documentation. If you draw a bicycle from memory, it actually looks like a
+bicycle.
+
+**Inclusion & Diversity Manager** You have skin in the game when it comes to
+inclusion and diversity. You'll help make our community welcoming and diverse.
+You won't be afraid to tell this pasty white dude when he's wrong.
+
+**Language Ambassador** You represent FreeSewing in a non-English community.
+You can help answer questions or triage problem reports. Or you can point out
+where translations are missing.
+
+**Pattern Ambassador** You'll be responsible for a specific FreeSewing
+design/pattern. You'll be _the person_ to ask questions about how to make that
+pattern. You'll make sure the documentation is not forgotten. And you can
+help with questions or triage problem reports to developers or designers.
+
+**Pattern Designer** You come up with new pattern designs for FreeSewing. You
+might not know how to turn on a computer, but damn if you can't draft a bodice.
+
+**Pattern Developer** You program new designs for FreeSewing. You might not
+know how to design sewing patterns, but you're not afraid of Javascript and are
+happy to team up with a designer to work on a new pattern together.
+
+**Proofreader** You check original English text of translations for typos
+and/or grammar mistakes. You propose improvements and watch over a consistent
+style and tone across FreeSewing's documentation and written text. You're
+fluent in the language you're proofreading.
+
+**Social Media Platform Manager** You represent FreeSewing on a _platform_,
+where platform could be Facebook, Twitter, Instagram, Tiktok, Snapchat, Reddit
+…. You manage the FreeSewing account on the platform, and use it to
+interact with the community.
+
+**System Administrator** You look after our servers. You install updates, make
+sure certificates are up-to-date, the works. Linux is where your heart lies.
+You secretly automated most of your work with Ansible but hey, you put the
+playbooks in Git so no worries.
+
+**Technical Writer (code)** You write documentation for freesewing.dev, our
+developers website. You have good writing skills and familiarity with code
+(Javascript).
+
+**Technical Writer (sewing)** You write documentation for freesewing.org, our
+makers website. You have good writing skills and familiarity with sewing.
+
+**Translator** You translate FreeSewing into one of its additional languages
+(French, German, Dutch, Spanish) or if you're ambitious, add a new one. You're
+fluent in the language you're translating to, and have a good grasp of English.
+
+**UX Designer** You know what UX is and are happy to point out where it sucks
+and how it can be made better.
+
+**Release Manager** You pull the plug on new releases, you bundle our code,
+and publish new versions of our packages on NPM.
+
+**Web Designer** You know how to make things pretty, even if you're not sure
+how to actually make them work. You appreciate that we don't use #000 for
+black.
+
+### What's in it for me?
+
+We can't offer you money. Please [read our revenue pledge](/docs/about/pledge/)
+to understand why that is.
+
+What we can offer is responsibility, recognition, and a stake in something that
+strives to be a force for good in this world.
+
+It can also be an excellent learning opportunity for those of you who would
+like to pivot to a role in web development. And for as far as my time
+stretches — I will gladly teach and mentor people from underprivileged
+communities aiming for social mobility.
+
+## Conclusion
+
+Maybe you can help. Maybe you know somebody who can help, or for whom this
+would be a valuable learning experience.
+
+Either way, I'd appreciate it if you could help spread the message that I'm
+asking for help.
+
+Thank you,
+
+Joost
diff --git a/sites/orgdocs/blog/albert-apron/index.mdx b/sites/orgdocs/blog/albert-apron/index.mdx
new file mode 100644
index 00000000000..4027e393766
--- /dev/null
+++ b/sites/orgdocs/blog/albert-apron/index.mdx
@@ -0,0 +1,22 @@
+---
+authors: 1
+caption: 'Keep those home-made clothes clean while cooking with the Albert apron'
+date: '2020-10-17'
+intro: 'What do you do if your daughter needed an apron for school?'
+title: 'We haz apron now: FreeSewing 2.10 brings you Albert, a humble apron pattern'
+---
+
+What do you do if your daughter needed an apron for school?
+
+
+
+- Would you run out to the store and buy one?
+- Would you fire up your sewing machine and make one?
+- Would you say to yourself _hmm, better make a pattern first_ and then
+ share your FreeSewing pattern so that now everybody can have an apron?
+
+Because [that's what Wouter did](/showcase/albert-by-wouter/), so we wrapped it
+into FreeSewing v2.10, and [voila](/designs/albert/).
+
+
diff --git a/sites/orgdocs/blog/all-contributors/index.mdx b/sites/orgdocs/blog/all-contributors/index.mdx
new file mode 100644
index 00000000000..7aefc3d1fac
--- /dev/null
+++ b/sites/orgdocs/blog/all-contributors/index.mdx
@@ -0,0 +1,67 @@
+---
+authors: 1
+caption: "We're saying thanks to our contributors and want to make sure their contributions get the credit they deserve"
+date: '2021-11-28'
+intro: 'During our last contributor call , we decided that we would implement the All Contributors specification as a way to honour all our contributors.'
+title: 'Calling all contributors'
+---
+
+During [our last contributor
+call](https://github.com/freesewing/freesewing/issues/1514), we decided that we
+would implement the [All Contributors
+specification](https://allcontributors.org/) as a way to honour all our
+contributors.
+
+
+
+If on the surface, a contributor call decision to honour contributors sounds
+like some sort of self-serving nonsense, let me reassure you that there's no
+risk of dislocated shoulders from patting ourselves on the back. Instead it's
+about (also) honouring those contributions that tend to go overlooked in Open
+Source.
+
+The All Contributors website summerazes it as:
+
+> This is a specification for recognizing contributors to an open source
+> project in a way that rewards each and every contribution, not just code.
+>
+> People are giving themselves and their free time to contribute to open source
+> projects in so many ways, so we believe everyone should be praised for their
+> contributions (code or not).
+
+When we talk about _contributors_ in open source projects, there is often the
+assumption that this is all the people who contribute code to the project. The
+fact the [GitHub lists the contributors of a project based on the actual
+commits](https://github.com/freesewing/freesewing/graphs/contributors) goes a
+long way to cement that view.
+
+But there's plenty of contributions that fly under the radar of an automated
+system based on the commit history. Things like documentation and blog posts,
+community building, answering questions or submitting bug reports, are all
+valuable contributions that deserve to be recognized.
+
+By implementing the All Contributors specification, we pledge to give those
+people credit for their contributions, and make that credit visible. In
+practice the list of contributors will be included in the `README.md` file of
+all our packages, as well as in the main `README.md` file of [our
+`freesewing/freesewing` monorepo](https://github.com/freesewing/freesewing).
+
+In the future, we also plan to make this list available on our website.
+
+## How does it work?
+
+Going forward, we will make an effort to add all contributors regardless of how
+they contribute to the project. But we'd also like to capture contributions
+that were made up until now.
+
+For this, we need your help. If you've contributed to FreeSewing, let us know.
+You can [let us know on Discord](https://discord.freesewing.org/), or you can
+[create an
+issue](https://github.com/freesewing/freesewing/issues/new?assignees=joostdecock&labels=%F0%9F%92%9C+all+contributors&template=all-contributors.md&title=All+Contributors%3A+Please+add+%28username+here%29),
+or you can comment on [any
+issue](https://github.com/freesewing/freesewing/issues) or [pull
+request](https://github.com/freesewing/freesewing/pulls) using [the
+instructions for the all-contributors
+bot](https://allcontributors.org/docs/en/bot/usage).
+
+Don't be shy, add yourself :)
diff --git a/sites/orgdocs/blog/annnouncing-yuri/index.mdx b/sites/orgdocs/blog/annnouncing-yuri/index.mdx
new file mode 100644
index 00000000000..26e105295d2
--- /dev/null
+++ b/sites/orgdocs/blog/annnouncing-yuri/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 1
+caption: 'Designer Hellgy struts their stuff, while their Yuri flows in a summer breeze'
+date: '2021-09-05'
+intro: "Announcing FreeSewing v2.18: Congratulations, it's a Yuri"
+title: "Announcing FreeSewing v2.18: Congratulations, it's a Yuri"
+---
+
+I'm happy to announce the immediate availability of FreeSewing v2.18 and our
+latest addition to our catalog of designs: [The Yuri hoodie](/designs/yuri/) .
+Designed by [Hellgy](https://twitter.com/hellgy) and coded by their bae
+[Biou](https://github.com/biou/), Yuri is everything they love about [our Huey
+hoodie](/designs/huey/) sans their arch enemy: zippers.
+
+
+
+Checkout [Hellgy's showcase for more pictures](/showcase/yuri-by-its-designer),
+or check out [the pattern page itself](/designs/yuri/) for all details.
diff --git a/sites/orgdocs/blog/announcing-carlita/index.mdx b/sites/orgdocs/blog/announcing-carlita/index.mdx
new file mode 100644
index 00000000000..36469f59a50
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-carlita/index.mdx
@@ -0,0 +1,105 @@
+---
+authors: 1
+caption: 'Picture you and him, in matching coats.'
+date: '2018-01-26'
+intro: "This one's for the ladies --- and I'm not (just) talking about that picture of heart-throb Benedict Cumberbatch at the top of this post."
+title: 'Announcing Carlita, the womenswear version of our Carlton coat.'
+---
+
+This one's for the ladies --- and I'm not (just) talking about that picture of
+heart-throb Benedict Cumberbatch at the top of this post.
+
+
+
+Instead, I'm talking about the release of our latest pattern: the [Carlita
+Coat](/designs/carlita) which is out in beta as of today.
+
+Carlita is --- you guessed it --- the womenswear version of our Carlton coat,
+which recreates the iconic Sherlock Holmes coat worn by BC on the BBC series.
+
+## How did we do it?
+
+For details on how this project came to be, I refer you to [the Carlton
+announcement post](/blog/announcing-carlton-and-bent/). Here, I'd like to
+focus on the specifics of how we turned this menswear pattern into a coat for
+ladies.
+
+We wanted to stay as close to the original as possible, so all we did was make
+changes to address one challenge: fitting the breasts.
+
+### Princess, meet your seam
+
+We drew an extra princess seam in the front panel of the coat, through which we
+added shaping for the bust.
+
+To be able to do that accurately, Carlita requires three extra measurements in
+addition to the measurements required by Carlton. They are:
+
+- The [high bust](/docs/measurements/#highBust)
+- The [bust span](/docs/measurements/#bustSpan)
+- The [high point shoulder to
+ bust](/docs/measurements/#highPointShoulderToBust)
+
+We use your high bust measurements to draft the coat, and then do a full bust
+adjustment on the princess seam based on your (full) chest circumference, bust
+span and HPS to bust.
+
+### All of the pockets, but we had to move some of them
+
+The addition of the princess seam made the map pocket placement a bit
+difficult, so we've slightly moved it, and aligned it vertically, rather than
+slightly tilted as it is in Carlton.
+
+This way, the pocket can be integrated in the princess seam, somewhere in the
+underboob region.
+
+### One extra option: The princess seam smooth factor
+
+Carlita also has one extra option that Carlton doesn't have, the somewhat
+elaborately named [Princess seam smooth
+factor](/docs/designs/carlita/options#princessSeamSmoothFactor).
+
+This controls how sharply the princess seam will revert back after having added
+the extra volume for your chest.
+
+A picture says more than a thousand words, so here's the option sampled on the
+relevant part of the pattern:
+
+
+
+As you can see, the option controls the urgency with which the princess seam
+reverts back to your waistline after passing the fullest point of your bust.
+
+A low factor will make for a more fitted coat, but also a more curvy seam that
+is harder to sew.
+
+A higher smooth factor will smooth this out so it's a more sloped retreat to
+the downward seam. This will make the coat less fitted under your chest, and
+the seam easier to sew.
+
+## A reminder about made-to-measure patterns
+
+This goes without saying for regular visitors to this site, but if you're new
+here, it's worth repeating:
+
+> This coat is not drafted with a certain cup size in mind. Instead, it will
+> adapt to your chest based on your measurements.
+
+## Ladies, we need your feedback
+
+This is our first womenswear pattern with a fitted chest. As such, we're
+breaking new ground here, and I'd be interested to see how this pattern adapts
+to a variety of body shapes/cup sizes.
+
+If you're planning to make this coat, or a muslin of it, please share your
+experience, and don't hesitate to get in touch should you run into any issues.
+
+I plan to design more womenswear patterns, so if there are any fit issues, I'd
+like to know about it sooner rather than later.
+
+## Shout-out
+
+Last but not least, I'd like to thank [Anneke](http://www.annekecaramin.com/)
+for her help throughout this project, and tolerating my countless rants about
+my love/hate relationship with boobs.
diff --git a/sites/orgdocs/blog/announcing-carlton-and-bent/index.mdx b/sites/orgdocs/blog/announcing-carlton-and-bent/index.mdx
new file mode 100644
index 00000000000..0464ee84941
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-carlton-and-bent/index.mdx
@@ -0,0 +1,106 @@
+---
+authors: 1
+caption: "You too can wear this coat. Although you're on your own for the hat. At least for now."
+date: '2017-12-20'
+intro: 'Announcing Carlton, aka the Sherlock Holmes coat, and the Bent Body Block'
+title: 'Announcing Carlton, aka the Sherlock Holmes coat, and the Bent Body Block'
+---
+
+Good news everybody, we've got your cosplaying needs covered. That is, if you
+are cosplaying as Sherlock Holmes. Our newest pattern release, [the Carlton
+Coat](/designs/carlton) is exactly what the doctor prescribed if for some
+weird reason your doctor wants you to look like everyone's favorite detective.
+
+
+
+My memory is foggy on the exact origin of this endeavor. It probably involved
+me complaining about the cold and my lack of a warm winter coat, but apart from
+that, I'm not too sure.
+
+What I do remember is that at one point,
+[Anneke](http://www.annekecaramin.com/) and myself decided that we would
+reverse-engineer the Sherlock Holmes coat. More specifically, the coat worn by
+Benedict Cumberbatch in the BBC series Sherlock Holmes.
+
+
+
+The coat is popular with cosplayers for obvious reasons, but it's also just a
+really nice coat, and other brave souls [such as
+Melissa](http://blog.fehrtrade.com/gallery/868/the-sherlock-coat/) have tried
+their hand at it.
+
+I must admit that I didn't know Melissa made a similar coat until mine was
+finished. Furthermore, her blog post mentions that she used the instructions in
+a livejournal post that is no longer available.
+
+Anneke and myself did no such thing and just put the pattern together based on
+screengrabs from the TV show. We're hardcore like that.
+
+### About the coat
+
+Carlton is a double-breasted long overcoat in the tradition of horseback
+uniform coats where the back of the coat isn't split, but rather has wide
+pleats that can drape over the back of the horse. Or, more realistically, fan
+open behind you as you walk about.
+
+ 
+
+It comes with two patch pockets on the front, two map pockets at the chest, and
+two inner pockets. Six pockets in total, so you'll have plenty of room for all
+your belongings.
+
+ 
+
+I finished mine just in time for a trip to Köln to visit my beloved friend
+and tailor [Sebastian Hoofs](http://sebastian-hoofs.de/massschneider/). It was
+cold as eff over there, but the coat kept me nice and warm. Not surprising
+since it's made in a hefty wool I picked up in [Bacci in
+Florence](http://www.baccitessuti.it/en/index.html) over the summer, and I took
+the extra step of interlining it with French terry (I really don't like to be
+cold).
+
+ 
+
+### Burn the patriarchy to the ground through the power of pockets
+
+Ladies take note: Carlita --- a female version of Carlton --- is currently on
+the drawing board.
+
+Initially, the plan was to release male and female versions side by side, but
+adapting the coat has proven to be more involved than anticipated because,
+well, because boobs.
+
+I also feel like I have to keep too many plates spinning right now, so I'm
+hopeful that getting Carlton out the door will create some time/space to make
+Carlita follow soon(ish). Either way, I've promised Anneke that we'd do a
+female version, and [she's a freesewing Captain now](/patrons), so I intend to
+keep that promise.
+
+Oh, and about that title: When Carlita's ready, she will have just as many
+pockets as Carlton.
+
+## Also, this: Introducing the Bent Body Block We're actually releasing two
+
+patterns today. Apart from the Carlton Coat, there's also the [Bent Body
+Block](/designs/bent).
+
+Bent is a two-part sleeve variation of our [Brian Body Block](/designs/bent).
+It's essentially a base for coat and jacket patterns for menswear.
+
+I originally designed Bent as a base for my [refashioners 2017 zebra
+jacket](/blog/the-refashioners-2017/), so you can expect that jacket pattern to
+also hit the site in the coming months.
+
+Carlton is also based on Bent, so we're giving you both today.
+
+Have wonderful and happy holidays if you're into that kind of thing. And happy
+making!
diff --git a/sites/orgdocs/blog/announcing-charlie/index.mdx b/sites/orgdocs/blog/announcing-charlie/index.mdx
new file mode 100644
index 00000000000..ea319408e00
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-charlie/index.mdx
@@ -0,0 +1,103 @@
+---
+authors: 1
+caption: 'Photo by Flo Dahm from Pexels'
+date: '2021-04-18'
+intro: "We've just published FreeSewing v2.15 and it comes with a new pattern: The Charlie Chinos trouser pattern ."
+title: 'Charlie Chinos: who wants some new trousers?'
+---
+
+We've just published FreeSewing v2.15 and it comes with a new pattern: [The
+Charlie Chinos trouser pattern](/designs/charlie/).
+
+
+
+I have lost track of how long a chino trouser pattern has been on my to-do
+list, but it's measured in years. I'm very happy I finally landed where I
+wanted to be.
+
+I have a picture of it here, but due to the dark fabric, you can't really make
+out much:
+
+
+
+So instead, let me tell you about why I am so excited about this.
+
+##### Based on Titan
+
+First up, Charlie is based on Titan, our unisex trouser block that is also the
+foundation for [our Paco pattern](/designs/paco/). So if you're familiar with
+any of those, you already know how Charlie will fit you.
+
+##### More measurements, more options, better fit
+
+As a token of how much I feel this is an improvement, I've deprecated
+Theo. Based on an Aldrich draft, Theo uses very few
+measurements, and while that worked fine for a certain set of people, it's a
+less versatile pattern.
+
+Charlie will adapt better to differently shaped bodies, and has a hell of a lot
+more options that allow you to configure your trousers so you get them just as
+you like. In case you're wondering, Theo has 5 options, whereas Charlie has 31.
+
+That being said, we will keep Theo available. Deprecated merely means that
+we've added a little warning message saying that we recommend Charlie instead.
+
+##### Easier to make
+
+Another reason to opt for Charlie rather than Theo: Charlie is easier to make.
+It has a more straight-forward fly and waistband construction, and the front
+pockets have been cleverly designed to give you the ease of construction that
+comes with side-seam pockets, yet the classic look of slanted pockets.
+
+Theo ranks 4 stars on our difficulty scale, and I've given Charlie 3 stars. If
+you were afraid of making trousers, this might be the pattern you've been
+waiting for.
+
+##### Real pockets
+
+Charlie is a unisex pattern and the pockets are real. You have welt (aka
+jetted) pockets at the back, and slanted pockets at the front. In both cases,
+you have control over the size and depth of the pockets.
+
+The front pockets deserve a special mention. They look like traditional slanted
+pockets, but are set in on the side seam. To make that possible, the back panel
+of the trousers wraps around the front, following the pocket slant.
+
+## Other 2.15 news
+
+Charlie is the main act, but there's a lot of work that went in this 2.15
+release.
+
+As always, [the
+changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md)
+has all the details, but allow me to highlight some of the more noteworthy
+changes:
+
+- We have [a new bartack
+ plugin](https://freesewing.dev/reference/plugins/bartack/)
+- The [buttons plugin](https://freesewing.dev/reference/plugins/buttons/)
+ provides new
+ [buttonhole-start](https://freesewing.dev/reference/snippets/buttonhole-start)
+ and
+ [buttonhole-end](https://freesewing.dev/reference/snippets/buttonhole-end)
+ snippets
+- The [dimension plugin](https://freesewing.dev/reference/plugins/dimension/)
+ provides a new [rmad macro](https://freesewing.dev/reference/macros/rmad/)
+- The [logo plugin](https://freesewing.dev/reference/plugins/logo/) now
+ supports dark mode
+- Titan and Paco have a new `waistbandHeight` option
+- Core no longer rounds point coordinates to avoid misses when using
+ [path.split](https://freesewing.dev/reference/api/path/split/)
+- [Bella](/designs/bella/) has a fix to the shoulder to better accommodate
+ doll-sized clothing
+- [Charlie](/designs/charlie/) is the first pattern to list some of the
+ absolute dimensions when configuring a pattern, but we plan to extend this
+ to other designs We have documented [the new raise
+ methods](https://freesewing.dev/reference/api/part/raise) for designers who
+ want to utilize this feature.
+- Speaking of documentation, the examples in our [documentation for
+ developers](https://freesewing.dev/) now allows you to toggle a switch to
+ reveal the points and paths in the examples
+- The [part.getId()](https://freesewing.dev/reference/api/part/getid/) method
+ now takes a prefix argument
diff --git a/sites/orgdocs/blog/announcing-freesewing-library/index.mdx b/sites/orgdocs/blog/announcing-freesewing-library/index.mdx
new file mode 100644
index 00000000000..303a64b7480
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-freesewing-library/index.mdx
@@ -0,0 +1,122 @@
+---
+authors: 1
+caption: "I don't drink, but this seemed appropriate for a celebration post ¯\\_(ツ)_/¯"
+date: '2018-08-25'
+intro: 'Celebrating one year of freesewing.org: Announcing the freesewing library'
+title: 'Celebrating one year of freesewing.org: Announcing the freesewing library'
+---
+
+Exactly one year ago, the doors of freesewing.org swung open for our users,
+while those of makemypattern.com get one of those _we've moved_ signs.
+
+
+
+Looking back at [that blog post from 12 months ago](/blog/open-for-business),
+it almost beggars belief that the things announced then are only one year old.
+The concept of a draft, the comparison functionality, or even paperless
+patterns. They all celebrate their first birthday today.
+
+Not this site though, because [driven by the looming GDPR
+deadline](/blog/gdpr-plan), we dumped our Jekyll based site for a new front end
+sometime in May.
+
+## More languages with less languages
+
+GDPR was only part of that story. Other reasons for the rewrite were our
+desire to support multiple languages, and to simplify our technology stack.
+
+In other words, we wanted to reach people who speak different languages, and
+wanted to limit the number of programming languages required to do so.
+
+### More natural languages
+
+We've done remarkably well on this front. While you won't find every last bit
+of content translated, this website's main features are now available in five
+languages:
+
+- English
+- German
+- Spanish
+- French
+- Dutch
+
+Which really is 100% thanks to the great work of our wonderful
+translators.
+
+### Less programming languages
+
+The switch from Jekyll to a [Nuxt](https://nuxtjs.org/)-based front-end has
+removed [Ruby](https://www.ruby-lang.org/) from our technology stack.
+Freesewing.org now runs on JavaScript, PHP and a little bit of C (which we'll
+ignore for now).
+
+But removing programming languages is not a goal _an sich_. Rather, the
+underlying ambition is to simplify things, make it easier for people to get
+involved, and ultimately attract more contributors so that the project can grow
+and flourish.
+
+Today, designing/developing patterns is not an insurmountable obstacle. We've
+got [benjamin](/designs/benjamin), [florent](/designs/florent), and
+[sandy](/designs/sandy) to show for it. All of these were contributed by
+people for whom freesewing was initially new, they went through the design
+tutorial, and in the end created a pattern of their own.
+
+We'd like more people to follow in their footsteps. So making the process as
+simple as possible is a worthy investment of our time.
+
+## Announcing freesewing, the library
+
+For the past 2 months, I have taken time off from pattern making and sewing to
+tackle our [technical debt](https://en.wikipedia.org/wiki/Technical_debt).
+
+Specifically, I've set out to rewrite our core back-end from the ground up in
+JavaScript. But there's a twist. It's no longer a back-end. It's a library you
+can use both in your browser, or on the server with
+[node.js](https://nodejs.org/).
+
+It is currently in version 0.10, and feature complete with freesewing core.
+It's [available on GitHub](https://github.com/freesewing/freesewing) and
+[NPM](https://www.npmjs.com/package/freesewing), and is fully documented at
+[developer.freesewing.org](https://developer.freesewing.org/).
+
+And while its API is richer than core's, it's footprint is actually a lot
+smaller:
+
+
+
+Which is good news, in case you were wondering.
+
+## What happens next?
+
+A lot of work needs to be done before we can actually use this on
+freesewing.org:
+
+- All our existing patterns need to be parted to the JS version.
+ [Brian](https://github.com/freesewing/brian) is the first pattern to have
+ been ported.
+- Rewrite our data back-end in JS. Since this will remove the PHP programming
+ language from our stack.
+- Build a new website using the freesewing library and our new data back-end.
+
+This really is a lot of work, and while I hope that by the end of the year
+we'll have made good progress, I can't promise it will be done.
+
+## But I just want patterns
+
+Chances are, all you care about is patterns. What you want is more patterns,
+better patterns, different patterns. And all of this rewriting is not exactly
+pushing your buttons.
+
+I get that. I really do. I for one have a list of patterns I'd like to see
+added to the site. And my work on other aspects of the project keeps me from
+adding them.
+
+But I believe that investing now in a streamlined developer experience will
+have a knock-on effect in the long term.
+
+If we want a few extra patterns, this is not the right approach. But if we want
+a lot more patterns, I believe it is.
+
+And I want a lot more patterns.
diff --git a/sites/orgdocs/blog/announcing-freesewing-social/index.mdx b/sites/orgdocs/blog/announcing-freesewing-social/index.mdx
new file mode 100644
index 00000000000..dba8315810f
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-freesewing-social/index.mdx
@@ -0,0 +1,52 @@
+---
+title: 'Announcing FreeSewing.social'
+caption: 'Silhouette Photo of Elephant during Golden Hour by Renato Conti'
+date: '2023-11-03'
+intro: 'FreeSewing now has a home on the fediverse, and you can join too'
+authors: 1
+---
+
+FreeSewing has carved out a spaced for itself on the Fediverse and that space
+is [FreeSewing.social](https://freesewing.social). It's a Mastodon instance
+that is open to all FreeSewing users, and the larger community. ## The
+FreeSewing Mastodon instance The official FreeSewing account
+([@freesewing@freesewing.social](https://freesewing.social/@freesewing)) will
+be used for formal announcements, so if you want the headlines, follow that
+one.
+
+
+
+I will be using my own account
+([@joost@freesewing.social](https://freesewing.social/@joost)) for more
+frequent updates, news, discussion and whatnot. So if you'd like to be more in
+the loop, that's a good one to follow.
+
+And -- it bears repeating -- you are welcome to join this instance. If you were
+wondering about Mastodon/Fediverse but were not too sure about what to do or
+what server to join, this is your chance.
+
+## Leaving Twitter I need more work like I need another hole in my head, so
+
+setting up this instance was something I've been mulling over for a while, but
+in the end I decided to do it because Twitter -- where both FreeSewing and
+myself have an account -- has been transformed into something that I honestly
+don't want to have anything to do with.
+
+This has been going on for a while, and leaving Twitter at this point is not
+exactly a strong statement. It's just that I've been busy, and certainly was
+too busy to deal with this. So I decided that the website migration was a good
+time to make the formal announcement.
+
+So, I will remove both `@j__st` and `@freesewing_org` from Twitter at the end
+of this month.
+
+## Joining Bluesky The Fediverse is not for everyone, and for those who like
+
+the Twitter experience, Bluesky seems to be the alternative that is somewhat
+closest.
+
+This is by no means an endorsement, but I have created
+[joost.at](https://bsky.app/profile/joost.at) and
+[FreeSewing.org](https://bsky.app/profile/freesewing.org) on Bluesky. I will do
+my best to also post there so that those people who prefer it can get their
+updates that way.
diff --git a/sites/orgdocs/blog/announcing-freesewing-v30/index.mdx b/sites/orgdocs/blog/announcing-freesewing-v30/index.mdx
new file mode 100644
index 00000000000..6cf0a9d6a70
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-freesewing-v30/index.mdx
@@ -0,0 +1,126 @@
+---
+title: 'Announcing FreeSewing v3.0'
+caption: 'This picture by Engin Akyurt seems like the sort of understated celebration that is suitable or this announcement'
+date: '2023-09-30'
+intro: 'FreeSewing 3.0 is finally here. The 3.0 release culminates more than a year of work, and comes just over four years after the v2.0 release. What I’m saying is: I don’t make announcements like this often, and it’s a big deal. You should get excited.'
+authors: 1
+---
+
+FreeSewing 3.0 is finally here.
+
+FreeSewing is the leading open source platform for made-to-measure sewing
+patterns, loved by home sewers and fashion entrepreneurs alike.
+
+
+
+The 3.0 release culminates more than a year of work, and comes just over four
+years after the v2.0 release. What I'm saying is: I don't make announcements
+like this often, and it's a _big deal_. You should get excited.
+
+## Breaking changes
+
+Let's start with the obvious: This is a major release so there are breaking changes.
+Listing all of them would be rather challenging, and probably not that useful.
+The first pre-release versions of FreeSewing 3 is almost a year old, and all of
+the people who contributed designs have either ported their designs, or I
+did it for them.
+
+Still, I want to list three breaking changes that are super obviously going to
+break your stuff if you rely on FreeSewing code;
+
+- **FreeSewing 3 is ESM only**: Migrating a large Javascript project to ESM
+ modules is enough to make even the most seasoned developers break down and
+ cry, but it's done.
+- **FreeSewing 3 uses named exports**: There are obviously some places where a
+ default export is required (looking at you NextJS) but whereever we can, we
+ now use named exports exclusively because we all know those are better.
+- **FreeSewing 3 requires Node 18 or newer**: I recommend lts/hydrogen
+
+With that out of the way, let's talk about what's new.
+A lot of work went into this release, and I couldn't possibly cover all of it.
+But allow me to name-check some of the more fundamental changes.
+
+## Designs are now JBOP
+
+A big driver for the decision to freeze the v2 branch and start working on v3
+was to make it easier to mix-and-match parts from various designs.
+
+Design inheritance was already possible in v2, but because the configuration
+was handled on the design level, it required careful re-configuration of
+(required) measurements, options, part dependencies, and so on. It was possible
+but came with a lot of friction.
+
+In v3, all configuration is moved to the part level, and a design is now not
+much more than _just a bunch of parts_ (JBOP). It is the parts themselves that
+configure what they need. This includes anything from the measurements they
+require, the options they provide, the plugins they use, their dependencies,
+and so on.
+
+This way, re-use parts from various designs, and all of their configuration,
+dependencies, plugins, and so on will follow.
+
+## Less boilerplate
+
+Creating a design has also become a lot simpler, you essentially pass your list
+of parts to our `Design` constructor and you're done:
+
+```mjs
+import { Design } from '@freesewing/core'
+
+export const MyDesign = new Design({
+ parts: [
+ /* ... your parts here ... */
+ ],
+})
+```
+
+Speaking of less boilerplate, in v2, the most common plugins were already
+bundled in the `@freesewing/plugin-bundle` package, but you still had to
+include them in your design. In v3, those plugins have moved to the
+`@freesewing/core-plugins` package, and will be loaded by FreeSewing's core
+library by default (although you can opt out of that).
+
+## Plugins with more powers
+
+In addition to providing macros, snippets, or tapping into FreeSewing's
+lifecycle hooks, plugins can now also add methods to the store.
+
+This is allows further extending FreeSewing with whatever exciting thing you
+can thing of. As an example, the way logging is handled in the core library
+was re-implemented based on this. Which means that if you would like a
+different logging solution, you can simple provide your own log handler in a
+plugin.
+
+## New development environment
+
+With the version 3 release comes a new development environment that closely
+mimics what we will be providing at FreeSewing.org (more on that later).
+
+The development environment ships with various templates that you can use to
+either start a design from scratch, or extend one of our blocks. You don't have
+to choose one over the other either, you can use all of these at the same time,
+and if you want even add more.
+
+Our new development environment now allows (optionally) integrates with the
+FreeSewing backend. You can authenticate with your FreeSewing account so you
+can (re)use your measurements while working on your designs.
+
+## Not everything is versioned
+
+There's a lot more I could talk about, but I need to address the elephant in
+the room: So we have 3.0 now, when do non-developers get to use this?
+
+Well... I'm going to need a bit more time. Everything is sort of ready, but
+some things always a bit more time because you can't really to them in advance.
+Things like translation, some more testing, not to mention migrating 50k users
+to a completely different infrastructure.
+
+So as a regular user of FreeSewing.org who is not itching to spin up a
+development environment, you will need to hold on a little longer. But
+clearly, it's going to be soon now. I'd say a matter of weeks, rather than
+months.
+
+In the meanwhile, if you find a problem or bug, create an issue because
+FreeSewing 3 is now production-ready and fully supported.
+
+joost
diff --git a/sites/orgdocs/blog/announcing-freesewing/index.mdx b/sites/orgdocs/blog/announcing-freesewing/index.mdx
new file mode 100644
index 00000000000..c0f6df5c2e8
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-freesewing/index.mdx
@@ -0,0 +1,86 @@
+---
+authors: 1
+caption: 'The freesewing logo'
+date: '2017-03-24'
+intro: 'I am are proud to announce freesewing core v1.0.0 and the accompanying documentation that describes the freesewing project in detail.'
+title: 'Announcing freesewing, an open source platform for made-to-measure sewing patterns'
+---
+
+I am are proud to announce [freesewing core
+v1.0.0](https://github.com/freesewing/core) and the accompanying
+[documentation](/docs) that describes the freesewing project in detail.
+
+
+
+But I'm also realistic, and understand that you don't have time to plow through
+pages upon pages of documentation.
+
+So instead, here's a story to give you the essence of freesewing in a nutshell:
+
+## The freesewing origin story Sewing is easy. It really is. What's hard is
+
+getting things to fit properly. That's why you use a sewing pattern. It's a
+blueprint for whatever it is you are making. A good pattern gives you good
+fit. Most patterns don't.
+
+That's because — much like clothes in the shop — patterns come in
+sizes. And sizes are a crude way to put people in boxes. They are made for an
+imaginary average person, rather than for you.
+
+There's another way, and that is to draft a pattern based on your measurements.
+These made-to-measure patterns are vastly superior, but they require a lot of
+work.
+
+I wanted to change that, and that effort evolved into
+[MakeMyPattern.com](https://makemypattern.com/). I ran that site for a
+number of years, and it was a remarkable success. Probably helped by the fact
+that I gave away all patterns for free.
+
+In the world of home sewing, it tends to require a bit of explaining why one
+would choose to give away their work for free. Things are different in the
+open source world where the idea of sharing your work with others for the
+benefit of all is the very thread from which communities are woven.
+
+While I can't magically bring the culture of open source to sewing patterns, I
+certainly can bring sewing patterns into the open source world.
+
+[Freesewing.org](https://freesewing.org/) will continue to offer what
+[Makemypattern.com](https://makemypattern.com/) does today: free sewing
+patterns drafted to your measurements. But additionally, it will be open to
+your contributions.
+
+Here's hoping that in the Venn diagram of the somewhat geeky and sewing, it's
+not just me in the middle.
+
+joost
+
+## Shout-outs Freesewing is a project by [Joost De
+
+Cock](https://github.com/joostdecock) and contributors.
+
+Hat-tip to [@jakesgordon](https://github.com/jakesgordon) and [Kevin
+Lindsey](http://www.kevlindev.com) for allowing me to port some of their code.
+
+The early-stage enthusiasm and input of
+[@diggydev](https://github.com/diggydev), [@cabi](https://github.com/cabi),
+[@woutervdub](https://github.com/woutervdub),
+[@cloutiy](https://github.com/cloutiy),
+[@straytaoist](https://github.com/straytaoist),
+[@netpraxis](https://github.com/netpraxis),
+[@Stefan1960](https://github.com/Stefan1960),
+[@brendare1](https://github.com/brendare1),
+[@JorisJoppe](https://github.com/JorisJoppe),
+[@JamJenkins](https://github.com/JamJenkins), and
+[@fightingrabbit](https://github.com/fightingrabbit) has been a great boon to
+this project.
+
+Thanks to [@annekecaramin](https://twitter.com/annekecaramin) for designing a
+logo cool enough to put on a Tshirt.
+
+Special thanks to [@scorchtorch](https://twitter.com/scorchtorch) for being the
+best at that heart/salad/antlers thing.
+
+Last but not least, this project would not exist without the users, supporters,
+and donors of [makemypattern.com](https://makemypattern.com/).
+
+Thanks guys!
diff --git a/sites/orgdocs/blog/announcing-hortensia/index.mdx b/sites/orgdocs/blog/announcing-hortensia/index.mdx
new file mode 100644
index 00000000000..88b52c93f6c
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-hortensia/index.mdx
@@ -0,0 +1,36 @@
+---
+authors: 1
+caption: 'An example Hortensia made by the designer'
+date: '2021-02-13'
+intro: "I'm happy to announce the immeadiate availability of our latest FreeSewing pattern: the Hortensia handbag ."
+title: 'Say hi to our latest pattern: The Hortensia handbag'
+---
+
+I'm happy to announce the immeadiate availability of our latest FreeSewing
+pattern: [the Hortensia handbag](/designs/hortensia/).
+
+
+
+Hortensia's origin story traces back to
+[@stoffsuchti](https://twitter.com/stoffsuchti) who wanted to create a pattern
+for a handbag, and was looking for somebody who could implement that design in
+code.
+
+It was [Wouter](https://github.com/woutervdub) who answered the call and
+implemented the pattern, making this another success story from the FreeSewing
+community.
+
+## No measurements needed
+
+This is the first pattern on FreeSewing that does not require any measurements
+to make. There's some options you can choose — to control the size of the
+handbag for one thing — but since this is a handbag, no measurements are
+needed.
+
+This makes Hortensia a great project to make as a gift, since there's no need
+to worry about fit.
+
+:::tip
+Now show us yours If you do make a Hortensia, do [send us
+pictures](https://discord.freesewing.org/).
+:::
diff --git a/sites/orgdocs/blog/announcing-penelope/index.mdx b/sites/orgdocs/blog/announcing-penelope/index.mdx
new file mode 100644
index 00000000000..916a7885e9d
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-penelope/index.mdx
@@ -0,0 +1,47 @@
+---
+authors: 1
+caption: 'The pattern illustration for Penelope'
+date: '2018-06-29'
+intro: "I'm very happy to announce the immeadiate availability of the Penelope Pencil Skirt , out in beta today."
+title: 'Announcing the Penelope Pencil Skirt; And our womenswear roadmap'
+---
+
+I'm very happy to announce the immeadiate availability of
+[the Penelope Pencil Skirt](/designs/penelope), out in beta today.
+
+
+
+Penelope was designed by [@woutervdub](/users/user?id=132) who also signed for
+[benjamin](/designs/benjamin).
+
+## Freesewing is not (just) for menswear
+
+This new foray into womenswear foreshadows our plans for the second half of
+this year. That's right, we're going to be making more patterns for ladies.
+
+Freesewing has a bit of a menswear reputation, since historically we've had a
+lot more patterns for men than for ladies. But that doesn't mean women are
+second-class citizens here. It's just a side-effect of how this project was
+historically run by a man. Can you blame a brother for designing patterns he'd
+like to wear himself?
+
+Today, freesewing is a communal effort, and there's plenty of ladies involved.
+So it only make sense to make a conscious effort to do something for our
+sisters. And that's exactly what we'll be doing.
+
+We've got another pattern in the pipeline that is not only for women, but also
+by a woman. By [@AlfaLyr](/users/user?id=1230) in particular, who has designed a
+circle skirt pattern that is going to land here real soon.
+
+In parallel, I'll be working with [@AnnekeCaramin](/users/user?id=168) on a
+female equivalent for [Brian](/designs/brian), our basic body block on which
+many of our patterns are based. The idea is to make a quality bodice block for
+ladies that is made-to-measure and can handle the common fitting issues
+automatically. I'm talking about full bust adjustment, sway back, these kind of
+things.
+
+Once we have that block, expect us to spin it into a bunch of dresses and tops.
+
+And as always, if you have pattern design skills but are a bit intimidated by
+the platform, reach out to us to see if we can join forces to make your ideas a
+reality.
diff --git a/sites/orgdocs/blog/announcing-sandy/index.mdx b/sites/orgdocs/blog/announcing-sandy/index.mdx
new file mode 100644
index 00000000000..cdeae6e02e4
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-sandy/index.mdx
@@ -0,0 +1,30 @@
+---
+authors: 1
+caption: "Did you know that Sandy was named after Olivia Newton-John's character in the move Grease?"
+date: '2018-08-01'
+intro: "Ladies and gentlemen --- because who says men can't wear skirts --- I am happy to announce the immeadiate availability of our latest freesewing pattern: the Sandy circle skirt ."
+title: 'Announcing Sandy, a circle skirt designed by @AlfyLyr'
+---
+
+Ladies and gentlemen --- because who says men can't wear skirts --- I am happy
+to announce the immeadiate availability of our latest freesewing pattern: [the
+Sandy circle skirt](/designs/sandy).
+
+
+
+Sandy was designed by [@AlfaLyr](/users/user?id=1230) who really did a stellar job.
+This makes it also another pattern from the freesewing community, something
+that I'm very excited about.
+
+## All the options
+
+As many patterns here at freesewing, Sandy comes with a bunch of options to
+allow you to customize your skirt to your wishes.
+
+There's options for how much of circle you want (half? full? Something else?),
+how long you want it, the shape and overlap of the waistband, whether you want
+pleats, how much hem, and so on.
+
+I can see this becoming rather the success story. So go and treat yourself to
+a new skirt, and let [@AlfyLyr](/users/user?id=1230) know how it
+works out for you.
diff --git a/sites/orgdocs/blog/announcing-shin/index.mdx b/sites/orgdocs/blog/announcing-shin/index.mdx
new file mode 100644
index 00000000000..79f4b920f7a
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-shin/index.mdx
@@ -0,0 +1,39 @@
+---
+authors: 1
+caption: 'I guess this is what augmented reality looks like?'
+date: '2018-09-29'
+intro: 'A while ago I found myself in need of some new swim trunks. So I drafted a pattern and made some:'
+title: 'Announcing Shin, a swim trunks pattern'
+---
+
+A while ago I found myself in need of some new swim trunks. So I drafted a
+pattern and made some:
+
+
+
+
+
+I asked if people would be interested in a pattern like this, and turns out
+that yes, they were.
+
+So, after some more tweaking, I think this is ready for you guys, and meanwhile
+Roy has already provided an illustration for it too.
+
+
+
+## Options and documentation available
+
+Shin comes with options, and they are very close to the options available for
+[Bruce](/designs/bruce).
+
+All [options are documented](/docs/designs/shin/options), as are the [required
+measurements](/docs/designs/shin#measurements), and I've also written
+[instructions for how to make this](/docs/designs/shin/instructions).
+
+I still have to do the illustrations, but it's really not hard so you'll
+probably figure it out without them. Essentially, you can go and make this
+right now.
+
+Enjoy!
diff --git a/sites/orgdocs/blog/announcing-sven/index.mdx b/sites/orgdocs/blog/announcing-sven/index.mdx
new file mode 100644
index 00000000000..7bfb7c89448
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-sven/index.mdx
@@ -0,0 +1,25 @@
+---
+authors: 1
+caption: 'A Sven made for the office. As in, kinda boring'
+date: '2017-07-09'
+intro: 'Winter caused me to design this pattern. I was cold, and needed some sweaters, so what does one do?'
+title: 'Announcing the Sven Sweater; A basic sweater based on the Brian body block'
+---
+
+Winter caused me to design this pattern. I was cold, and needed some sweaters,
+so what does one do?
+
+
+
+Sven stayed under the radar until now because I designed it on the (then
+unreleased) freesewing platform, and until now I didn't have a place to show it
+to people.
+
+That's how we got here. Now about that sweater: It's a simple design based on
+the Brian body block. I've made three different version myself, changing the
+neckline and fabrics, and it really does what it needs to do very well (as in,
+keep me warm).
+
+## Pictures or it didn't happen
+
+Check out the [Sven showcases](/showcase/tags/sven) for some samples.
diff --git a/sites/orgdocs/blog/announcing-teagan/index.mdx b/sites/orgdocs/blog/announcing-teagan/index.mdx
new file mode 100644
index 00000000000..e6f06416aa4
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-teagan/index.mdx
@@ -0,0 +1,62 @@
+---
+authors: 1
+caption: 'Photo by Alex Andrews from Pexels'
+date: '2020-09-09'
+intro: "A while ago somebody asked whether we had a T-shirt pattern on freesewing.org and it turns out, we didn't."
+title: 'FreeSewing 2.9 brings our Teagan T-shirt pattern'
+---
+
+A while ago somebody asked whether we had a T-shirt pattern on freesewing.org
+and it turns out, we didn't.
+
+
+
+There's no good reason for that, we just never got around to that. So today
+we're rolling out version 2.9 of FreeSewing with our latest pattern: [the
+Teagan T-shirt](/designs/teagan/).
+
+
+
+## Who is this for?
+
+Teagan is fitted T-shirt pattern with options for altering the neckline,
+length, and sleeves.
+
+Teagan is based on [our Brian block](/designs/brian/), which does not take
+breasts into account. That being said, this will work for people with breasts
+too. Since it uses the chest circumference it will simply draft a T-shirt to
+fit your full chest.
+
+We've also added an option to draft this to your high bust, which would give
+you a more fitted T-shirt with ease & stretch having to accomodate for your
+breasts.
+
+
+
+## Community Updates
+
+If you're thinking about sewing Teagan, but you're new to sewing or working
+with knits, never fear! FreeSewing has more support than ever. Chat with us on
+[Discord](https://discord.freesewing.org/), in a [Facebook
+Group](https://www.facebook.com/groups/627769821272714), or on
+[Reddit](https://www.reddit.com/r/freesewing/). Find us on social as
+@freesewing_org on [Instagram](https://www.instagram.com/freesewing_org/) and
+[Twitter](https://twitter.com/freesewing_org). If you're looking for tutorials,
+there's a new [YouTube
+channel](https://www.youtube.com/channel/UCLAyxEL72gHvuKBpa-GmCvQ) for that. It
+has a whole series on [sewing up
+Teagan](https://www.youtube.com/playlist?list=PLY9EmRuXR20Y7FonIHD6mX9yIpFh_emX1),
+as well as this amazing preview.
+
+
+
+If all of this sounds awesome, and you want to get more involved with
+FreeSewing, you can check out our repositories and source code on
+[Github](https://github.com/freesewing/) or connect with other contributors via
+[Discord](https://discord.freesewing.org/). You can find announcements about
+upcoming contributor calls on Discord, in the announcements channel.
+
+And if you sew up a Teagan T-shirt, let us know what you think!
diff --git a/sites/orgdocs/blog/announcing-ursula/index.mdx b/sites/orgdocs/blog/announcing-ursula/index.mdx
new file mode 100644
index 00000000000..59b5d9e37c5
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-ursula/index.mdx
@@ -0,0 +1,23 @@
+---
+authors: 1
+caption: 'Photo by Karolina Grabowska from Pexels'
+date: '2021-06-27'
+intro: 'Announcing Ursula, a basic, highly-customizable underwear pattern'
+title: 'Announcing Ursula, a basic, highly-customizable underwear pattern'
+---
+
+FreeSewing 2.17 is out, and it while it comes with many fixes and improvements,
+the biggest news is certainly a brand new pattern: [The Ursula
+Undies](/designs/uma/) by US-based designer Natalia Sayang.
+
+
+
+
+
+The picture above is from [this showcase post](/showcase/ursula-test-pairs/)
+which includes several more examples of the different styles you can accomplish
+with this versatile pattern.
+
+Ursula is a quick make, not to mention the ultimate stash-buster. We are
+really excited about it.
diff --git a/sites/orgdocs/blog/announcing-v2/index.mdx b/sites/orgdocs/blog/announcing-v2/index.mdx
new file mode 100644
index 00000000000..022367ec705
--- /dev/null
+++ b/sites/orgdocs/blog/announcing-v2/index.mdx
@@ -0,0 +1,86 @@
+---
+authors: 1
+caption: 'This release really is a sea-change'
+date: '2019-08-25'
+intro: 'Welcome to version 2 of FreeSewing, the open source platform for made-to-measure sewing patterns.'
+title: 'Announcing FreeSewing v2.0'
+---
+
+Welcome to version 2 of FreeSewing, the open source platform for
+made-to-measure sewing patterns.
+
+This release culminates more than a year of work, and comes two years to the
+day since FreeSewing first went live. Today, we once again raise the bar for
+what you can expect from modern-day sewing patterns.
+
+
+
+## 🦄 Harder, better, faster, stronger
+
+[\*](https://www.youtube.com/watch?v=GDpmVUEjagg)
+
+We are _extremely_ excited about this release, which is not just merely a new
+major version with some breaking changes, but a complete rewrite in
+JavaScript/Node.js. We won't go into the nitty gritty here, but if you'd like
+to know how we've done it, check out [the developer
+docs](https://freesewing.dev) or [FreeSewing on
+GitHub](https://github.com/freesewing).
+
+## ✨ Live preview
+
+FreeSewing has always had a reputation for publishing sewing patterns with tons
+of options for you to tweak. Which is great, but can be a bit overwhelming
+because you only got to see the result of all those tweaks at the very end.
+But those days are gone. Now, no matter what changes you make, you get a live
+preview of what your pattern will look like, taking the guesswork out of
+configuring your pattern exactly as you like it.
+
+## 🧂 Recipes
+
+Where we used to store your patterns for you, now we'll store your _recipes_
+instead. You can go through as many pattern iterations as you want. And when
+you're happy, we'll save all the settings it takes to create that exact pattern
+in a so-called recipe.
+
+You can then at any time re-use that recipe to recreate your pattern, or use it
+as a starting point to make a slightly different pattern. You can also share
+these recipes, allowing others to generate the same look for their own
+measurements.
+
+## 🤝 Getting involved was never easier
+
+What hasn't changed is that we still support 5 languages (shout-out to all
+translators) and that FreeSewing is still a 100% communal effort (shout-out to
+all contributors). There's only volunteers here, and if you'd like to help out,
+it's never been easier.
+
+For those who are interested in our code, head over to our new developer
+documentation at [freesewing.dev](https://freesewing.dev) to learn about the
+new platform, our core API, our plugins, and more.
+
+For those of you who are interested in designing patterns, we have updated our
+[pattern design tutorial](https://freesewing.dev/tutorial) so you can hit the
+ground running.
+
+There's good news for translators too, as we now use
+[Crowdin](https://crowdin.com/) which makes translation a breeze. If you'd like
+to help out with translation, or maybe even add a new language to FreeSewing,
+make sure to [get in touch](https://discord.freesewing.org/).
+
+## 💩 Usual caveats apply
+
+It's conventional wisdom in software development that refactoring code is good,
+but rewriting it from scratch is bad. Still, we did it anyway because we wanted
+to make it easier for people to get involved in the project, and generate
+patterns in real-time in the browser.
+
+That being said, this is a .zero release so you may stumble upon an issue left
+or right. When you do, please [let us know](https://discord.freesewing.org/) or
+submit an issue.
+
+## 🤞 Tell us what you think
+
+We'd love to hear your feedback. We're **@freesewing_org** on
+[Twitter](https://twitter.com/freesewing_org) and
+[Instagram](https://instagram.com/freesewing_org), use the **#freesewing**
+hashtag, or [check our share page](/share).
diff --git a/sites/orgdocs/blog/bella-bodice-block/index.mdx b/sites/orgdocs/blog/bella-bodice-block/index.mdx
new file mode 100644
index 00000000000..fb397842bc4
--- /dev/null
+++ b/sites/orgdocs/blog/bella-bodice-block/index.mdx
@@ -0,0 +1,41 @@
+---
+authors: 1
+caption: 'Remember when we were allowed to go outside?'
+date: '2021-01-17'
+intro: 'The Bella bodice block for womenswear'
+title: 'The Bella bodice block for womenswear'
+---
+
+We've just published a new pattern on this website: [Bella, a bodice block for
+womenswear](/designs/bella/). It's a block with bust and waist dart, and a
+waist dart at the back.
+
+
+
+My goal when venturing into womenswear was to make one foundational block from
+which we could then spin out a range of different garments.
+
+Which is why we have [Breanna](/designs/breanna/), which I designed from
+scratch. Unfortunately, it hasn't been the end-all be-all that I — perhaps
+naively — hoped it would be.
+
+For Bella, I worked with someone from the industry to implement a design that
+is commonly used for commercial garment making. As such, I am curious to see
+how this one will pan out.
+
+My initial plan was to also make a variation with a shoulder dart at the front,
+to replace the bust dart, but in the end I settled for getting it released,
+rather than work on it longer.
+
+Which brings me to:
+
+##### I'm taking a break from womenswear
+
+I feel like I'm expending a lot of effort here for little result. It's getting
+me down, and I need a win.
+
+I want to work on something that I can not only design, but also make and wear.
+Something that gives me joy, and makes me feel like I know what I'm doing.
+
+So while I'll still help out people who want to design for women themselves, I
+am taking a break from womenswear.
diff --git a/sites/orgdocs/blog/benjamin-bow-tie-beta/index.mdx b/sites/orgdocs/blog/benjamin-bow-tie-beta/index.mdx
new file mode 100644
index 00000000000..a2f631fbe3a
--- /dev/null
+++ b/sites/orgdocs/blog/benjamin-bow-tie-beta/index.mdx
@@ -0,0 +1,55 @@
+---
+authors: 1
+caption: 'If you like it, put a bow on it'
+date: '2017-11-14'
+intro: 'Our family of freesewing patterns has grown once again, and the benjamin of the family is... Benjamin .'
+title: "The Benjamin Bow Tie pattern is now available in beta. And I didn't even have to do anything."
+---
+
+Our family of freesewing patterns has grown once again, and the benjamin of the
+family is... [Benjamin](/designs/benjamin).
+
+
+
+Benjamin is a bow tie that comes with a variety of options to control pretty
+much every aspect of your bow tie.
+
+You can opt for a made-to-measure bow tie, or draft Benjamin with an adjustment
+ribbon to allow some flexibility in the fit. Something that makes this a great
+handmade gift for the upcoming holiday season.
+
+## Benjamin is more special than you realize
+
+Here's the thing about Benjamin that I'm most excited about: I didn't do
+anything.
+
+
+
+That's right, Benjamin was designed and coded by [Wouter Van
+Wageningen](/users/user?id=132) who has over the last couple of months been teaching
+himself the ins and outs of the freesewing platform:
+
+> I had a blast making the Bow Tie pattern. I basically used it to move from
+> the BabyBib tutorial into something that was original and not too complex
+> (and actually useful). I wanted to get the whole process under control
+> before venturing out into the real stuff.
+>
+> That I was able to pick things up so easily is due mostly to the great
+> [BabyBib tutorial](https://freesewing.org/tutorials/pattern-design/) and the
+> help you've provided [here](https://discord.freesewing.org).
+
+## Who will be next to contribute a pattern?
+
+When I released freesewing as an open source platform, I obviously hoped that
+others would join the effort.
+
+But I never thought that less than 3 months after the public release of
+freesewing, we'd have our first pattern from the freesewing community.
+
+
+
+So yeah, Benjamin is a BFD, Wouter is a badass, and I am hopeful that this will
+be the first of many patterns that we as a community will be able to make
+available to all.
diff --git a/sites/orgdocs/blog/breanna-measurements-sizes-in-2-2/index.mdx b/sites/orgdocs/blog/breanna-measurements-sizes-in-2-2/index.mdx
new file mode 100644
index 00000000000..583974ae1db
--- /dev/null
+++ b/sites/orgdocs/blog/breanna-measurements-sizes-in-2-2/index.mdx
@@ -0,0 +1,156 @@
+---
+authors: 1
+caption: "This post describes what's new in version 2.2 of FreeSewing"
+date: '2020-02-22'
+intro: "A look at what's new in FreeSewing 2.2, including Breanna, our bodice block for womenswear"
+title: "A look at what's new in FreeSewing 2.2, including Breanna, our bodice block for womenswear"
+---
+
+Version 2.2 of FreeSewing is here, and it has a bunch of changes and
+improvements big and small. The
+[changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md)
+lists all the changes, but here's what you need to know:
+
+
+
+- [New pattern: Breanna is a bodice block for
+ womenswear](#new-pattern-breanna-is-a-bodice-block-for-womenswear)
+- [New/Different measurements to better suit
+ womenswear](#newdifferent-measurements-to-better-suit-womenswear)
+- [Generate patterns in _standard_ sizes (no account
+ required)](#generate-patterns-in-standard-sizes-no-account-required)
+
+Let's have a look at what it all means:
+
+## New pattern: Breanna is a bodice block for womenswear
+
+Meet [Breanna](/designs/breanna/), our bodice block for womenswear.
+
+A block (or sloper) may not the most exciting pattern to look at, but it plays
+an important role as it is the basic form which other patterns are built on.
+
+For example, we have a similar block for menswear called
+[Brian](/designs/brian/) and our [Aaron](/designs/aaron/),
+[Bent](/designs/bent/), [Carlita](/designs/carlita/),
+[Carlton](/designs/carlton/), [Huey](/designs/huey/), [Hugo](/designs/hugo/),
+[Jaeger](/designs/jaeger/), [Simon](/designs/simon/),
+[Simone](/designs/simone/), [Sven](/designs/sven/), and
+[Wahid](/designs/wahid/) patterns can all can trace their lineage back to Brain
+somehow.
+
+In other words, Breanna is an important building block for us to extend our
+womenswear collection. But that does not mean it is not good news for you too.
+If you have been sewing for a while, chances are drafting your own block/sloper
+has perpetually been on your to-do list. Well, good news, because here is your
+block ready to go.
+
+Oh, and of course it has all the bells and whistles you can expect from us.
+Have a look at [the pattern options](/docs/designs/breanna/options/) and I
+think you'll be positively impressed. If nothing else, this block can
+accommodate 1 or 2 bust darts in 15 different places, giving you 120 unique
+ways to place your bust dart(s).
+
+Breanna has has been a while in the making, and we'd love to get your feedback
+on it. Making a muslin from a block like this really isn't much work. So if
+you've got some time to spare to whip this one up and let us know how it went,
+that would be great.
+
+## New/Different measurements to better suit womenswear
+
+Now that we're making our jouney into womenswear, we realized that the
+measurements we use on the site are somewhat skewed towards menswear. In
+addition, we had a lot of people stuggling with the shoulder slope measurement.
+So we decided to re-visit our measuremets, and we've made the following
+changes:
+
+### We have a bunch of new _HPS_ measurements
+
+We've settled on the High-Point Shoulder, the so-called HPS point, as the basis
+for many of the vertical torso measurements. If you're not certain what/where
+the HPS point is, [check the HPS documentation](/docs/sewing/hps/).
+
+### We discontinued the Center Back To Neck measurement
+
+As we mentioned earlier, we use measurements from the HPS point now for
+vertical torso measurements. As a result, we've discontinued the old _Center
+back neck to waist_ measurement.
+
+Given that this measurement is now gone, you may need to add another
+measurement for certain patterns.
+
+### We changed the way the shoulder slope is measured
+
+We noticed that people struggles with the way we asked them to measure [the
+shoulder slope measurement](/docs/measurements/shoulderslope) so we have
+changed how to do that.
+
+Because the new method yields a very different number (that ultimately captures
+the same thing, how much your shoulder slopes downward) here too we had to go
+in and reset all the existing data. In other words, you'll have to re-measure
+your shoulder slope.
+
+## Generate patterns in _standard_ sizes (no account required
+
+To get great patterns, you need good measurements, and a bunch of them. It's
+what we do here at FreeSewing, and most of the problems with patterns are
+because something goes wrong with taking measurements.
+
+Unfortunately, there is no magic shortcut for this. If you want something
+made-to-measure, it's always going to start with acurate measurements.
+
+This does raise the bar for people who are new to the site, and want to kick
+the tires.
+
+> _Oooh, free patterns, nice_ 😍 _Wait, I have to create an account first?_ 🤔
+> _And take all these measurements?_ 😬 _That seems like a lot of work._
+
+Fair enough.
+
+In addition, our regular visitors also asked us whether they could get to see a
+pattern and play around with it without first having to put in a bunch of
+measurements.
+
+So **_drumroll_** that is no longer required. We now offer all our patterns in
+_standard sizes_. Not only do you not have to take measurements to try out the
+patterns, you don't even have to sign up or log in. No account needed, just
+pick a pattern, a size, and you're good to go.
+
+Obvously, made-to-measure patterns is _our thing_, and we're not changing that.
+But we're hoping that by lowering the bar to try out our platform, more people
+will give FreeSewing a try.
+
+### What are standard sizes anyway?
+
+The hardest thing about adding support for standard sizes? Figuring out what
+the heck standard sizes are supposed to be. We took a stab at it, and if you're
+curious you can check out our sizing table here (link no longer exists).
+
+For menswear, our size range is 32 to 50, and they are based on a size 38
+baseline that we then graded up and down. For womenswear, our size range is 28
+to 48, and they are based on a size 34 baseline that we then graded up and
+down.
+
+:::tip
+If you're not sure what these numbers are, they are the neck circumference in
+cm.
+:::
+
+While we tried to make our size ranges inclusive, and these tables are an
+honest attempt to come up with something that makes sense, please understand
+that this is not our core business. We've love to hear your feedback on the
+sizing tables, and are open to tweaks and suggestions, but at the end of the
+day, what we want is to give you a pattern drafted to your measurements. These
+sizes are just a way to lure you in 🤫
+
+## Also: All the other stuff
+
+Now go and click around, for we've changed a bunch of other stuff too.
+
+If you bump into any problems or have questions, as always [our chat room is
+the place to get in touch](https://discord.freesewing.org/).
+
+And if you happen to like what we do here, perhaps now is a good time to tell
+your friends about FreeSewing. After all, they can now check it out without
+needing to sign up.
+
+PS: We have [a handy share page](/share/) you can use for this.
diff --git a/sites/orgdocs/blog/bye-2020/index.mdx b/sites/orgdocs/blog/bye-2020/index.mdx
new file mode 100644
index 00000000000..322f0a34342
--- /dev/null
+++ b/sites/orgdocs/blog/bye-2020/index.mdx
@@ -0,0 +1,100 @@
+---
+authors: 1
+caption: "A photo by Paulo Silva shows an empty Times Square in New York during the COVID pandemic"
+date: '2021-01-10'
+intro: "Aren't we all glad 2020 is over?"
+title: 'The year 2020 was something alright'
+---
+
+Aren't we all glad 2020 is over?
+
+Realistically, at least some of you, or your loved ones, got caught in the
+absolute gut-punch that is the COVID-19 pandemic. Either indirectly through
+lost income or other practical concerns, or directly by battling the virus
+itself.
+
+
+
+I can only offer my sympathy, and the belief that things will get better. So
+hang in there, and let me briefly take your mind of things by sharing some good
+news against the bleak backdrop of the annus horribilis that 2020 turned out to
+be.
+
+##### The face mask tsunami
+
+FreeSewing found itself — absolutely unexpected I might add — under the glaring
+spotlight of international media this year. A tidal wave of attention rolled
+over us, and while the peak lasted only a good month, the repercussions and
+long tail of these events have shaped our entire year.
+
+It all started in February when COVID-19 was starting to rear its ugly head in
+Europe and the supplies of personal protective equipment (PPE) started
+dwindling. It seemed that face masks were going to be a big factor in trying to
+slow down the spread of this disease, but they were getting harder to come by
+every day.
+
+So on February 28th, after some design and experimentation, we [published our
+face mask pattern on freesewing.org](/blog/florence-face-mask/). Three weeks
+later, we followed up with [a one-page PDF that people could share and
+adapt](/blog/facemask-frenzy/).
+
+We did not really want to be in the center of this, we just wanted to help
+people make masks. But when [Forbes ran an editorial calling on people to help
+out with the healthcare workers PPE
+shortage](https://www.forbes.com/sites/tjmccue/2020/03/20/calling-all-people-who-sew-and-make-you-can-help-solve-2020-n95-type-mask-shortage/),
+we suddenly found ourselves in the middle of a gigantic spotlight. The article
+prominently featured FreeSewing, and linked to [our blog
+post](/blog/facemask-frenzy).
+
+At that time, there were few patterns available for face masks, and soon enough
+a long list of other publications started running links to our pattern and
+website. When I found [the instruction video that I made for the pattern
+staring back at me on the website of the New York
+Times](https://www.nytimes.com/2020/03/31/opinion/coronavirus-n95-mask.html),
+it was a veritable oh-crap moment. Sure enough, in the month following the
+Forbes publication, a million people descended on freesewing.org.
+
+The sudden jump in visitors and users (not to mention patrons) made it clear
+that I am a bottleneck of the project, and so in the latter half of the year
+we've set out to [try and remedy that with some community
+building](/blog/a-call-for-help/). On one hand it's slow going, but on the
+other hand if I look at how vibrant the FreeSewing community is today, it
+almost beggars belief that we did all of this throughout 2020. We now have
+regular [contributor
+calls](https://github.com/freesewing/freesewing/discussions), and [our chat
+rooms are never empty](https://discord.freesewing.org/).
+
+I hope to continue to fade into the background and let other people carry some
+of the torches. Not because I don't want to work on this anymore, but because I
+want to grow FreeSewing beyond what I can do on my own.
+
+##### Black Lives Matter Since this is a look at 2020, I also want to pause and
+
+acknowledge the **Black Lives Matter** movement and the ongoing problem of
+systemic racism. It is an area where my background and genetic material makes
+me ill-equipped to take a leading role, so here too I rely on our community for
+guidance.
+
+We are also expanding our efforts to provide patterns that work for all body
+types, and I am particularly proud of how many of our users come to us because
+our patterns help them project the gender of their choice.
+
+##### We helped more people than ever this year On the practical side of
+
+things, I have extended our book year with a couple of weeks so that going
+forward, we will just follow the calendar years. With a couple of hours left in
+this year, FreeSewing's revenue for 2020 clocks in at **10.736,82 euro**. That
+makes 2020 and absolute bumper year, and it's more than all previous years
+combined (2015: € 256.65, 2016: € 473.50, 2017: € 673.14, 2018: € 3162.14,
+2019: € 4109.38).
+
+As always, all of FreeSewing's revenue -- the entire 10.736,82 euro -- [goes to
+Doctors Without Borders](/docs/about/pledge/).
+
+I am truly grateful for your continued support and contributions. I feel like
+in a very small way, we are able to apply some balm to the hurt that seems at
+times omnipresent in the world.
+
+Thank you so much, and stay safe
+
+love joost
diff --git a/sites/orgdocs/blog/calling-all-patrons/index.mdx b/sites/orgdocs/blog/calling-all-patrons/index.mdx
new file mode 100644
index 00000000000..83d2d50e070
--- /dev/null
+++ b/sites/orgdocs/blog/calling-all-patrons/index.mdx
@@ -0,0 +1,191 @@
+---
+authors: 1
+caption: 'We are building a bedrock of loyal supporters to ensure a sustainable future for freesewing.org, our code, our patterns, and our community.'
+date: '2017-12-10'
+intro: 'Calling all Patrons; Join our bedrock of loyal supporters.'
+title: 'Calling all Patrons; Join our bedrock of loyal supporters.'
+---
+
+Every year, on this day, I write about what happened in the previous 12 months,
+and look ahead at what you can expect in the year ahead.
+
+This year is no different, but boy do I have a lot to talk about.
+
+
+
+## 2017: the year freesewing was born
+
+While freesewing was conceived in 2016 -- that's when I started working on it
+-- 2017 was the year it saw the light of day.
+
+Freesewing core v1.0.0 [was released in March this
+year](/blog/announcing-freesewing/). For most people, that event passed under
+the radar. An open source platform for made-to-measure sewing patterns? What
+does this thing actually do?
+
+A lot, as it turns out. Something that's become more obvious since [the release
+of freesewing.org](/blog/open-for-business/) at the end of August.
+
+
+
+On Christmas day, it will (only) have been four months since this release. Yet
+in that time, we've signed up **2735 users** for whom we host **1522 drafts**,
+and **2359 models**.
+
+We launched with 11 patterns, and have since added 4, bringing the current
+total to 15. Half of those new patterns are a community effort, which is
+particularly promising.
+
+Yes, it's still early days. But I think it's safe to say that the decision to
+reinvent makemypattern.com as an open source project was the right call.
+
+Speaking of which.
+
+## MakeMyPattern.com is no more Shortly before publishing this blog post, I've
+
+pulled the plug on [makemypattern.com](https://makemypattern.com/).
+
+You can try to visit that link, but you'll only end up back here.
+
+MakeMyPattern.com saw the light of day in 2012. It went through a number of
+iterations since, and today is finally superseded by freesewing.org.
+
+
+
+We had a good run, and I feel that for any project, it's a good way to go when
+you get cannibalized by something better that you inspired.
+
+## Let's talk money Like every year on this day, I've transferred all donations
+
+into the account of [Médecins Sans Frontières/Doctors Without
+Borders](http://www.msf.org/).
+
+This year we came in at **673.14€**, so that's what I've transferred.
+
+> Why should we give you money in the first place if you're just going to give
+> it away?
+
+I've also come to understand that people have a bunch of questions about this.
+Like _Why are you doing this?_ and _Why should we give you money in the first
+place if you're just going to give it away?_
+
+These questions have led to some soul-searching recently. What I've learned is
+that it's not easy to talk about money. Nor is it easy to put in words things
+that you know to be right, almost instinctively.
+
+But I wanted to be completely transparent about what's going on, so I made the
+effort to write about these things on [our pledge page](/docs/about/pledge).
+And I'm copying them here verbatim:
+
+> ##### Noblesse oblige
+>
+> You probably assume that we ask for money to keep the servers running. But
+> that’s not exactly true.
+>
+> I don’t know if you’re familiar with the phrase _noblesse oblige_ but it
+> essentially means that privilege entails responsibility.
+>
+> I am privileged, and thus I have responsibilities. I am very fortunate to
+> have been born in Western Europe, have a good job, and a roof over my head.
+>
+> Could I use the money? Yes I could. Do I need the money? No I don’t.
+>
+> ##### The value of your support
+>
+> The main risk to Freesewing is the same as any open source project out there:
+> maintainer burnout.
+>
+> While I no longer carry Freesewing alone — and I can’t stress enough how much
+> I value the work of all contributors — that doesn’t make me immune to
+> feelings of _Why the fuck am I doing this?_
+>
+> When people become Patrons (or donate), they give more than money. To me, the
+> main value is the message they send to me and other people working on this.
+> And that message is: _Hey, you’re doing a worthwhile thing. Keep up the good
+> work_.
+>
+> ##### The value of your money
+>
+> It is not just about the money. But that doesn’t mean the money is not
+> important. Much to the contrary.
+>
+> Raising money by doing something I love and then passing it on to charity
+> allows me to sleep at night.
+>
+> I could volunteer at a soup kitchen, or teach underprivileged children how to
+> sew. But instead I’m working on Freesewing.
+>
+> Which is why all the money raised through freesewing goes to charity. It
+> makes this project not only fun to do, but also socially responsible. And I
+> need that to convince myself that yes, it’s OK to spend all my time doing
+> this, because at the end of the year, I get to write a check to people who
+> need it so much more.
+>
+> ##### Charity is not sexy
+>
+> Here’s the tricky part: People donate less once they know the money goes to
+> charity in the end. I wish it wasn’t the case, but it is.
+>
+> So I’m not explicitly mentioning it on our Patrons page, which is presented
+> like you would see on a business site.
+>
+> Yes, everything is free, and the money doesn’t actually go to paying the
+> server bills (because I choose to pay them out of my pocket for reasons
+> outlined above). But that doesn’t mean that these contributions are not
+> crucial to the well-being of the project, or at the very least its maintainer
+> (that would be me).
+
+Did you notice that in the text above I mentioned our Patrons page? That is
+because I've rolled out a bunch of changes today.
+
+Having taken the time to reflect on the money side of things, I've realized
+that it's an important factor in the well-being of this project. I also
+believe that donations -- while motivating and appreciated -- are not the best
+way to go about this.
+
+So, as of today, we are calling all Patrons.
+
+## Become a Patron of Freesewing
+
+To ensure a sustainable future for freesewing.org, our code, our patterns, and
+our community, we need to build a bedrock of loyal supporters. Patrons who
+support us in our core work; Developing an open source platform for
+made-to-measure sewing patterns.
+
+
+
+We have different tiers of Patronage, each with their own perks. You can
+support us for as little as 2€, and it only takes a minute.
+
+> We are not changing the nature of the site. All patterns, and all our code,
+> will remain free.
+
+We are not changing the nature of the site. All patterns, and all our code,
+will remain free. What we are changing is the way we raise funds. From a
+system of impulsive donations to a community of caring Patrons. If you are
+someone who cares, then [check out what we have to offer](/patrons/join).
+
+I sincerely believe we are doing a worthwhile thing here. If you feel that way
+too, then I ask you to pledge whatever you can so that we can write many more
+chapters in this book.
+
+> ### Become a Patron today #### You can sign up for as little as 2€, and it
+>
+> only takes a minute.
+> [Find out more](/patrons/join)
+
+Thank you, and have a great year.
+
+joost
+
+
+ PS: It would be a shame if there's people out there willing to support us who don't know about
+ this. So perhaps you could share this image on social media?{' '}
+
+
+
+
diff --git a/sites/orgdocs/blog/claim-your-showcase-posts-for-eternal-glory/index.mdx b/sites/orgdocs/blog/claim-your-showcase-posts-for-eternal-glory/index.mdx
new file mode 100644
index 00000000000..19931193b30
--- /dev/null
+++ b/sites/orgdocs/blog/claim-your-showcase-posts-for-eternal-glory/index.mdx
@@ -0,0 +1,63 @@
+---
+title: 'Claim your showcase posts for eternal glory'
+caption: "Who's that cat?"
+date: '2024-02-25'
+intro: 'Showcase posts have alwasy been loosely attributed, we want to fix that'
+authors: 1
+---
+
+There are [over 300 showcase posts on FreeSewing.org](/showcase) where our
+users showcase their makes. That's a truly great thing because it's not only
+nice to see what people come up with, it also gives new visitors to the site a
+good idea of what to expect from a given design.
+
+
+
+Showcase posts have been around for a while and they have survived a number of
+technical overhauls in how things work under the hood. And that's starting to
+show.
+
+## Who made what?
+
+There was a time when showcase posts were attributed by a
+name or description. Like _tony made this_. At one point, we assigned them to
+the username, but because users can change their username, such a system decays
+into chaos over time.
+
+We'd like to address this growing library of showcase posts and make sure that
+as many as possible are properly credited to their makers.
+
+For this reason, we've implemented a few changes:
+
+- Showcase posts are now assigned to the user's FreeSewing ID.
+- When a showcase post is credited like this, we'll show the user's bio under
+ the post
+- When there is no user credited, we will show a button to either claim this
+ post as your own, or suggest another user in case you know who is the maker.
+
+This way, given some time and collective effort, we hopefully will soon enough
+have properly credited all posts.
+
+:::tip What is my FreeSewing ID?
+You can find your FreeSewing ID on [your
+account page](/account) or go to [FreeSewing.org/id](/id).
+:::
+
+## Next steps The first thing to do is to make sure everything is properly
+
+credited.
+
+Afterwards, we can use this link between the showcase post and user to -- for
+example -- show a list of showcase posts on a user's profile.
+
+If you have your own showcase posts on FreeSewing, please go ahead and claim
+them. Or if you know who made them, let us know.
+
+## Also applies to blog posts
+
+The same principle applies to blog posts, but since all but 2 posts on the site
+are written by that same dude, it's not really something where we need you
+help.
+
+That being said, it does give you a good idea of what things will look like, as
+you can see below.
diff --git a/sites/orgdocs/blog/core-1-8-jaeger-across-back/index.mdx b/sites/orgdocs/blog/core-1-8-jaeger-across-back/index.mdx
new file mode 100644
index 00000000000..23baad35908
--- /dev/null
+++ b/sites/orgdocs/blog/core-1-8-jaeger-across-back/index.mdx
@@ -0,0 +1,92 @@
+---
+authors: 1
+caption: 'This release brought to you from Bangkok'
+date: '2018-03-21'
+intro: "We've just pushed the button on core 1.8.0. That bump in minor number is typically because we have a new pattern, but in this case, there's two reasons:"
+title: 'Freesewing core 1.8: Jaeger Jacket is in, across back measurement is out'
+---
+
+We've just pushed the _release_ button on core 1.8.0. That bump in minor number
+is typically because we have a new pattern, but in this case, there's two
+reasons:
+
+- The [Jaeger Jacket](/designs/jaeger) is now available
+- We've gotten rid of the _across back_ measurement
+
+
+
+Read on for the details.
+
+## Announcing the Jaeger Jacket
+
+For [my refasioners entry last year](/blog/the-refashioners-2017/) I designed a
+jacket pattern that I intially wanted to release alongside my make. It didn't
+work out that way, and I asked for a bit more time to get the pattern out the
+door.
+
+Turns out that when I say _a bit more time_ it means 6 and a half months, so
+please forgive me for the delay, but here it is, [the Jaeger
+Jacket](/designs/jaeger).
+
+
+
+### Jaeger Sport Coat is not an alliteration
+
+Jaeger is a sport coat style of jacket. As in, a single-breasted jacket with a
+2-button closure, and patch pockets.
+
+In other words, this is a garment that's typically worn on jeans or other
+trousers, and not as part of a suit.
+
+### Options galore
+
+Jaeger comes with 38 options, so you can change _a lot_ about this pattern.
+
+No need to worry though, it also comes with sensible defaults, so you can just
+as well ignore all those choices.
+
+## The across back measurement is no more
+
+Speaking of sensible defaults, Jaeger is not the only new thing in freesewing
+core 1.8.0, which is out today.
+
+We've also gotten rid of the _across back_ measurement.
+
+The across back measurement was cause of a great deal of confusion among our
+users. More often than not, when someone contacted us because their pattern
+looked wonky, an unrealistic across back measurement was to blame.
+
+The roots of the across back measurement go back to a time when, instead of the
+_shoulder to shoulder_ measurement we use now, we had the _shoulder length_
+measurement. That one was also source of some confusion, so we phased it out
+in favour of the _shoulder to shoulder_ measurement.
+
+The thing is that if we know the _shoulder to shoulder_ measurement, we can
+guestimate with reasonable accuracy what the _across back_ measurement will be.
+So, instead of asking you for it, we simply assume now.
+
+### But you're dumbing down the pattern
+
+In case the _this pattern comes with 38 options_ bit above wasn't enough of a
+giveaway, we're pretty committed here at freesewing to give you all the knobs
+to tweak your drafts.
+
+Replacing a measurement with a value calculated based on another measurement
+may seem to go against that, but there's no need to worry. We've made sure you
+can still muck about with your across back.
+
+Patterns that used to require the _across back_ measurement now have a new
+advanced option: the _across back factor_. It allows you to tweak how we
+calculate your across back measurement, but does make sure to keep it within
+boundaries that are sensible.
+
+
+
+As such, we feel we're preventing mistakes for the casual user, without taking
+away power from you, the pattern option guru.
+
+Or to put it differently, you can still muck about with your across back, but
+by default, you don't have to worry about it anymore.
diff --git a/sites/orgdocs/blog/core-v1-3-0-is-out/index.mdx b/sites/orgdocs/blog/core-v1-3-0-is-out/index.mdx
new file mode 100644
index 00000000000..2b46c3ffbea
--- /dev/null
+++ b/sites/orgdocs/blog/core-v1-3-0-is-out/index.mdx
@@ -0,0 +1,108 @@
+---
+authors: 1
+caption: 'Scales, how do they work?'
+date: '2018-01-04'
+intro: 'Freesewing core v1.3.0 is out; Comes with fixes so good that we back-ported them to all your drafts'
+title: 'Freesewing core v1.3.0 is out; Comes with fixes so good that we back-ported them to all your drafts'
+---
+
+On the last day of 2017, in our [monthly roundup of all the freesewing
+news](/blog/roundup-2017-12/) , we wrote about the looming issue with
+incorrectly scaled drafts, aka [Core issue #204 - The Inkscape default units
+quandary](https://github.com/freesewing/core/issues/204).
+
+
+
+I won't go over [all that](/blog/roundup-2017-12/) again, but it boils down to
+the fact that the [Inkscape](http://inkscape.org/) maintainers have changed
+Inkscape's internal DPI (dots per inch) from 90 to 96. A change that goes in
+effect from version 0.92 onwards.
+
+Left unchecked, this change would cause all freesewing patterns to be
+incorrectly scaled. That's because we assume 90DPI in our SVG output, and
+scale accordingly.
+
+
+
+When the switch to 96DPI goes into effect, all patterns would be off by 6.66%.
+Which is really the kind of difference that is too small to notice when
+eyeballing a pattern, yet large enough to completely mess up your garment.
+
+The issue is also more troublesome than it would seem at the surface. First of
+all because we can't just switch to 96DPI as there are now two versions out
+there that use a different default DPI under the hood. We need a solution that
+works for both.
+
+
+
+Furthermore, while any fix we implement would apply to new drafts, all existing
+drafts generated before the fix would still be impacted.
+
+In other words, if you drafted a pattern last week, or a month ago, that
+pattern would not scale correctly in a recent version of Inkscape. And since
+we use Inkscape in our SVG-to-PDF tool-chain, it would also be incorrectly
+scaled if you came here and downloaded a PDF.
+
+Clearly, something needed to be done. And fast.
+
+## The fix for new drafts
+
+From today's release of core v1.3.0 onwards, our SVG files no longer depend on
+any DPI setting.
+
+Rather than use the internal units and apply an SVG transform to scale the
+entire pattern, we've bolted down the units to mm and updated the SVG viewBox
+to apply the scaling.
+
+Obviously, this is how we should have done it from the start. Everyday is a
+school day.
+
+If you're worried about the use of mm in your draft (because you're used to
+imperial units), rest assured that those mm will stay under the hood. You won't
+be able to tell the difference.
+
+## The fix for pre-existing drafts
+
+To avoid problems with pre-existing drafts, we needed to come up with a
+solution for those too.
+
+We essentially have two options:
+
+- Re-draft all those drafts
+- Patch them in-place without changing the draft itself
+
+Re-drafting fixes the issue as every new draft will be handled by the latest
+core version that does include the fix.
+
+However, core also ships with regular updates, tweaks, and fixes in the
+patterns themselves. So by re-drafting a draft generated on a previous version
+of core, there's no guarantee the draft won't change.
+
+In principle that change would always be an improvement. But one person's bug
+is another person's feature, and we do prefer not to [move your
+cheese](https://en.wikipedia.org/wiki/Who_Moved_My_Cheese%3F).
+
+
+
+So, instead we decided to patch all drafts we have on file in-place with the
+new scaling code, without touching any other aspect of the draft.
+
+As you're reading this, this has already been done, and all freesewing drafts
+should now scale correctly. Everywhere.
+
+## Also: version awareness
+
+We've also made changes to our backend systems to store the version of
+freesewing core that generated your draft.
+
+If since you generated your draft we've rolled out new features or fixes,
+you'll be notified that an update is available:
+
+
+
+Whether you update your draft or not is up to you. If you don't want to loose
+the info in your _old_ draft, rather than update it in-place, you can fork it.
diff --git a/sites/orgdocs/blog/cornelius-cycling-breeches/index.mdx b/sites/orgdocs/blog/cornelius-cycling-breeches/index.mdx
new file mode 100644
index 00000000000..4b2d9a6b310
--- /dev/null
+++ b/sites/orgdocs/blog/cornelius-cycling-breeches/index.mdx
@@ -0,0 +1,44 @@
+---
+authors: 1
+caption: 'Cycling like a true gentlemen'
+date: '2021-03-06'
+intro: "Wouter is at it again, this time around he's treating us to classic cycling breeches."
+title: "These Cornelius cycling breeches are Wouter's latest gift to us all"
+---
+
+[Wouter](https://www.instagram.com/wouter.vdub/) is at it again, this time
+around he's treating us to classic cycling breeches.
+
+
+
+He writes:
+
+> When I was a child my dad would tell me stories about hiking in the
+> mountains, something magical for a kid living in The Netherlands. He had a
+> suitcase with his mountaineering things in it, and part of that were some
+> 'knickerbockers', baggy trousers that reached down to your calves.
+>
+> When I moved to the USA in my thirties and started hiking myself, I would
+> often reflect on those talks and felt sad that I didn't inherit those
+> knickerbockers. Then when I discovered sewing, I decided I would make myself
+> a pair, but no good patterns presented themselves.
+>
+> This year someone on the Freesewing discord server posted a link to The
+> 'Keystone' Systems, Practical methods of cutting, from around the turn of the
+> century. This contained a drafting system for 'Cycling Breeches', which
+> seemed to be close to what my father used to wear, and could be translated
+> into a Freesewing pattern. A project was born, and I'm happy to be able to
+> present the results to you.
+
+As Wouter mentioned; This pattern is based on [the Keystone drafting
+method](https://archive.org/details/keystonesystemsc00heck/page/n5/mode/2up).
+Not that it matters because as always you get it made-to-measure for you [right
+here on FreeSewing.org](/designs/cornelius/).
+
+
+
+Note that you don't have to cycle to wear these. All that's required is a
+willingness to show of those socks (or calfs).
+
+Cornelius is available at [/designs/cornelius/](/designs/cornelius/).
diff --git a/sites/orgdocs/blog/email-breakdown-post-mortem/index.mdx b/sites/orgdocs/blog/email-breakdown-post-mortem/index.mdx
new file mode 100644
index 00000000000..7ceeff7a985
--- /dev/null
+++ b/sites/orgdocs/blog/email-breakdown-post-mortem/index.mdx
@@ -0,0 +1,102 @@
+---
+title: 'Email communication breakdown post-mortem'
+caption: "I love email, but it's hard to handle a lot of it"
+date: '2024-01-02'
+intro: 'From the end of 29 October 2023 until 2 January 2024, some emails sent to me fell between the cracks'
+authors: 1
+---
+
+Between the 29th of October 2023 until the 2nd of January 2024, emails sent to
+joost@joost.at (my personal email) or various @freesewing.org email addresses
+went unnoticed. Since noticing the issue today I have gone through the backlog
+and set aside any messages that I need to deal with.
+
+
+
+However, this is a manual and tedious process so it's possible that I'll miss a
+few. In addition, it's also very possible that emails sent to me 2 months ago
+required a speedier response.
+
+These emails would have included users asking for help, but also notifications
+about new patrons who've signed up or any donations FreeSewing received.
+
+I'd like to apologize to all those who I should have been in touch with but
+didn't. To be as transparent as possible, I will explain in detail what
+happened below, and outline the steps I've taken to avoid this from happening
+again in the future.
+
+## My email setup To understand what happened, I should start by explaining my
+
+email setup.
+
+I have historically used joost@decock.org as my personal email. It's tied to
+Google in the way that is no longer possible today, using one of those
+grandfathered-in domain setups that they don't allow you to have any longer. I
+don't trust Google as far as I can throw them, but Gmail is the best mail
+client for my needs because I don't want to spend my time carefully organizing
+email, I just want to search and find what I'm looking for. Nothing comes close
+to Gmail when it comes to that.
+
+Furthermore, as an Android user, this primary not-really-gmail-but-still-a-bit
+Google account is also tied to my phone, and a host of other things that are
+important. In other words, I need to have _some_ Google account, so this is it.
+
+That being said, I don't trust Google to not one day accidentally disable my
+account and I know full well that when that happens, I won't have any way of
+getting it back because Google doesn't do support. And I can't even blame them
+as I'm not a paying customer. So I want a different email provider, one where
+I am a paying customer, and that provider is fastmail. I could have migrated
+the decock.org domain to it, but that poses two problems:
+
+- I still need a Google account
+- Some members of my family have a decock.org email address, so I would have to
+ find a solution for them too and they are not too tech-savvy so that would
+ have been a hassle.
+
+So, a couple of years ago I decided to bite the bullet, bought the joost.at
+domain, and made that my primary email.
+
+Obviously, my previous emails is still used by people and companies, and I have
+to keep the Google account active too, so now I have two inboxes to manage. I
+thought I had found a clever solution for that, and that's where things went
+wrong.
+
+## It worked until it didn't
+
+I had setup my Google account to pull in email from my fastmail account via
+POP3. This worked great and since both mailboxes are configured to allow me to
+send email from both addresses, it's transparent to my correspondents.
+
+That all worked fine. But if I go into the settings and check that rule today,
+I see this:
+
+
+
+Google stopped pulling in these emails, and somehow neglected to notify me of
+this. Because of this setup, I had not been checking my Fastmail inbox, so
+from one day to the next I didn't see anything sent to my new email address.
+
+At this point, you're probably wondering why I didn't notice. The answer is
+partially that I get a lot of email, but if I'm being honest, at some level I
+probably suspected something was _off_ but I didn't realize exactly what, and
+because I was busy looking into it was kicked down the road.
+
+## Going forward
+
+Since I cannot trust Google to reliably pull in the emails from my Fastmail
+inbox, I will instead pivot to a _inbox double-zero_ approach. By which I mean,
+I will manage both inboxes and apply _inbox-zero_ as that's how I do things.
+
+Given my neglect of my Fastmail inbox, it had 100k+ unread messages in them. I
+went through the messages since the end of October and set aside emails that I
+need to follow-up on. Then I archived the rest and now am back on top of
+things, albeit with a small pile of backlog to deal with.
+
+I am particularly sorry for those people who signed up as patrons or donated to
+FreeSewing and didn't even get as much as an acknowledgment. I admit that this
+sort of _administrativia_ is not my strong suit, but my response time is not
+typically measured in months.
+
+Apologies, and I will try to do better this year.
diff --git a/sites/orgdocs/blog/email-spam-problems/index.mdx b/sites/orgdocs/blog/email-spam-problems/index.mdx
new file mode 100644
index 00000000000..965f69f8367
--- /dev/null
+++ b/sites/orgdocs/blog/email-spam-problems/index.mdx
@@ -0,0 +1,165 @@
+---
+authors: 1
+caption: 'Would you close a lane because one driver was playing their music too loud?'
+date: '2017-09-07'
+intro: "Thanks for nothing Microsoft; Email shouldn't be this hard"
+title: "Thanks for nothing Microsoft; Email shouldn't be this hard"
+---
+
+People with an email address from Microsoft --- think Hotmail, MSN, live.com,
+outlook.com and their numerous variants --- are significantly less likely to
+sign up for this website.
+
+That's because more than 4 times out of 10, they never receive their account
+activation email.
+
+
+
+## What's going on?
+
+Let's first look at what's happening. Here's a relevant snippet from the logs:
+
+`````Failed: postmaster@mg.freesewing.org -> ********@hotmail.co.uk 'Confirm
+your freesewing account' Server response: 550 5.7.1 Unfortunately, messages
+from [104.130.122.15] weren't sent. Please contact your Internet service
+provider since part of their network is on our block list. ````
+
+What this means is that part of the MailGun network is on their block list. As
+a result, they (more on who they are later) are not delivering any messages
+that go out.
+
+[MailGun](https://www.mailgun.com/) is a popular email service for developers.
+It's used by this site to send out emails, like the account activation emails.
+
+Other people use this service too, and perhaps some of them, at some point,
+delivered some spam messages through mailgun. Or it may just have been some guy
+with a last name that tends to trigger spam filters.
+
+
+
+Point is, this IP address or one of its neighbours got *a bad rep*. It happens.
+But to flat-out refuse to accept any messages from this host (or an entire
+network of hosts) is the equivalent of shutting down a highway lane (or entire
+highway) because one car in that lane played its music obnoxiously loud that
+one time.
+
+Which brings me to our next question:
+
+## Who would do something like that?
+
+Good question. Here are some numbers:
+
+
+
+The graph above represents emails that were sent out since the launch of this
+site. The small subsection of the graph that is red are emails that are
+dropped.
+
+This website sends out different kinds of email:
+
+ - The account confirmation email
+ - The *I forgot my password* emails
+ - Comment reply notifications
+
+The graph represents all email, but I'm focussing on the account confirmation
+emails only. They are the most important after all.
+
+> Apart from the 1 outlier, every message that was blocked, was blocked by
+> Microsoft
+
+Here's a list of all domains that blocked legitimate activation emails to their
+users:
+
+ - btinternet.com
+ - hotmail.com
+ - hotmail.co.uk
+ - live.ca
+ - live.com
+ - live.com.au
+ - live.nl
+ - msn.com
+ - outlook.com
+
+Apart from that very first entry in the list (on which only 1 message was
+blocked) all of these are Microsoft domains.
+
+Let me restate that: Apart from the 1 outlier, every message that was blocked,
+was blocked by Microsoft.
+
+## What's the impact?
+
+So what sort of impact does that have on people?
+
+Well, at the time I'm writing this, there are 817 registered users, and about
+80% (661) have also activated their account.
+
+
+
+From those people who were able to activate their account, less than 1% (6)
+have an email address managed by Microsoft. In the group of people who did
+not, or were not able to, activate their account, more than half have such an
+address.
+
+More than 40% of account confirmation emails are simply blocked by Microsoft
+and, based on the number of activations, it seems likely that even when they
+aren't block at the SMTP relay, they get filtered somewhere further down the
+line.
+
+As things stand, it seems almost impossible for the average
+hotmail/outlook/live/MSN/... user to sign up for this site.
+
+## What can we do about it?
+
+I chose mailgun for a number of reasons. Not having to handle SMTP outselves
+simplifies the code. Not depending on a local SMTP deamon makes the code more
+portable, and MailGun has a bunch of cool features that allow you to do things
+like replying to comments via email.
+
+Microsoft's crude methods of spam filtering don't invalidate any of those
+reasons.
+
+Using MailGun means using their SMTP relays, and being at the mercy of the
+reputation of that relay. The only way around that is to configure a dedicated
+relay in MailGun so that freesewing.org traffic is shielded from others, and we
+become masters of our own reputation.
+
+
+
+For that priviledge, MailGun charges 59 dollar per month, which amounts to 708
+dollar yearly. I invite you to take a look at [the donations
+history](/about/pledge#donations-history), and you'll understand that's not
+going to happen either.
+
+I could challenge the block list, and try to get the relay unblocked. But
+that's pretty much tilting at windmills when the host is not under my control.
+Not to mention that MailGun doesn't just have that one host.
+
+It seems that I'm running low on options and quiet frankly, I'm also running
+out of patience.
+
+## What I'm going to do about it
+
+Microsoft is a behemoth, and I'm just a guy. I can't fight them on this.
+Unless I Titanfall their ass.
+
+
+
+Do you think Gmail is ever abused to send out spam? You know it is. Do you
+think they would ever block all email coming from Gmail? You know they won't.
+
+So last night, I rolled out some changes to work around the issue. If you have
+a *problemtic* email address, in addition to the regular email, this site will
+send out a second email through Gmail.
+
+I'd like to see them block that.
+
+> ##### Signup trouble? Help is available If you are (still) having problems
+> signing up, don't hesitate to [get in touch](/contact).
+
+`````
diff --git a/sites/orgdocs/blog/facemask-frenzy/index.mdx b/sites/orgdocs/blog/facemask-frenzy/index.mdx
new file mode 100644
index 00000000000..2e6f347b303
--- /dev/null
+++ b/sites/orgdocs/blog/facemask-frenzy/index.mdx
@@ -0,0 +1,29 @@
+---
+authors: 1
+caption: 'Dr. Dragnea from Antwerp University hospital wearing a Florence facemask'
+date: '2020-03-19'
+intro: "Calling all makers: Here's a 1-page PDF facemask pattern; Now go make some and help beat this thing"
+title: "Calling all makers: Here's a 1-page PDF facemask pattern; Now go make some and help beat this thing"
+---
+
+Well that escalated quickly. We published [our Florence Face Mask
+pattern](/designs/florence/) at the end of last month, hoping it would be
+helpful. Now, [hospitals are actively reaching out to people to beg them to
+make fabric face masks for their staff](https://www.uza.be/mondmaskers).
+
+
+
+So obviously, we want to help:
+
+- PDF pattern for our Florence face mask:
+ - A4 facemask pattern
+ - Letter facemask pattern
+- [Instructions for the facemask pattern](/docs/designs/florence/instructions/)
+
+No go and make a bunch. Our healthcare workers are counting on you!
+
+
+
+:::tip
+You can support us by [becoming a patron](/patrons/join/) ❤️
+:::
diff --git a/sites/orgdocs/blog/florence-face-mask/index.mdx b/sites/orgdocs/blog/florence-face-mask/index.mdx
new file mode 100644
index 00000000000..d939d5637fe
--- /dev/null
+++ b/sites/orgdocs/blog/florence-face-mask/index.mdx
@@ -0,0 +1,47 @@
+---
+authors: 1
+caption: 'Keep those virus-infesed droplets at bay with our Florence face mask'
+date: '2020-02-28'
+intro: 'We just published a face mask pattern, because coronavirus'
+title: 'We just published a face mask pattern, because coronavirus'
+---
+
+The spread of the Covid-19 coronavirus seems relentless and despite the world's
+best attempts, the possibility of a global pandemic is getting more real every
+day. Which begs the question, what can we do?
+
+
+
+Perhaps not much, but we can design patterns. So say hi to the [Florence face
+mask](/designs/florence/), a simple pattern that allows you make your own face
+masks. One that you can wear all day, because those medical ones aren't exactly
+comfortable.
+
+Whether or not a face mask actually helps is subject of debate. I've been
+to-ing and fro-ing a bit about whether to publish a pattern for a face mask.
+Then — earlier today — I read a [Guardian](https://www.theguardian.com/)
+article called [Yes, it is worse than the flu: busting the coronavirus
+myths](https://www.theguardian.com/world/2020/feb/28/coronavirus-truth-myths-flu-covid-19-face-masks).
+It included the following passage under the _Face masks don’t work_ myth:
+
+:::note Claim: ‘Face masks don’t work’
+
+_Wearing a face mask is not an iron clad guarantee that you won’t get sick –
+viruses can also transmit through the eyes and tiny viral particles, known as
+aerosols, can still penetrate masks. However, masks are effective at
+capturing droplets, which is the main transmission route of coronavirus, and
+some studies have estimated a roughly five-fold protection versus no barrier.
+If you are likely to be in close contact with someone infected, a mask cuts
+the chance of the disease being passed on._
+:::
+
+This only focusses on preventing you from getting coronavirus. There's also
+the fact that the mask can help (a bit) in keeping you from spreading it
+further. Because the way things are going right now, it looks like we should
+do every little thing we can to try to slow this thing down.
+
+So when I got home, I set out to rush out a face mask pattern. Common sense
+says it can't hurt, and apparently there's more to it too. If nothing else, I
+want a cute face mask, not one of the ugly ones you see on the news.
+
+Stay safe out there.
diff --git a/sites/orgdocs/blog/florent-flat-cap-beta/index.mdx b/sites/orgdocs/blog/florent-flat-cap-beta/index.mdx
new file mode 100644
index 00000000000..566ef763ce1
--- /dev/null
+++ b/sites/orgdocs/blog/florent-flat-cap-beta/index.mdx
@@ -0,0 +1,49 @@
+---
+authors: 1
+caption: 'Quentin surrounded by our future robot overlords.'
+date: '2017-12-06'
+intro: "The Florent Flat Cap pattern is now available in beta. That's another gift sorted."
+title: "The Florent Flat Cap pattern is now available in beta. That's another gift sorted."
+---
+
+After last month's release of [Benjamin](/designs/benjamin), here's another
+pattern release to channel the dapper gentleman within: the [Florent Flat
+Cap](/designs/florent).
+
+
+
+Like Benjamin, this pattern was contributed by the freesewing community, rather
+than yours truly. In this case, it was [Quentin Felix](/users/user?id=241) who
+signed for the design.
+
+I asked Quentin if he wanted to write this announcement blog post himself, but
+he argued that it was time I did something too. He did have this to share
+though, on his reasons for designing this pattern in the first place:
+
+:::note Quentin on his reasons for designing Florent
+
+I like wearing flat caps myself. I didn't use to, but I have a friend Florent
+who inspired me to wear them (now you know where the name comes from).
+
+The first time I made a flat cap, it took me ages to scale the pattern to an
+exact fit, involving a lot of messing about with tracing paper. There's a
+number of patterns available online for flat caps. But they all come in one
+size only.
+
+I wanted to make this more accessible to people. And, while I was at it, I
+also drew on my experience to add some tweaks for a better fit.
+
+For example, this design extends lower at the back of the head, which gives
+it better hold.
+:::
+
+This _why should we always have to re-invent the wheel?_ could pretty much be
+freesewing's slogan.
+
+## It's the season for giving
+
+Florent requires only one measurement: the head circumference. As such, this
+release is perfectly timed. With the holiday season coming up, here's another
+gift you can make yourself.
+
+Thanks Quentin!
diff --git a/sites/orgdocs/blog/freesewing-2-19/index.mdx b/sites/orgdocs/blog/freesewing-2-19/index.mdx
new file mode 100644
index 00000000000..252e89f8d31
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-2-19/index.mdx
@@ -0,0 +1,66 @@
+---
+authors: 1
+caption: 'Like history? Then this release is going to be right up your alley.'
+date: '2021-10-17'
+intro: "I've just pulled the release lever on version 2.19 of FreeSewing and there's a lot that went into this release. For full details, you can check out the changelog , here I'll stick to the highlights:"
+title: 'FreeSewing 2.19 brings Bee, Lunetius, Tiberius, Walburga, a new plugin, and a bunch of improvements and fixes'
+---
+
+I've just pulled the release lever on version 2.19 of FreeSewing and there's a
+lot that went into this release. For full details, you can [check out the
+changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md#2190-2021-10-17),
+here I'll stick to the highlights:
+
+
+
+## Lunetius, Tiberius, and Walburga
+
+[Lunetius](/designs/lunetius), [Tiberius](/designs/tiberius/), and
+[Walburga](/designs/walburga/) are three new patters from **Rika Tamaike** who
+is the latest addition to our growing team of designers. These are all
+historical pattern:
+
+- Lunetius is a lacerna, a historical Roman cloak
+- Tiberius is a historical Roman tunic
+- Walburga is a tabard/surcoat, a historical garment from medieval Europe
+
+I'm not much of a history buff myself, so I'm looking forward to see what these
+will look like when people are going to start making them. What I can say for
+sure is that all of these are pretty straight-forward, so they should be fun to
+make.
+
+## The Bee bikini
+
+Also new in this release is [Bee](/designs/bee/), a bikini pattern that you can
+pair with the [Uma Undies pattern](/designs/uma/). **Bobgeorgethe3rd**
+signed for the code, the design of the bikini was a collaboration with
+**PrudenceRabbit**.
+
+I'm hoping for some people in the Southern hemisphere to make this one because
+I suspect it might be a while before bikini weather returns to those of use
+living above the equator.
+
+This too is a fast and simple make, so go and check it out.
+
+## The versionfree-svg plugin
+
+This is a bit more under-the-hood stuff, but we've also published
+[plugin-versinofree-svg](https://www.npmjs.com/package/@freesewing/plugin-versionfree-svg),
+a new plugin that will strip the version information from FreeSewing's SVG
+output.
+
+This is handy because it allows diffing between different versions. By not
+including the version information, you can see what (if anything) has changed
+between different versions of a pattern, something we use ourselved in our QA
+pipeline.
+
+## Backported snap options from the v3 roadmap
+
+Speaking of under-the-hood, the [snap
+proposal](https://github.com/freesewing/freesewing/discussions/1331) on [our v3
+roadmap](https://github.com/freesewing/freesewing/discussions/1278) was
+something we liked so much that we promptly backported it to v2, and it's
+already being used in different patterns.
+
+Have fun with the new patterns, and for feedback, questions, or suggestions,
+[come hang out with us on Discord](https://discord.freesewing.org).
diff --git a/sites/orgdocs/blog/freesewing-2-21/index.mdx b/sites/orgdocs/blog/freesewing-2-21/index.mdx
new file mode 100644
index 00000000000..151868c09fe
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-2-21/index.mdx
@@ -0,0 +1,66 @@
+---
+authors: 1
+caption: 'A pink Hi and its BLÅHAJ ancestor'
+date: '2022-06-27'
+intro: 'FreeSewing 2.21 adds Bob, Hi, Lucy, Noble and Unice designs'
+title: 'FreeSewing 2.21 adds Bob, Hi, Lucy, Noble and Unice designs'
+---
+
+We've rolled out FreeSewing v2.21 today, and it's a massive update with tons of
+changes, improvements, and behind the scenes work. Check the CHANGELOG if
+you'd like get all the nitty-gritty detail. For this blog post, I'll focus on
+what you are probably going to be most interested in: New designs.
+
+
+
+This release brings 5 new designs to our catalog, so let's dive right in:
+
+## Bob is a bib
+
+We've been using the construction of a Bib pattern in our [pattern design
+tutorial](https://freesewing.dev/tutorials/pattern-design) for years. Yet we
+never added the pattern to our catalog. An oversight that's been corrected now,
+and we now carry [Bob the bib](/designs/bob) in our collection.
+
+Perfect for babies and grown-ups who are messy eaters alike, since you can make
+Bob in any size.
+
+## Hi is a shark
+
+It's been kinda hard to contain our excitement about this, but hear me out: A
+while ago rumours started swirling that IKEA would discontinue it's
+[BLÅHAJ](https://www.ikea.com/us/en/p/blahaj-soft-toy-shark-90373590/) stuffed
+shark, which is a universally beloved toy.
+
+The FreeSewing community wasn't just going to idly stand by while the worlds
+friendliest shark ran the risk of becoming extinct. A conservation effort
+gained momentum, and ultimately Wouter matter-of-factively dropped the first
+**Hi** pictures in our Discord.
+
+Oh, and you should know that [Hi](/designs/hi) can be made big or small. The
+patterns scales up to a 5m shark. What are you waiting for?
+
+## Lucy is a tie-on pocket
+
+We've seen a number of historical designs recently, specifically from Starf.
+This time around, it's SeaZeeZee who added [Lucy](/designs/lucy) which is a
+pattern for a tie-on pocket.
+
+It's a quick make for cosplay, historical re-enactment, or for all those
+dresses that don't come with pockets.
+
+## Noble is a body block with prince(ss) seams
+
+Wouter (of Hi fame) has another contribution in this release: Noble is a
+princess seam body block. Blocks tend to be undervalued but they are the
+foundation that other designs are built on, so having a new body block with
+prince(ss) seams is very exciting.
+
+## Unice is for undies
+
+Unice is a variant of Ursula, another
+undies pattern. It was designed by Anna who describes it as _the undies for
+those with significant rear estate_.
+
+It has a few changes and tweaks in comparison to Ursula, and is specifically
+intended to fit _any_ body. So if you're rear estate mogul, try these out.
diff --git a/sites/orgdocs/blog/freesewing-goes-jamstack/index.mdx b/sites/orgdocs/blog/freesewing-goes-jamstack/index.mdx
new file mode 100644
index 00000000000..fe12d397194
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-goes-jamstack/index.mdx
@@ -0,0 +1,148 @@
+---
+authors: 1
+caption: "Picture by Jennifer"
+date: '2017-06-12'
+intro: 'When we released freesewing core at the end of March, my focus immeadiatly shifted to building our front-end so that freesewing.org could fully replace makemypattern.com .'
+title: "We're JAMstack, we're JAMstack, we're JAMstack, we're JAMstack, we're JAMstack, we're JAMstack, we're JAMstack, and I hope you like JAMstack too"
+---
+
+When we released freesewing core at the end of March, my focus immeadiatly
+shifted to building our front-end so that [freesewing.org](/) could fully
+replace [makemypattern.com](https://makemypattern.com/).
+
+
+
+I believe that the value of freesewing lies with the core platform and our
+patterns. But without a user friendly way to expose that value, it will
+largely go ignored.
+
+So we needed a website that lets people generate patterns. Makemypattern.com
+— arguably the best comparison of something similar — runs on
+Drupal 7, and my initial idea was to run the new site on Drupal 8. I went down
+that path far enought to be confident I could get it to work, and hook it up to
+our backend. At which point I switched gears and turned my attention to what is
+now known as freesewing core.
+
+Core took about 7 months to build, and a lot has changed since then. Or perhaps
+I have changed, I certainly learned a lot along the way. Either way, I've
+decided to do things different.
+
+## The problem with a CMS
+
+I have no beef with Drupal but the idea of managing the freesewing website
+through any Content Management System (CMS) does not appeal to me.
+
+One of the main reason is that so much information is stored under an opaque
+database layer which makes it difficult to manage. That goes for content where
+posts, metadata, images, and so on is all spread across tables, locations, and
+folders. But there's also the theme that has a bunch of stuff in it, there's
+the custom Drupal modules to connect to the backend, and so on and so forth.
+
+> I wanted that same approach in a website. Except, it can't be static because
+> it has to, you know, do stuff.
+
+When we were finalizing core, I built a documentation site for it based on
+[Jekyll](https://jekyllrb.com/). It felt like a breath of fresh air in
+comparison. Just a bunch of markdown files, with some SASS, images, and some
+JavaScript thrown in the mix, and it all compiles into a neat static website.
+
+It's easy to manage, and it integrates nicely with a GitHub-centered workflow
+that is going to be famliar to potential contributors.
+
+I wanted that same approach in a website. Except, it can't be static because it
+has to, you know, do stuff.
+
+## An alternative approach: JAMstack
+
+I first learned about JAMstack when I started looking into hosting for said
+core documentation site. It was initially hosted on GitHub pages which
+provides free hosting. They also have SSL or a custom domain name, but you
+can't have both. Which was kind of a deal breaker.
+
+Looking for alternatives, I stumbled onto [Netlify](https://www.netlify.com/),
+who do both SSL and custom domains and have a free-tier for open source
+projects (thanks guys). Furthermore, [this video by Netlify CEO Mathias
+Biilmann](https://vimeo.com/163522126) got me really excited about JAMstack.
+
+Unless you're familiar with JAMstack, I suggest you check out the video, but it
+boils down to this:
+
+- **J** = JavaScript
+- **A** = APIs
+- **M** = Markup
+
+The idea is that you build your static site (markup) that you then make
+interactive with JavaScript that hooks up to one or more APIs.
+
+So in our case, rather than having a straight-forward documentation site with
+easy-to-edit markdown and a complex CMS to handle the dymanic stuff, let's just
+build one simple site that is statically generated, yet uses JavaScript and
+APIs to do the smart stuff.
+
+## Running before you can walk
+
+I must admit that in my enthousiasm to embrace this new approach I got a little
+ahead of myself. Suddenly, I was no longer building a simple site, but I was
+up to my eyeballs in isomorphic rendering, client-side routing, React and
+Redux, Node.js and ES6 transpiling.
+
+> If you don't know what any of that means, you might get a hint of the
+> frustration I felt as I was trying to tame all these new beasts.
+>
+> If you do know what it all means, where were you back in April when I walked
+> through the valley of the React of death?
+
+Point is, I'm not a developer and I was in way over my head. While I was
+learning new things every day, I wasn't making much progress on the actual task
+at hand, and felt frustrated with my inability to do even the most mundane
+things.
+
+After a month of frustration, loads of trial and seemingly even more error, I
+threw in the towel. Eff this newfangled shiny JavaScript all the young kids
+are using, I'll stick to what I know.
+
+Which is essentially the basics of jQuery. In other words, stuff that was
+pretty cool 10 years ago.
+
+## 10 year old jam is still jam right?
+
+So here we are, freesewing.org is a site powered by the JAMstack. And you know
+what, it seems to do what it needs to do.
+
+We have Jekyll build out static site, and when we push to our master branch, it
+gets autmatically deployed to Netlify.
+
+> Eff this newfangled shiny JavaScript all the young kids are using
+
+We have [a brand new data API](https://github.com/freesewing/data) build on
+[the Slim framework](https://www.slimframework.com/). It handles all user
+data. Things like accounts, measurements, models, and drafts, but also comments
+on this website and so on.
+
+It also talks to core for us, and every time you draft a pattern, we don't just
+give you the pattern, but we also run a comparison of your pattern to a range
+of standard sizes, which is kinda cool.
+
+And we have other cool stuff, like the ability to fork or redraft an existing
+draft.
+
+## This is a starting point
+
+I hope the user experience/interface is not going to be a roadblock for people.
+I've made a great deal of effort to make the drafting process as intuitive as
+possible and I think that in comparison to our demo (or the makemypattern
+interface for that matter) it's a vast improvement.
+
+Then again, I'm sure things will break left or right, or that some of you don't
+like the colours or whatnot.
+
+The point is that I set out to build something that can replace
+makemypattern.com so that I could tell all of you _Hey, come over and play with
+this new thing_.
+
+I think if nothing else, I can do that now. And if you see room for
+improvement, please join the effort, we're only getting started.
+
+PS: For those of you wondering about the title of this post:
+
+
diff --git a/sites/orgdocs/blog/freesewing-is-now-pay-what-you-want/index.mdx b/sites/orgdocs/blog/freesewing-is-now-pay-what-you-want/index.mdx
new file mode 100644
index 00000000000..7b3d0992263
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-is-now-pay-what-you-want/index.mdx
@@ -0,0 +1,30 @@
+---
+title: 'FreeSewing is now pay-what-you-want'
+caption: 'A Person Putting Coin in a Piggy Bank, by Maitree Rimthong'
+date: '2023-11-03'
+intro: "We have updated our pricing, here's why"
+authors: 1
+---
+
+I am clearly doing a terrible job at convincing people to [become a FreeSewing
+patron](/patrons/join), because while user growth is ever increasing, our
+revenue is not. In addition, inflation is very real, meaning that even when
+revenue remains the same, we're actually less able to make a difference.
+
+
+
+The rise in users also brings additional costs. Simply put, running
+FreeSewing.org is getting more expensive year by year, while revenue does not
+keep up, and that's a trend that has me worried for a while now.
+
+I considered my options for how to deal with this. I could raise prices, but
+that seems to punish our patrons who are already supporting us, while the vast
+majority of users does not contribute. Having more patrons is the obvious
+answer, but I don't like asking for money and in general seem to be rather bad
+at this sort of thing.
+
+So, after thinking it over for a while, I have decided to go the other
+direction. Rather than raise prices, I have removed pricing altogether.
+FreeSewing is now pay-what-you-want. Yes, you can still have everything for
+free, but [please consider supporting us with whatever amount you can
+spare](/patrons/join).
diff --git a/sites/orgdocs/blog/freesewing-v2-1/index.mdx b/sites/orgdocs/blog/freesewing-v2-1/index.mdx
new file mode 100644
index 00000000000..5868ff3825d
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-v2-1/index.mdx
@@ -0,0 +1,133 @@
+---
+authors: 1
+caption: 'This post is mostly about our work on progressive disclosure. Also: Three new patterns!'
+date: '2019-10-06'
+intro: "We've just release FreeSewing v2.1 🎉"
+title: 'FreeSewing v2.1: Three new patterns, expert mode, and help with measurements'
+---
+
+We've just release FreeSewing v2.1 🎉
+
+
+
+## Meet Penelope, Waralee, and Simone
+
+There are 3 new patterns in this release:
+
+- [Penelope](/designs/penelope) is a pencil skirt by [Wouter Van
+ Wageningen](/users/user?id=132)
+- [Waralee](/designs/waralee) are wrap pants, also by
+ [Wouter](/users/user?id=132)
+- [Simone](/designs/simone) is Simon (our versatile button-down pattern)
+ adapted for breasts by [Joost De Cock](/users/user?id=1)
+
+All of these patterns are either womenswear or -- in the case of Waralee --
+unisex clothing. Which in an indication of our commitment to bring more
+womenswear patterns to the site.
+
+Apart from creating new patterns, a lot of efforts have gone into making things
+simpler, without making them dumber. Let me explain:
+
+## Our work on progressive disclosure
+
+Striking a balance between giving our users all the power of the platform, yet
+making it easy for newcomers to get started, is an ongoing challenge. We have
+started making inroads into addressing that issue with so-called _progressive
+disclosure of complexity_.
+
+The idea -- which we didn't make up, but is a concept in UX design -- is to
+simplify the experience for most people without limiting the abilities of more
+advanced users.
+
+We are focusing our attention for progressive disclosure on two areas that are
+the ones that our users most often struggle with:
+
+- **Pattern options**: Our patterns often come with dozens of options. That is
+ great for those who like to fine-tune every detail of their pattern, but can
+ be a bit overwhelming for newcomers
+- **Measurements**: Taking accurate measurements is crucial for good results
+ with our patterns, yet not as trivial as you would think.
+
+While we're certainly not there yet, we've made progress on both of these.
+Let's look at what we've been up to:
+
+### Pattern options: We now have an expert mode, and it's off by default
+
+(some of) Our patterns have had _advanced options_ for a while, but they are
+now hidden by default. That is until you turn on the **Expert mode** in the
+settings (below the pattern options).
+
+Apart from advanced pattern options, export mode also reveals the lesser-used
+draft settings such as the ability to change the language, units, details,
+margin, and contents of your draft.
+
+
+
+:::tip Also shown: Pattern vs Recipe defaults
+When configuring your draft, every option has a little button to restore the
+default value for that option. Things get more complicated when you're
+re-creating a recipe. Now when you restore the default, is it the pattern
+default, or the recipe's default?
+
+The answer used to be the pattern default, but with this release, you'll find
+that options where the recipe default is different from the pattern default
+will have two buttons. Once to restore the pattern default, and another to
+restore the recipe default.
+
+You can see this in the screenshot above.
+:::
+
+### Measurements: Helping you spot mistakes in your measurements
+
+We've added a few indicators to help you spot mistakes or problems in your
+measurements. Your models will now show a graphical representation of your body
+measurements, which will allow you to spot any outliers.
+
+
+
+In addition, we are showing you an estimate of your different measurements
+(based on your neck circumference) next to the actual value. If the difference
+gets larger, we'll draw your attention to that.
+
+This is a difficult area for us to work in. We want to help you get the best
+results, and that includes helping you spot issues with your measurements. On
+the other hand, we in no way want to imply that someone's measurements are
+_wrong_ somehow.
+
+We are an extremely size-inclusive pattern outlet, and a disproportionate
+amount of our users are people who struggle to find clothes or patterns from
+other outlets. So on one hand, it might seem like we're setting ourselves up
+for failure by comparing measurements to a set of more or less _standard_
+measurements. But you know your body. You know which of your measurements
+deviate from the average. And us pointing out that they do is in a way only
+confirmation that you've been measuring correctly. On the other hand, if
+something jumps out where you are fairly average sized, you know to
+double-check those measurements.
+
+Last but not least, while we try to provide guidance about measurements to help
+spot mistakes, we never exclude anyone based on size or measurement. No matter
+what you throw at us, we will draft a pattern that works for you, or (our
+software will) die trying.
+
+## Other changes
+
+- We have extended our size ranges for our comparison views. Menswear sizes
+ are now sampled from size 32 up to 48, while womenswear is sampled from size
+ 28 up to 46.
+- We've made some changes to the defaults in the Simon pattern, based on our
+ tests with Simone
+- We've added support for preloading models with breasts to our development
+ environment for pattern designers
+- We've implemented fixes and improvements in our Jaeger, Bruce, Benajamin,
+ Simon, Carlton, and Carlita patterns
+- We've added a bunch of missing images in the documentation, and [started an
+ effort to make sure all options have an image to illustrate their
+ purpose](https://github.com/freesewing/freesewing.org/issues/190).
+
+More information is available [in the
+changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md).
+
+We hope you enjoy this release, and please [stop by our chat
+room](https://discord.freesewing.org/) to share your thoughts, feedback,
+suggestions, or ideas. We'd love to hear from you
diff --git a/sites/orgdocs/blog/freesewing-v2-7/index.mdx b/sites/orgdocs/blog/freesewing-v2-7/index.mdx
new file mode 100644
index 00000000000..0da1ee52cf9
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-v2-7/index.mdx
@@ -0,0 +1,104 @@
+---
+authors: 1
+caption: 'Photo by Deeana Creates from Pexels'
+date: '2020-07-12'
+intro: "We've just release FreeSewing v2.7 🎉"
+title: 'FreeSewing v2.7: Titan, changes to measurements, and a long list of improvements'
+---
+
+We've just release FreeSewing v2.7 🎉
+
+There's a lot of work that went into this release, and unfortunately it also
+will cause some breaking changes to your existing patterns and people, but it's
+all for the better.
+
+
+
+Let's have a look at what's new:
+
+## Titan trouser block
+
+I have lost count of the number of times I have started working on a trouser
+block over the last couple of years. It's something that's been on my to-do
+list for a long time, yet despite several attempts at making it happen, I
+hadn't come up with something that I was happy with.
+
+That's because designing trouser patterns is hard. Making sure things fit,
+while also guaranteeing that inseam, outseam, and cross seam are all the same
+length is no walk in the park. Especially if you want a pattern that will
+seamlessly adapt to different sizes and models.
+
+It would have probably lingered on my to-do list a while longer, but in
+February, Debra reached out to me and proposed we would come up with a pants
+sloper together. I love teaming up with people because it a great way to stay
+motivated, so over the next 4 months or so, we worked on what Debra has named
+[Titan](/designs/titan/), a dart-free unisex trouser block. I'd like to thank
+her for her patience and contributions to make Titan a success
+
+:::note Help us out: Make a Titan muslin
+A block is just that, a block or sloper. Our next steps are obviously this spin
+this into a number of different trouser patterns. Before we get to that though,
+we'd like to see how Titan performs on a variety of bodies.
+
+So if you could whip up a muslin of a made-to-measure Titan and let us know how
+it went, that would be wonderful.
+:::
+
+## Shoulder slope — again — and other changes to measurements
+
+We've made changes to the different measurements on the site. The roughly fall
+into 3 categories:
+
+- We've made _waist_ the basis for vertical measurements
+- We've changed the shoulder slope measurement
+- We've simplified the language and terms
+
+As a result, some vertical measurements that were not based on the waist are
+not gone (hips to upper leg for example). Other measurements have been renamed
+under the hood to make things simpler, but unless you're a developer, you don't
+need to worry about that.
+
+An important change is the one we made to the shoulder slope measurement. It's
+historically been a measurement that is hard to measure, and the changes we've
+made before to try to address that were in retrospect a bad idea.
+
+We've changed it again, but this time around, shoulder slope is measured as you
+would expect a slope to be measured: in degrees.
+
+This required some changes as up until now all measurements used the same
+units, but things should be ok now.
+
+As a result of all these changes and measurements, there's two things you
+should know:
+
+- The people you have in your account will have their measurements updated
+ (when the names changed) or removed (where the measurement is no longer
+ used, or we changed how to measure it)
+- Patterns that you have saved in your account that use some of the changed
+ measurements will no longer work. However, we've kept them in your account
+ so that if you want, you can extract the data, and re-draft them for the new
+ measurements. Feel free to reach out if you need assistance with that.
+
+:::tip
+We've migrated our backend to these new measurements, but you are likely to
+still have some of the old stuff cached in your profile. To get around this,
+you should probably reload your account
+:::
+
+## Frontend changes
+
+We've made a few changes to the website too.
+
+- We've added a [pattern notation guide](/docs/about/notation/) to take the
+ guesswork out of what those markings on your pattern mean.
+- We've added a reload account page to help you
+ avoid issues due to cached account data
+- We've changed the styling of the different sizes when you compare a pattern,
+ as well as included a legend showing which outline corresponds to which
+ size.
+
+## And many more changes under the hood
+
+As I said, a lot of work went into this release. See our [monorepo
+changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md)
+for all the details.
diff --git a/sites/orgdocs/blog/freesewing-v3-1/index.mdx b/sites/orgdocs/blog/freesewing-v3-1/index.mdx
new file mode 100644
index 00000000000..940ae13d29f
--- /dev/null
+++ b/sites/orgdocs/blog/freesewing-v3-1/index.mdx
@@ -0,0 +1,63 @@
+---
+authors: 1
+caption: 'There will be fewer of these version announcement posts going forward.'
+date: '2023-12-30'
+intro: "We've just release FreeSewing v3.1 🎉"
+title: 'FreeSewing v3.1 is out with two new designs, and a reminder that we now stream updates'
+---
+
+The day after Xmas, I finally found some time to bundle up the lastest and
+greatest of FreeSewing and wrap it in a neat little package and stamp it with
+**FreeSewing v3.1** 🎉
+
+
+
+It's our first release since the long wait for v3.0 and we jumped right ahead
+to v3.1, no patch release, no nothing. Is that because we are perfect and
+write code that is entirely bug-free? Alas, that is not the case.
+
+Instead, the reason this is the first post-v3 release is because we've changed
+how we do things in v3 which makes releases less of a big deal. Bear with me,
+I'll explain what I mean by that. But before I do so, let's look at those two
+new designs:
+
+## Meet Otis and Lumira
+
+There are 2 new designs in this release: [Otis](/designs/otis) is a baby
+romper, and [Lumira](/designs/lumira) are leggings. Both are the work of
+[Wouter Van Wageningen](/users/user?id=132), aka FreeSewing's [Number
+One](https://en.wikipedia.org/wiki/William_Riker).
+
+I can see both of these becoming rather popular. Otis requires only a single
+measurement (the waist) so they are perfect gift material. And leggings are
+something everyone should have in their wardrobe. (I am one of those people who
+is cold all the time, so I enjoy wearing them under my other trousers.)
+
+We could use some example pictures, so go ahead and try them out now. When
+you're done, [don't forget to showcase them](/new/showcase).
+
+## Why you won't see many v3 path releases
+
+Without wanting to get too much in the weeds, the way we build and deploy
+FreeSewing.org has changed since version 3. In the v2 era, designs on
+FreeSewing.org were loaded from the packages we release. As such all new
+designs, as well as all changes or bugfixes required a new release to be
+published.
+
+These days, everything is built from source and there is -- at least for
+FreeSewing.org to function -- no reason to publish new releases. That is why we
+went from v3.0.0 to v3.1.0 an never saw a v3.0.1. It's not that no bug fixes
+occur (check [the
+changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md)
+for details) it's just that there's no need for us to publish a new release for
+each bug fix.
+
+There are still reasons to publish updated versions of our software. For one
+thing, changes to our standalone development environment still require a new
+published version. And there are the people who use our software for their own
+purposes, who benefit from these updates.
+
+But all in all, you can expect to see fewer releases, in particular fewer patch
+releases as there is little reason for us to put those out.
+Instead, updates, bug fixes, improvements, and new features are now delivered
+as a continious stream of small steps, rather than the occasional leap forward.
diff --git a/sites/orgdocs/blog/gdpr-plan/index.mdx b/sites/orgdocs/blog/gdpr-plan/index.mdx
new file mode 100644
index 00000000000..98d01d8f3ba
--- /dev/null
+++ b/sites/orgdocs/blog/gdpr-plan/index.mdx
@@ -0,0 +1,424 @@
+---
+authors: 1
+caption: 'This image is probably the only thing in the post you can skim diagonally'
+date: '2018-02-14'
+intro: 'The General Data Protection Regulation of the European Union: Our battle plan.'
+title: 'The General Data Protection Regulation of the European Union: Our battle plan.'
+---
+
+This blog post is about the General Data Protection Regulation (GDPR) of the
+European Union (EU). While I cover the basics of GDPR, the main focus is on
+how it impacts freesewing.org, and what we plan to do to in the 100 days that
+remain before GDPR goes into force.
+
+
+
+This is a bit of a long read, so strap in.
+
+## Thoughts on the EU's GDPR
+
+I have a love/hate relationship with the European Union. I love what they do
+and what they stand for, I hate how they do it.
+
+
+
+The GDPR is no different. It's an important piece of legislation that raises
+the bar for online privacy, which is great. But as I was reading up on the
+subject, I felt the urge to rage-quit because OMG bureaucrats.
+
+Allow me to explain.
+
+### Privacy needs protection For better or for worse (I believe for worse) the
+
+internet has settled into a modus operandi where you pay for _free stuff_ with
+your personal data. Some people call it [people
+farming](https://ar.al/notes/we-didnt-lose-control-it-was-stolen/), and I think
+that's a great term.
+
+The [frightful
+five](https://www.nytimes.com/2017/05/10/technology/techs-frightful-five-theyve-got-us.html)
+are vacuuming up ever more of our personal lives. Short of never going online,
+there seems to be precious little we can do about it.
+
+### Why the EU is the best This problem is too big to tackle by any of us. Who
+
+could possibly stand up to the combined power of the tech giants?
+
+Well, how's this for a CV:
+
+- Fined Facebook 110 million euro for misleading statements about their
+ WhatsApp purchase
+- Ordered Amazon to pay 250 million euro extra taxes in Luxembourg
+- Fined Google 2.4 billion euro for abusing its dominant position in search
+- Ordered Apple to pay 13 billion euro extra taxes in Ireland
+
+When it comes to tech giants, the European Union is all stick/ no carrot.
+
+The General Data Protection Regulation enforces privacy policies that respect
+users' rights. It applies to all EU citizens, all the time, everywhere.
+
+Doesn't matter if you're a silicon valley juggernaut, respect the rights of the
+EU citizens or face the wrath of the eurocracy:
+
+> Organizations in breach of GDPR can be fined up to 4% of annual global
+> turnover or 20 million euro (whichever is greater)
+
+Four percent of global turnover is _a very big stick_.
+
+### Why the EU is the worst
+
+The EU being the EU, the regulation is a mixed bag of lofty goals and ideals,
+watered down by lobbying groups, and further complicated by the compromise
+required to get 28 member states on board.
+
+The intentions are great, it's a great idea, but they are doing a terrible job
+at selling it --- as usual.
+
+The practical implementation is in the hands of the so-called _Article 29
+Working Party_ which is currently keeping busy designing icons (I am [not
+making this up](https://www.google.be/search?q=standardised+icons+gdpr)) It
+will change its name to the _European Data Protection Board_ come May 25th,
+because you wouldn't want to get too comfortable with all this jargon now,
+would you?
+
+## The GDPR in practice
+
+If you're looking for expert advice on GDPR compliance, this is not the place
+for you.
+
+But if you are curious about the GDPR and what it takes for a website like
+freesewing.org to be compliant, read on.
+
+> ##### Further reading If you really want to know what GDPR is, the best thing
+>
+> you can do is [read the damn
+> thing](http://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32016R0679).
+> It ain't no rocket science.
+>
+> If legislative texts make you run for the hills, the UKs ICO has [easily one
+> of the best guides on
+> GDPR](https://ico.org.uk/for-organisations/guide-to-the-general-data-protection-regulation-gdpr/).
+
+### Good to know
+
+A few things you should know before we dive into GDPR:
+
+#### There's 100 days left
+
+The GDPR was adopted back in 2016, but it won't grow its teeth until May 25th 2018.
+
+Until that day, you get a pass. After that day, it's for real. Which means we
+have 100 days left to get our house in order.
+
+#### There's exemptions for SMEs
+
+Organizations employing fewer than 250 people are exempt from some of the more
+bureaucratic aspects of the GDPR, such as a bunch of documenting requirements.
+
+Essentially, while you still have to do the right thing, there's a lot less
+paperwork to fill out.
+
+Freesewing employs zero people, so we're off the hook.
+
+#### There's extra provisions for sensitive data
+
+> Body measurements alone are not sensitive data
+
+The GDPR has extra provisions for _sensitive data_ such as biometric data,
+profiling, and a bunch of other stuff.
+
+This was cause for concern because we collect body measurements, and one of our
+questions was whether that qualifies as biometric data.
+
+Turns out it doesn't. Biometric data is what you can use to identify a person,
+like a fingerprint or iris scan. Body measurements alone are not sensitive
+data.
+
+### Collecting data through consent
+
+To collect data, you need a so-called _lawful basis for data processing_.
+There are different types, but the one that applies to us (and to most online
+services) is **consent**.
+
+In this scenario, your legal basis for processing the data is that you've asked
+the person to get their data and they've freely given it to you.
+
+That is straight-forward, and makes sense. But the GDPR is really serious about
+making sure this consent is freely given, and not wrestled from you grudgingly.
+
+To prevent companies from throwing up a big wall of legalese that people have
+to agree to, the GDPR outlines a number of principles this consent should
+adhere to. Here's a non-exhaustive list:
+
+- people should have real choice and control
+- consent requires a positive opt-in, pre-ticked boxes or anything like that
+ are not allowed
+- there should be a very clear statement explaining what people are agreeing
+ to
+- these requests for consent must be separate from any terms & conditions
+- consent needs to be granular, you need individual consent for different
+ things, and can't ask for blanket consent
+- it must be easy for people to redraw consent
+- consent of data processing should not be a precondition for a service
+
+Looking at that list, I can't help but feel that legislation would be a lot
+simpler if lawmakers could just write _don't be a dick_ and call it a day.
+
+#### Consent granularity
+
+Remember, we can't just get blanket consent. We need to get consent for every
+type of data processing we do.
+
+For freesewing.org, we have identified three different types of data
+processing:
+
+- Profile data
+- Model data
+- Patron data
+
+For each of these, we'll need to get consent from the user, making sure it's
+_real consent_ as intended in the GDPR.
+
+Below is a mockup for what this could look like for each data type:
+
+> ##### These mockups are no longer available
+>
+> Please note that the mockups originally included in this post are no longer
+> available. Instead, this functionality has been implemented in the website.
+
+#### Consent timing
+
+The GDPR states that you should ask for consent when the data is collected.
+
+With our three types of data processing, that means that consent must be asked
+at different times:
+
+- **Profile data**: When signing up on the site
+- **Model data**: When creating the first model
+- **Patron data**: When becoming a patron
+
+This will (also) require some extra work to integrate this in the site.
+
+### Respecting basic rights when processing data
+
+The EU enshrines basic rights for its citizens that should be respected when
+processing data.
+
+Let's look at each of these rights and their impact on freesewing.org.
+
+#### The right to be informed
+
+> You need to be transparent about how you use personal data. Why you collect
+> it, how you use it, and so on.
+
+Informing users is something we are still working on. If anything, this blog
+post is part of that effort.
+
+We will need to design the individual privacy notices, but also a more overall
+privacy policy as well as making certain that users are informed of all their
+rights.
+
+While this will require some work, I don't expect any problems here.
+
+#### The right of access
+
+> People have the right to know their data is processed, and to access that
+> data.
+
+We are already compliant, as all data users enter on the site can also be
+accessed by them.
+
+#### The right to rectification
+
+> People have the right to correct their data if it's not correct.
+
+We are already compliant, as all data users enter on the site can also be
+edited by them.
+
+#### The right to erasure
+
+> People have the right to have their data removed/erased.
+
+We are already compliant, as users can remove their models, or entire account
+at any time.
+
+#### The right to restrict processing
+
+This right means that users must be able to put a _freeze_ on all data
+processing, without going as far as to delete their data.
+
+We do not currently offer this possibility, and will need to add this
+functionality to the site.
+
+#### The right to data portability
+
+> People not only have a right to export all their data, that export should
+> also be in a format that makes it easy for them to take their data elsewhere.
+
+We are already compliant, as we allow users to export all of their data, and
+make it available in different standard formats (YAML and JSON).
+
+#### The right to object
+
+> The right to object applies specifically to:
+>
+> - processing for public interests or by official authorities - processing for
+> direct marketing - processing for science/historic research/statistics
+>
+> In these cases, people can object to this specific processing.
+
+This is going to apply to us when we start publishing anonymized model data,
+something that's on our roadmap.
+
+The reason for publishing this data is that we want to make a dataset available
+of _real_ body measurements, rather than the _standard_ measurements that are
+typically used in the industry.
+
+This is something we'll write about more at a later date, but essentially this
+falls under the _scientific research/statistics_ category. And even though the
+data is anonimized, we still need to respect the right of users to object to
+this processing.
+
+As such, we should add the possibility to object to this specific use of the
+data.
+
+#### Rights in relation to automated decision making and profiling
+
+> People have extra rights when it comes to profiling or decisions made by AI
+> or algorithms without human involvement.
+
+This is not relevant in our situation.
+
+### Privacy by design
+
+The EU isn't content with throwing up a couple of consent questions and
+respecting people's rights when processing data. It also wants to make certain
+that your privacy is (better) protected when things go wrong.
+
+That's why it advocates for _privacy by design_. While it's a concept that's
+hard to pin down in legislation, the purpose is clear: They want everyone to
+consider privacy from the very start of their project/product/business, and not
+as an afterthought.
+
+Things such as encryption (both in transit and for data at-rest), pseudonyms,
+and data expiry are suggested as things to keep in mind while designing.
+
+Obviously, the EU is not going to come check your code to see whether you've
+taken privacy by design to heart. But it can (and probably will) have an
+influence when things to wrong.
+
+Imagine two companies who have a data leak, one of them hasn't done much to
+safeguard the privacy of their users, whereas the other has taken _privacy by
+design_ measures to mitigate the damage.
+
+It seems obvious that the EU is going to come down harder on the company who
+didn't even try.
+
+#### What we're already doing
+
+We already do a number of things that are driven by a _privacy by design_
+approach. For example:
+
+- We use pseudonyms for user accounts
+- We don't share any data with any third party
+- We don't include any tracking code, or analytics
+- We don't use cookies
+- We don't have any social logins, like buttons, or other such things
+- We don't run/show any ads
+- We don't run any third-party JavaScript code
+- We use encryption on all transport
+
+There's some more info on this in this blog post: [The choices I've made to
+protect your privacy. Or why you won't be getting any
+cookies](/blog/privacy-choices/).
+
+These already form a very good basis for a privacy conscious website. But since
+we'll need to make changes for GDPR anyway, we're considering other options to
+further raise the privacy bar. Specifically, what can we do to limit the
+damage to our users in case there is a data leak.
+
+#### Restriction of data storage
+
+Some of the most sensitive data we store today is the address and birthday of
+our higher-tier patrons.
+
+However, the site does not need this information to function. We only need it
+for administrative purposes; Sending out gifts and birthday cards to our
+patrons.
+
+As such, there's no real need to keep this data in the freesewing database. We
+could just as well write this information down in a notebook we keep on our
+coffee table.
+
+So, as part of our GDPR-related changes, we will remove this information from
+the database, and store it offline.
+
+#### Encryption of data at rest
+
+We already encrypt all data in transit. But, we are currently considering to
+add encryption of data at rest.
+
+The idea is to encrypt all data that could potentially identify a user. Such
+as:
+
+- Email address
+- User name
+- Model names
+- Model notes
+
+This would add an extra layer of defense for our users' privacy in case somehow
+our database gets dumped.
+
+While this change will be non-trivial to implement and come with a performance
+penalty, I feel it's worth looking in to.
+
+## Conclusion
+
+While we still have some work to do, we are already compliant with large parts
+of the GDPR, especially when it comes to respecting users rights:
+
+- The right to be informed
+- The right of access
+- The right to rectification
+- The right to erasure
+- The right to restrict processing
+- The right to data portability
+- The right to object
+- Rights in relation to automated decision making and profiling
+
+We are currently working on _the right to be informed_ and have a plan for the
+changes required to respect _the right to restrict processing_ and _the right
+to object_.
+
+On the data collection site, we need to hammer out the details for our privacy
+notices. We'll also write a detailed privacy policy that bundles all the info
+from the different notices.
+
+We'll need to add changes to the user on-boarding to make sure notices are
+presented at the correct time. Not to mention that we'll need to keep track of
+who gave their consent for what.
+
+### Action points
+
+- Draft privacy notices for profile/model/patron data
+- Integrate consent in user on-boarding, model creation, and patron sign-up
+- Make site functionality depend on consent
+- Provide a centralized privacy dashboard where people can review their
+ privacy settings/consent
+- Add email notifications every time consent is changed
+- Provide a way for people to _freeze_ their account
+- Provide a way for people to object to their model data being used for
+ research and statistics
+- Write and publish an overall privacy policy
+- Encrypt sensitive data in the database
+
+Seems like we've got a lot of work ahead of us.
+
+### Feedback
+
+It is my personal opinion that the GDPR is a good thing. But I want to hear
+from you about the changes outlined in this blog post.
+
+So please reach out with your feedback and comments. It is after all your data
+we're talking about.
diff --git a/sites/orgdocs/blog/gdpr-ready/index.mdx b/sites/orgdocs/blog/gdpr-ready/index.mdx
new file mode 100644
index 00000000000..d5258485211
--- /dev/null
+++ b/sites/orgdocs/blog/gdpr-ready/index.mdx
@@ -0,0 +1,127 @@
+---
+authors: 1
+caption: 'The most important change is obviously that we moved from purple to black as our signature color'
+date: '2018-05-24'
+intro: "Welcome to our new website. It's GDPR compliant, speaks 3 languages, and smells of wet paint"
+title: "Welcome to our new website. It's GDPR compliant, speaks 3 languages, and smells of wet paint"
+---
+
+Tomorrow, May 25th, the General Data Protection Regulation (GDPR) of the
+European Union (EU) comes into force. From that day onward, businesses that
+don't respect the privacy of EU citizens expose themselves to fines of up to 4%
+of their global annual turnover.
+
+
+
+The date marks nothing short of a watershed moment for online privacy, as the
+world's most stringent data protection laws suddenly apply to half a billion
+people.
+
+## Your consent is now required
+
+For freesewing, the roll-out of GDPR doesn't pose a problem as such. Not only
+did we have a solid plan, the only thing we absolutely had to add to the site
+was _consent_. We are no longer allowed to process your data without your
+permission. Permission that we should ask for both explicitly and granularly.
+
+So, we have two types of questions to ask you:
+
+- Do you give your consent to process your profile data?
+- Do you give your consent to process your model data?
+
+We make the distinction because they are different things. A profile/account
+is required to login to the site, post comments, and so on. Model data is
+required to generate made-to-measure sewing patterns.
+
+You will be greeted by these questions when they are relevant (as in, when we
+do need to access that specific data), and you can revisit them at any time [in
+your account settings](/account).
+
+## It is our duty to inform you
+
+Under GDPR, we must inform you about how we handle privacy issues. We have
+written about [our approach to privacy](/blog/privacy-choices) before, but this
+requires something (a bit) more formal.
+
+So, we've drafted a privacy notice that outlines all of these
+things.
+
+In addition to our privacy notice, we've setup a page that lists all of your
+rights, and explains how you can exercise them.
+
+With these changes, we've covered your right to be informed.
+
+## Privacy by design
+
+One of the more vague yet impactful requirements of GDPR is so-called
+_privacy-by-design_. We took the advice to heart and have made two changes
+inspired by this:
+
+- Encryption of data at rest
+- Termination of dormant accounts
+
+We now encrypt your profile data at rest. In other words, our database holds
+your info, but it's encrypted. We only decrypt it when we need it.
+
+We'll also terminate accounts that have been dormant for 12 months. In other
+words, if you don't login on the website for 1 year, your account and all your
+data will be removed.
+
+However, for that last matter, there will be a bit of a grace period as we
+haven't fully implemented all the required changes yet. Which brings me to my
+next point:
+
+## Also new: everything else
+
+These GDPR-related changes seemed like a good opportunity to re-vist some of
+the choices we've made, and see if there was room for improvement. That was
+the initial idea anyway. In the end, we complete re-wrote the website from
+scratch.
+
+Our previous website used [Jekyll](https://jekyllrb.com/) as a static site
+generator, with a pile of javascript code to make add the dynamic elements to
+the site. While that did do the trick, there were two important downsides:
+
+- Jekyll uses the Ruby programming language. That's another programming
+ language, another package manager, and another ecosystem that potential
+ contributors have to wrap their heads around. We wanted to avoid that.
+- That _pile_ of JavaScript code was rather literal. Maintainability was
+ starting to become an issue, not to mention that it would be difficult for
+ new developers to jump in and understand what's going on.
+
+So, to kill two birds with one stone, we rewrote the entire site using
+[Vue.js](https://vuejs.org/) and [Nuxt](https://nuxtjs.org/). Our entire
+frontend is written in JavaScript now — no more Ruby required — and due to
+Vue's modular nature and component-based approach, it should be a lot easier to
+maintain.
+
+## Internationalization, aka i18n
+
+Obviously, as we were rewriting things, we've thrown in a couple of new
+features. The most obvious being that we fully support i18n
+(internationalization) now.
+
+While translation is an ongoing endeavor, we've got everything in place to
+support it. Starting today, freesewing is no longer exclusively available in
+English, but also in Dutch and Spanish.
+
+I'd like to thank [@AnnekeCaramin](/users/user?id=168) and
+[@AlfaLyr](/users/user?id=1230), our language coordinators for Dutch and Spanish
+respectively, but also all other people who have helped out with translating.
+
+An overview of the status of the different languages is available
+here (link is gone), and I'm hopeful that soon we'll be able to enable more
+languages.
+
+## Beware the wet paint
+
+Arguably, this release is a bit premature. We've still have [a couple of open
+issue to fix](https://github.com/freesewing/site/issues), and we're missing a
+bunch of documentation.
+
+However, since our deadline is externally imposed, we don't exactly have much
+choice in this. That is, if we want to be fully compliant with GDPR, and we
+do.
+
+So, please bear with us as we continue to build this website, and our platform.
+And don't hesitate to let us know when something goes wrong.
diff --git a/sites/orgdocs/blog/halloween-cosplays-2021/index.mdx b/sites/orgdocs/blog/halloween-cosplays-2021/index.mdx
new file mode 100644
index 00000000000..d30f56044c2
--- /dev/null
+++ b/sites/orgdocs/blog/halloween-cosplays-2021/index.mdx
@@ -0,0 +1,183 @@
+---
+authors: 1
+caption: "A bit cold perhaps, but swimtrunks: we've got'em"
+date: '2021-10-20'
+intro: 'Embodying your favourite character can make for a really fun Halloween experience! Here are some iconic characters to get you inspired.'
+title: '10 cosplays you can make from FreeSewing patterns to get you in the Halloween mood'
+---
+
+Embodying your favourite character can make for a really fun Halloween
+experience! Here are some iconic characters to get you inspired.
+
+
+
+### Spongebob
+
+Perhaps the most iconic character of them all, who doesn't know this yellow
+sponge? And his outfit is surprisingly stylish too!
+
+He wears a white dress shirt and brown pants, which can be created by
+[Simon](/designs/simon/) and a shortened [Charlie](/designs/charlie/)
+respectively, but you may already have this in your closet (saves time!). A
+bright red [Trayvon](/designs/trayvon/) and a black belt would top it all off,
+or you can go even further by wearing shiny black shoes and white socks.
+
+
+
+
+
+
+
+### Patrick Where there is Spongebob, there is Patrick. Recreate his look with
+
+a pink [Teagan](/designs/teagan/) (or a pink shirt from your closet) and green
+[Shin swim trunks](/designs/shin/). If you want to go even further, try to
+find fabric that resembles the pattern of his shorts, or paint the purple
+flowers on a pair of green shorts yourself!
+
+
+
+
+
+
+### Phineas and Ferb Another iconic duo! Recreate Phineas' outfit with an
+
+orange striped [Teagan](/designs/teagan/) and pair it with short, blue
+cargo-like pants (or just dark jeans). Bonus points if you have blue sneakers
+and maybe even (temporary) red hair dye.
+
+Ferb seems to be wearing a pastel yellow [Simon](/designs/simon/) with a white
+collar and buttons. He also wears very high-waisted purple pants, easy to
+recreate with an altered [Charlie](/designs/charlie/). Aside from that, he
+wears black sneakers and... green hair. This is your time to go wild.
+
+
+
+
+
+
+
+### Ash from Pokémon The main character from the beloved Pokémon series!
+
+Although his look has changed many times over the last 20 years, there are
+still ways to embody him.
+
+He generally wears light denim jeans and his iconic red hat. We currently do
+not have patterns for either of these, but we do have patterns for the jackets
+he wears!
+
+To create his original outfit, wear a blue [Simon](/designs/simon/) with short
+white sleeves and a white collar, with yellow top buttons. This jacket seems
+to have yellow pockets, but sewing yellow stripes on it will also do the trick.
+(P.S. This jacket is not really a Simon, but it's the closest we have.) If you
+really want to go all the way, the bottom of his jacket has a yellow line and
+he wears green fingerless gloves. He wears a dark green or black shirt under
+this, or use [Teagan](/designs/teagan/) if you don't have one.
+
+If that's a bit much, any bright blue jacket will recreate his vibe. Add
+yellow accessories to get more into it. If that's too simple, he also wears a
+t-shirt ([Teagan](/designs/teagan/) would be great here, too!) in the Sun and
+Moon series. Forget the jeans for this one; he pairs this with shortened
+[Pacos](/designs/paco/) that have red ribbing.
+
+
+
+
+
+(Hint: in our other Halloween blogpost, we have ideas for turning Huey and Hugo
+into Pokémon hoodies!)
+
+### The PowerPuff girls
+
+This is a perfect cosplay for a group of three! Choose your favourite body block and pair it with a [Sandy](/designs/sandy/).
+Find a large black belt or simply sew a black stripe on the block. You can turn this into a dress, but that's not mandatory.
+The three also wear white tights and black shoes. For Blossom (the pink one), you can use [Benjamin](/designs/benjamin/) to create her bow.
+Bonus points if you get their hairstyles right too.
+
+
+
+### Dora
+
+Dora! Iconic and quite easy to replicate.
+She wears a cropped pink shirt (cropped Teagan!) and short orange pants, which can be created by making shortened [Pacos](/designs/paco/) or a [Charlie](/designs/charlie/).
+She wears yellow socks, a yellow beaded bracelet, with white or pink shoes. Her purple bag may perhaps be the hardest thing to find.
+
+
+
+
+
+
+Now, you may have been wondering if this whole list is going to be children's characters. Don't panic! It's time for more mature characters.
+
+### Soldier: 76's summer skin
+
+The stoic soldier from the game Overwatch, and his outfits are more fun than you'd think.
+His summer skin makes for an awesome casual outfit too.
+
+The blue apron is arguably the most important part of this, and also the hardest part to get right.
+His apron has a lot of pockets. You can start with [Albert](/designs/albert/) and just add a bunch of pockets.
+If you make it from cotton, you can write the text on it with fabric dye.
+
+He also wears a red Hawaiian shirt, which can be replicated with a [Simon](/designs/simon/) with short sleeves, from a red flowery pattern.
+He wears brown pants underneath it, which can be replicated with a shortened [Charlie](/designs/charlie/).
+
+This person even made the apron from leather! The owner commissioned it from [Knotted Bone Leather Works](https://www.knottedboneleatherworks.com/).
+
+
+
+
+
+### Sherlock Holmes
+
+Well, it would almost be a crime if we didn't include this character, as we have patterns inspired by his show!
+Wear a dark navy or black [Carlton](/designs/carlton/)/[Carlita](/designs/carlita/) (shocker, I know) and under that wear all-black clothes, or a white dress shirt instead of something black.
+To really get the look, wear a desaturated blue scarf and make our [Holmes hat](/designs/holmes/) from a gray fabric ("herringbone") and with a dark brown ribbon.
+
+
+
+
+### Janet from The Good Place
+
+Janet, our favourite non-human (slightly human) assistant.
+This entry wouldn't be here if not for [Natalia](https://freesewing.org/makers/nataliasayang/)!
+She cosplayed this character last year and it looks awesome.
+If you'd want to create Janet's look with FreeSewing patterns: make a [Wahid](/designs/wahid/) and [Sandy](/designs/sandy/), both from a deep purple fabric, and pair it with a long-sleeved shirt made from an (optionally translucent) blue flowered fabric.
+Janet's shirt has a lot of flair that we don't have features for, but you can manually add these things.
+
+
+
+
+### Hatsune Miku
+
+Yes.... She counts as a mature character, although her looks may give the impression that she's popular with children.
+But, this vocaloid (the product of a voice synthesizer software) has many fans and has even had real-life concerts! (Crazy for a fictional character!)
+
+Anyways, to create her look, you'll need a gray [Wahid](/designs/wahid/), optionally with blue lines, and a blue [Trayvon](/designs/trayvon/) tie.
+She also wears a black pleated knife skirt, with a blue line, but erm... This pattern does not _yet_ exist.
+She wears black tights (again with a blue stripe!) with black shoes.
+
+She wears huge sleeves that aren't attached to her top; you can simply grab Sven and only take the sleeves, cut a bit off the top of the sleeve and add an elastic band there, and make the rest of the sleeve get wider and wider. Again there's the option to add a blue line.
+
+Bonus points if you can find a wig for her iconic blue pigtails, but if you have long hair you can also get the vibe by recreating her hairstyle with your own hair.
+
+
+
+
+
+
+Hopefully we inspired you and happy halloween! 🎃
+
+> _This was a collaboration between bobgeorgethethird and lucibytes!_
diff --git a/sites/orgdocs/blog/halloween-ideas-2021/index.mdx b/sites/orgdocs/blog/halloween-ideas-2021/index.mdx
new file mode 100644
index 00000000000..f1a1e17d5f7
--- /dev/null
+++ b/sites/orgdocs/blog/halloween-ideas-2021/index.mdx
@@ -0,0 +1,91 @@
+---
+authors:
+ - 20400
+ - 20650
+caption: 'Drawing by @racerxmachina, Sandy!'
+date: '2021-10-20'
+intro: 'You may already have an idea for what you want to make for Halloween. Or maybe you have no clue. Either way, here is some inspiration to get you going.'
+title: 'Get your Halloween going with these inspirational costume ideas'
+---
+
+You may already have an idea for what you want to make for Halloween. Or maybe
+you have no clue. Either way, here is some inspiration to get you going.
+
+
+
+### Want to go for a vintage look?
+
+Many of our patterns can give you a vintage-esque look without actually having to be vintage.
+Working outwards from the bases of [Charlie](/designs/charlie) and [Simon](/designs/simon/)/[Simone](/designs/simone/), you can then use combination of [Wahid](/designs/wahid/), [Jaeger](/designs/jaeger), [Carlton](/designs/carlton/)/[Carlita](/designs/carlita) for the outerwear. To complete the look, don a [Florent](/designs/florent) and a [Trayvon](/designs/trayvon) or [Benjamin](/designs/benjamin). If [Charlie](/designs/charlie/) isn’t doing it for you, maybe switch it out for a [Cornelius](/designs/cornelius/) or a floor -length quarter-circle or half-circle [Sandy Skirt](/designs/sandy/).
+
+### Want to have more of Gothic look?
+
+First, let’s make more Romantic version of [Simon](/designs/simon/)/[Simone](/designs/simone/). You can do this by slashing and spreading the sleeve piece. There are many ways to do this and many variations, but we recommend a bishop sleeve which you can find [on SewingJulie's YouTube channel](https://www.youtube.com/watch?v=GkEZtATYZ2g&ab_channel=SewingJulie). Just remember that [Simon](/designs/simon/)([e](/designs/simone/)) has already been drafted for a cuff and has a placket. From there you can throw on a pair of [Charlies](/designs/charlie/).
+
+For outerwear, you can either go for a [Wahid](/designs/wahid/) or [Cathrin](/designs/cathrin/) and to finish the look we recommend the square variant of [Benjamin](/designs/benjamin/). Again if [Charlie](/designs/charlie/) is not your thing you can try [Penelope](/designs/penelope/) or [Sandy](/designs/sandy/).
+
+_Drawing by @racerxmachina, Sandy_
+
+### Or are you more of a secret agent?
+
+Get the suave look by making a [Jaeger](/designs/jaeger/), [Trayvon](/designs/trayvon/), and [Charlie](/designs/charlie/) and pair it with your favourite sunglasses. If the [Jaeger](/designs/jaeger/) isn’t your style, try switching it out for a [Wahid](/designs/wahid/). And if trousers don’t take your fancy, try [Penelope](/designs/penelope/) or a quarter-circle [Sandy](/designs/sandy/).
+
+Or maybe you want to be in your combat garb. Try combining [Sven](/designs/sven/) and [Paco](/designs/paco/). Pair them with some combat boots and a belt of your choosing.
+
+### Maybe you are more of fantasy dweller?
+
+Whilst we don’t have many patterns that emulate fantasy, the [Cathrin Corset](/designs/cathrin/) is a great place to start. Combine it with a Puff-Sleeve variant of [Teagan](/designs/teagan/) and a floor-length quarter- or half-circle [Sandy](/designs/sandy/), and you are well on your way to emulating [the Cathrin cover art](/designs/cathrin/). For those of you who are feeling a little more adventurous, a little challenge for you: try combining [Cornelius](/designs/cornelius/) and [Paco](/designs/paco/) together to create satyr legs, then perhaps pair it with [Wahid](/designs/wahid/) and [Simon](/designs/simon/)/[Simone](/designs/simone/).
+
+### Become "that suit person."
+
+This is a goofy outfit that can be worn to any informal party. The formal aspects of [Jaeger](/designs/jaeger/) and [Charlie](/designs/charlie/) clash beautifully with crazy patterned fabrics, which makes for a super fun Halloween outfit, which can also be worn to other parties in the future. Making a [Jaeger](/designs/jaeger/) is hard, but at least the idea is simple: find your favourite crazy fabric and use it for both pieces. You can wear a white dress shirt (or a white [Simon](/designs/simon/)) underneath. There's an option to add a [Trayvon](/designs/trayvon/) or [Benjamin](/designs/benjamin/) in a bright color as well. The possibilities are endless!
+
+### Or maybe you only want to make one or two garments for an easy-to-wear costume?
+
+[Huey](/designs/huey/), [Hugo](/designs/hugo/), and [Paco](/designs/paco/) are perfect bases to create simple animal hoodies and trousers that will also be comfortable to wear. There are many animals you can try so here are a few basic alterations and ideas to get your creative brain flowing.
+
+#### Creating a back seam for Hugo and Huey
+
+For simple things like back spikes for dinosaurs, you may find it useful to create a back seam in [Hugo](/designs/hugo/) or [Huey](/designs/huey/). This is simply done by cutting two back pieces instead of one on the fold. Don't forget to add seam allowance along the center back! From there you would construct your additions, such as spikes, and then baste them to one of the back pieces with right sides together. Then pin the other back piece over the top, right sides together and sew. This will now count as your single back piece in the Huey and [Hugo instructions](/docs/designs/hugo/instructions/).
+
+The same can be done with the hood center piece for [Hugo](/designs/hugo/), and [Huey](/designs/huey/)'s hood already has a center back seam so no changes are required for Huey's hood. Another thing you can do is split the hood patterns in half ear to ear if you are adding stuff like ears but you may find it easier just to hand sew these elements on.
+
+For these particular costumes we recommend using fabrics that do not fray such as polar fleece for the body and larger additions, with felt being an option for the smaller add-ons.
+
+With these alterations in mind, let’s talk some ideas.
+
+#### Wings
+
+This might sound odd at first, but hear me out. You can add wings by making a quarter- or half-circle and inserting them into the side seams of [Huey](/designs/huey/) and [Hugo](/designs/hugo/). If you make want to make your wings more spiky, cut-out semi-circles from the curved edge of your pattern, a plate will make this a lot quicker. Experiment! There are many types of wings and many shapes for them!
+
+#### Bear
+
+Who doesn’t want a ferocious bear running around a party? Create round ears for the hood and an oval shape to go on front for the underbelly. You can make a simple small tail for the back of the hoodie.
+
+#### Cat
+
+Everybody wants to be a cat! Well not everybody, but if you want to go as one of the Halloween staples and be comfortable, this is the way to do. Add pointed triangle ears to the hood and possibly whiskers with pipe cleaners and add a long sausage tail to the back.
+
+#### Dinosaurs
+
+Add horns! Add teeth! Add spikes! The possibilities are endless! If you want to keep it simple, make the center back seam adjustment and add some spikes, then add some felt triangles to represent teeth around the brim of the hood. If you are feeling more daring, why not try to emulate a triceratops head with its horns. You can also add spots to represent dinosaur skin and even a tail if you're up for it.
+
+_Drawing by @racerxmachina, Sandy_
+
+#### Dog
+
+Add triangle ears and a wagging tail, or if that’s not to your liking you can try floppy ears. For more variation you can add spots to denote color. Possibly, be a Cruella and make it look like a Dalmatian.
+
+#### Rabbit
+
+Go for pink, white, yellow, brown, grey, black or any other color a bunny can be! Add oval-shaped ears and a small nose. For a tail, simply gather up a circle of fur fabric around a ball of stuffing and hand sew to your hoodie.
+
+#### Pokemon
+
+Now I know what you are thinking. Why is this in the regulars? Well we thought it was best to keep all the [Hugo](/designs/hugo/) and [Huey](/designs/huey/) adaptations together. So why not be inspired by [Frankie’s Bulbasaur Huey](/showcase/bulbasaur-huey/) they made for the child and make a [Huey](/designs/huey/) or [Hugo](/designs/hugo/) inspired favourite Pokemon. You can be as elaborate as you like and make ears, bulbs, and other appendages, or you can simply use the color scheme of your favourite Pokemon and add their eyes, mouth and nose on the hood.
+
+#### Detective Pikachu
+
+A detective that might even rival Sherlock Holmes would also be amiss without their hat. Use a [Holmes](/designs/holmes/) with a beige brown herringbone fabric and dark brown ribbon. Now what about the ears? The ears?! Why yes, Pikachu’s ears! Make a two-layered oval shape with a straight bottom. You can either cut and sew the black tops on as a seam or sew them on after you've turned the yellow parts right-side-out. Sew the two yellow layers together good sides together leaving the bottom open, trim and clip the seam allowances, then turn right-side-out. Once turned, stuff and hand sew to the ear flaps of the deerstalker before they are attached to the crown. You can sew these on after final construction if easier, just remember to close the bottom as a seam with hand-sewing before attaching to ear flaps. If you’re not aiming the exact look experiment with different colors and patterns and make a unique Detective Pikachu hat just for you!
+
+> _This was a collaboration between bobgeorgethethird and lucibytes!_
diff --git a/sites/orgdocs/blog/holmes-deerstalker-hat/index.mdx b/sites/orgdocs/blog/holmes-deerstalker-hat/index.mdx
new file mode 100644
index 00000000000..223d2fe0717
--- /dev/null
+++ b/sites/orgdocs/blog/holmes-deerstalker-hat/index.mdx
@@ -0,0 +1,28 @@
+---
+authors: 1
+caption: "Screengrab from Bernadette Banner's YouTube tutorial for this hat"
+date: '2020-02-23'
+intro: 'New pattern: The Holmes Deerstalker Hat'
+title: 'New pattern: The Holmes Deerstalker Hat'
+---
+
+Earlier this week, [AlfaLyr](/users/user?id=1230) wrote to us to say that she had
+made a pattern for the iconic Sherlock Holmes Deerstalker hat, based on this
+YouTube tutorial by [Bernadette
+Banner](https://www.youtube.com/channel/UCSHtaUm-FjUps090S7crO4Q):
+
+
+
+
+
+Unfortunately, we were just rounding up [the rollout of v2.2 of
+FreeSewing](/blog/breanna-measurements-sizes-in-2-2/), and it was too late to
+squeeze in this extra pattern.
+
+But obviously we love this hat, not to mention that it is the perfect accessory
+for our [Carlton](/designs/carlton/) and [Carlita](/designs/carlita/) patterns.
+So here it is, [FreeSewing
+2.3](https://github.com/freesewing/freesewing/releases/tag/v2.2.0) with [the
+new Holmes pattern](/designs/holmes/).
+
+Enjoy!
diff --git a/sites/orgdocs/blog/huey-hoodie-beta/index.mdx b/sites/orgdocs/blog/huey-hoodie-beta/index.mdx
new file mode 100644
index 00000000000..38de486767e
--- /dev/null
+++ b/sites/orgdocs/blog/huey-hoodie-beta/index.mdx
@@ -0,0 +1,62 @@
+---
+authors: 1
+caption: "This purple Huey hoodie is the first of its kind. Now it's your turn"
+date: '2017-10-21'
+intro: 'The Huey Hoodie is now available in beta. Which begs the question, what does it mean for a pattern to be in Beta?'
+title: 'The Huey Hoodie is now available in beta. Which begs the question, what does it mean for a pattern to be in Beta?'
+---
+
+Welcome to [Huey](/designs/huey), the youngest member in our pattern family.
+Huey is a zip-up hoodie with an (optional) front pouch. I've made one for
+myself -- the one in the picture above -- and I have yet to take it off since.
+
+Meanwhile, I've been wondering why the hell I didn't design this pattern sooner.
+It's just that nice to wear.
+
+
+
+## Available as of now, in beta
+
+The pattern is available [right here](/designs/huey), right now, but it's in
+beta.
+
+To find out what that means -- and why I'm doing this -- just continue reading.
+But if you're itching to make this, here's is what you need to know about beta
+status:
+
+- Beta patterns lack documentation
+- Beta patterns are made by few people (so far)
+
+As time goes by and these issues are resolved, Huey will move from beta to
+core.
+
+## So why this beta business
+
+As I explained in [my round-up post of last month](/blog/roundup-2017-09/),
+pattern testing is a real bottleneck for me.
+
+A number of people came forward, offering to help out with testing (thank you
+very much for that) which lead me to consider how this would work in practice.
+
+Like, I've got Huey to point of _it works for me_ and I am somewhat confident
+that it will work for others too. Stil, nothing replaces a real-world test so
+it would be nice if a couple of people could make it.
+
+Rather than given the opportunity to test Huey to a handful of people who came
+forward, I figured I might as well open it up to everyone who feels so
+inclined.
+
+And to indicate that this pattern isn't as road-tested as the others, I'm
+keeping it in the beta namespace, where it actually is developed and this will
+also show up on the pattern page. No changes required.
+
+## Release early, release often
+
+Going forward, I will release patterns as soon as I can, and work on completing
+the documentation while they remain in beta.
+
+I think it's a good way to go, and adheres to the _release early, release
+often_ mantra of open source software.
+
+If you think that's a bad idea (or a very good idea), make sure to tell me
+about it in the comments below.
diff --git a/sites/orgdocs/blog/lets-meet-up-in-2019/index.mdx b/sites/orgdocs/blog/lets-meet-up-in-2019/index.mdx
new file mode 100644
index 00000000000..971614d6d20
--- /dev/null
+++ b/sites/orgdocs/blog/lets-meet-up-in-2019/index.mdx
@@ -0,0 +1,111 @@
+---
+authors: 1
+caption: "As an introvert I don't say this often, but I'd actually like to meet you guys."
+date: '2018-12-10'
+intro: "Let's meet up in 2019! And other end-of-year musings"
+title: "Let's meet up in 2019! And other end-of-year musings"
+---
+
+Because nobody likes a deadline on New Year's Eve, freesewing traditionally
+wraps up its year on December 10th. Which means that now is the time to reflect
+on the past, and look forward to what lies ahead.
+
+
+
+## How do you feel about meeting up?
+
+I'll jump right in: In 2019 I would like to organize a get-together of
+freesewing supporters and contributors to discuss the future of the project,
+exchange ideas and experiences. The invitation is open to everyone, so feel
+free to share this post with others.
+
+I can't give you any details yet. Not because I'm lazy (which I am, but that's
+a different story) but because I want to hear from you what you'd like to
+do/hear/talk about.
+
+So if this sounds like something you'd like to attend, please share your
+thoughts, ideas, and suggestions. I've created [a GitHub issue for the
+matter](https://github.com/freesewing/meetup/issues/1) so that's a good place
+to leave your input. But social media is a good place too.
+
+Input on what, you ask? Well, here's some questions that need answers:
+
+- When are we going to do this? Next week? August? The last blood moon before
+ the reckoning?
+- Where are we going to do this? Your mom's basement? The parish hall of
+ Oostrozebeke? London? Paris? Montreal? Mar-a-Lago?
+- Is this going to be a 2-hour thing, a Thursday afternoon, or a full weekend?
+- What are we going to talk about. What are we going to do? What would you
+ like to see or hear?
+
+Once again, nothing is set in stone, and I'm looking forward to hearing from
+you guys how we could make this memorable.
+
+So don't be shy, just share.
+
+## freesewing 2.0
+
+We have done a lot of work since freesewing.org was launched (only) 16 months
+ago. We've added new patterns, built a new website, and we've translated
+freesewing.org into 4 additional languages in order to remove knowledge of
+English as a barrier to using the site.
+
+But we actually did much more this year. For the last 6 months or so, I've been
+working like crazy on [freesewing
+2.0.](https://github.com/freesewing/freesewing). It's a complete rewrite of
+pretty much every aspect of the project. My reasons for doing so are simple:
+With the project growing as it does, the fact that I only have two hands and 24
+hours in a day is quickly becoming a bottleneck. For freesewing to thrive we
+must make it simpler for other people to [dive
+in](https://developer.freesewing.org), and get involved.
+
+As such, I have embarked on a journey to tackle technical debt, and simplify
+our technology stack. The first big hurdle was [rounded in
+August](/blog/announcing-freesewing-library) when the JavaScript port of our
+core platform reached feature parity. Since then, I have ported [several
+patterns](https://github.com/freesewing/patterns), and currently I am working
+on [a new backend](https://github.com/freesewing/backend) and
+[website](https://github.com/freesewing/website).
+
+The new setup will be faster, more modular, and easier to extend and wrap your
+head around. Which is crucial for our long-term growth.
+
+Unfortunately, this is one of those scenarios where nothing works until
+everything works. So while you can go to
+[beta.freesewing.org](https://beta.freesewing.org) now and kick the tires, it's
+probably going to be a bit of a downer as so much is still broken, or
+unfinished.
+
+So please bear with me as we continue this important behind-the-scenes work.
+Because while I can't tell you when it will be ready, I really feel it's
+something worth looking forward to.
+
+## Oh, and one more thing
+
+I'm more of a looking-forward than a looking-back kinda guy, but as I reflect
+on the year, it is clear to me that the most important thing we did with
+freesewing, was to team up with our patrons.
+
+Twelve months ago , [we launched our patron
+project](/blog/calling-all-patrons). Since then, 65 patrons — spread roughly
+equally among our 3 tiers of patronage — have [stepped forward to support
+freesewing](/patrons/join). The knock-on effects of these people making a
+commitment to support our work have surpassed even my most optimistic hopes.
+
+You may or may not know that I have [made a pledge](/docs/about/pledge) to
+donate all income from freesewing to charity. So this morning I transferred
+our entire revenue for the year (**3162.14 euros**) to [Médecins Sans
+Frontières](https://www.msf.org/) (Doctors Without Borders). Money that will
+go towards bringing relief to some of the most vulnerable people on this
+planet.
+
+You made that happen, and if it brings a fraction of the joy to your heart as
+it does to mine, you'll understand how much your patronage means to me.
+
+I have, for several years now, put a lot of time and effort into freesewing.
+And I can honestly say that I've never worked harder on this than I am doing
+now. But at the same time, it has been easier than ever for me to find the
+motivation to do so. Every contribution, no matter how small, is like a small
+patch in a warm blanket of support under which freesewing can thrive.
+
+So thank you for all this. And let's try to do (even) better next year.
diff --git a/sites/orgdocs/blog/meet-paco/index.mdx b/sites/orgdocs/blog/meet-paco/index.mdx
new file mode 100644
index 00000000000..ed954564eeb
--- /dev/null
+++ b/sites/orgdocs/blog/meet-paco/index.mdx
@@ -0,0 +1,46 @@
+---
+authors: 1
+caption: 'Paco on yours truly'
+date: '2020-08-10'
+intro: 'Meet Paco: Our new unisex pattern for stylish summer pants'
+title: 'Meet Paco: Our new unisex pattern for stylish summer pants'
+---
+
+If you pay attention to our releases, you know that 4 weeks ago we put out our
+new [Titan trouser block](/designs/titan/). Today, I'm happy to announce our
+first _real_ pattern based on it: The [Paco summer pants](/designs/paco).
+
+
+
+These are decidedly unisex — in a good way — and they're also quick to make,
+certainly in comparison to a pair of full-blown trousers like
+[Charlie](/designs/charlie).
+
+Paco comes with an elasticated waist and cuffs, at least by default, for you
+can also choose to draft these with regular hemmed legs.
+
+The default options also include front pockets on the side seams. If you want
+welt pockets in the back, you can chose that as an option. You can also remove
+the side seam pockets of you'd like that.
+
+## Are these just sweat pants?
+
+They could be. If you make these in a knit, than your could certainly use them
+as such. But no, they are not designed to be.
+
+The ones you see in the picture above (full disclosure: I have not taken these
+off since I've made them) aren't knit either. Here's a close-up of the woven
+fabric:
+
+
+
+The difference is in the cut — which is a lot more flattering and stylish that
+your typical sweat pants — and the pockets. Yes, the pockets. Because pockets
+are important.
+
+Both front pockets and (optional) back pockets are anchored at the waist. Which
+means that you can put things in your pockets without them becoming unsightly
+bump that's just dangling around in your trouser leg.
+
+Convinced yet? Then go make some, and make sure to share your pictures :)
diff --git a/sites/orgdocs/blog/open-backend-api/index.mdx b/sites/orgdocs/blog/open-backend-api/index.mdx
new file mode 100644
index 00000000000..ede43d70f54
--- /dev/null
+++ b/sites/orgdocs/blog/open-backend-api/index.mdx
@@ -0,0 +1,50 @@
+---
+title: 'Opening up the FreeSewing backend API'
+caption: 'A Brass Ornate Vintage Key on Black Computer Keyboard, by PixaBay'
+date: '2023-11-03'
+intro: 'The FreeSewing backend API now supports API keys so you can interact with it too'
+authors: 1
+---
+
+Locking out people of your API seems to be the fashionable thing to do these
+days. With places like Twitter -- nay, X -- and Reddit either locking down API
+access or charging for access.
+
+I have made the exact opposite move, and as part of the rollout of the new
+FreeSewing.org I've built a new backend that is open to be used by anyone.
+
+
+
+The backend supports authentication via API keys, and you can generate those
+keys right here in your account settings. You can generate as many as you want,
+and set expiry on them, as well as configure their access level.
+
+## What's the point? Good question. First of all, I think it's the nice thing
+
+to do. But more importantly, I feel that if you are going to put all those
+measurements in FreeSewing, you may want to use them elsewhere, no? So I wanted
+to facilitate that.
+
+I expect this will, at least initially, be very much a niche feature. However,
+I am hopeful that other people working in the realm of parametric design and
+bespoke sewing patterns (or even just people looking for measurements) will
+come to appreciate this and hopefully integrate this with their own scripts or
+tooling.
+
+If nothing else, I know I will.
+
+The [REST API reference documentation lives
+here](https://freesewing.dev/reference/backend), if you're looking for the
+OpenAPI Specification, then go to https://backend3.freesewing.org/docs/
+
+## Use, don't abuse
+
+Our backend API runs in a cloud environment and while I do not charge for
+access to the API, I do need to pay the bills of said cloud provider.
+
+As such, please be mindful of the amount of requests you generate. And if you
+have big plans, please reach out to me to discuss them first.
+
+I will monitor the use of our backend API and we may at any moment decide to
+revoke API keys if I feel the use is beyond what I can or want to support.
+Backend use will be monitored and I may step in
diff --git a/sites/orgdocs/blog/open-for-business/index.mdx b/sites/orgdocs/blog/open-for-business/index.mdx
new file mode 100644
index 00000000000..9f61b28678d
--- /dev/null
+++ b/sites/orgdocs/blog/open-for-business/index.mdx
@@ -0,0 +1,240 @@
+---
+authors: 1
+caption: 'Open 24/7 from now onwards'
+date: '2017-08-25'
+intro: 'Freesewing.org is open for business. That is, the business of giving away free sewing patterns'
+title: 'Freesewing.org is open for business. That is, the business of giving away free sewing patterns'
+---
+
+When I released freesewing core back in March, I did not expect it to take
+another 5 months to finally have a proper front-end for it, but here we are.
+
+From today onwards, [freesewing.org](https://freesewing.org/) is the place to
+be for your made-to-measure sewing patterns.
+
+
+
+If you're new to freesewing, I suggest you start reading [the about
+page](/docs/about/), which hopefully does a half-decent attempt at describing what
+this thing is.
+
+> As of today mmp will no longer allow new users to sign up and after a grace
+> period of a few months, I will shut it down
+
+If you do know what I'm doing here, or you saw _An open-source platform for
+made-to-measure sewing patterns_ at the top of this page and that was enough
+for you to figure it out, this announcement comes after 18 months of work to
+reinvent my previous site, [makemypattern.com](https://makemypattern.com/).
+
+Speaking of which, makemypattern.com has so far generated more than 6500 sewing
+patterns, so I think it's fair to say it's been a good run.
+
+
+
+But [every new beginning comes from some other beginning's
+end](https://www.youtube.com/watch?v=xGytDsqkQY8). So as of today mmp will no
+longer allow new users to sign up and after a grace period of a few months, I
+will shut it down.
+
+Update your bookmarks people, because [freesewing.org](https://freesewing.org/)
+is where it's at.
+
+## Everything is new or different, and hopefully better
+
+The idea of generating made-to-measure sewing patterns based on your
+measurements is the same. Apart from that, pretty much everything you see here
+is different.
+
+I've written before about the choices I've made when building this frontend.
+The [matters of principle and ethics](/blog/privacy-choices/) as wel as [the
+technical stuff](/blog/freesewing-goes-jamstack/).
+
+Today, I won't go into the details of how things work under the hood. Instead,
+I'd like to briefly highlight some of the most significant changes for the
+users of the site. Hopefully, that includes you.
+
+### Patterns vs drafts
+
+I told you earlier that mmp generated over 6500 patterns. I can also tell you
+that mmp has 10 patterns available.
+
+So which one is it, 10 or 6500? Well, it depends on the context. Which is
+ambigious and confusing.
+
+Now, patterns are patterns, and drafts are drafts. That is, a draft is what
+you generate from a pattern. It's a pattern drafted to your exact
+specifications.
+
+
+
+I hope that in using both terms consistently, it will become self-explanatory.
+
+So, for freesewing that means there are 12 patterns available, from which a
+number of drafts have been generated that you can track live on the status
+page.
+
+### New patterns, and blocks
+
+Currently, 12 patterns are available on freesewing.org. All 10 from mmp (note:
+some have had their name changed) plus the new [Sven
+Sweatshirt](/designs/sven) and the [Brian Body Block](/designs/brian).
+
+
+
+The block also existed in the mmp backend, but it wasn't available to you. So
+that's another change, I am making all my blocks (slopers) available.
+
+And more is coming, I currently have 3 patterns and 1 block that I am working
+on. They are not ready yet, and I didn't want to delay the release for them,
+but I hope to have them all out before the end of the year.
+
+What I'm saying is, watch this space. Or better, check the links at the bottom
+of this page for social media accounts to follow.
+
+### Better support for _les autres_
+
+I
+[tried](https://makemypattern.com/blog/imperial-units-have-been-spotted-and-they-might-break-things)
+and [failed](https://makemypattern.com/blog/imperial-units-not-worth-it) to add
+support for imperial units to makemypattern.com.
+
+This time around, both metric and imperial are fully supported. You can set
+your preferred units in your account settings. And in each model you can set
+the units seperately, just in case you happen to sew for people living in
+different parts of the world.
+
+Speaking of different parts of the world, freesewing core fully supports
+different languages. You can get your pattern in a number of languages, and if
+yours is not listed you can help with the translation.
+
+
+
+Arguably, that is a bit of a half-measure when this site is only in English,
+but baby steps, right?
+
+### Compare to catch issues early
+
+One of the common pitfalls is that people take measurements the wrong way.
+
+When they generate a pattern, those incorrect measurements can sometimes really
+mess up the pattern in a way that can be hard to spot if you are not familiar
+with the pattern.
+
+One way to tackle that is with better measuring instructions, which I have
+added. But what I really wanted was a way to make spot issues in an easy way.
+
+
+
+Comparing yourself to others is the fastest way to be unhappy. But in this
+case, there's value to a comparison.
+
+Putting your pattern side by side with a pattern that is known to be correct
+can help you spot any issues that go beyond size differences.
+
+So, comparison is built-in. Every time you generate a draft, you get two
+things:
+
+- Your drafted pattern
+- A comparison of your draft to a range of standard sizes
+
+
+
+It's a way to quickly eyeball your draft for any glaring issues before you
+start working with it.
+
+### Paperless because trees are precious, and printers not a given
+
+Something that I am curious to see whether it will catch on are paperless
+drafts.
+
+Apart from the obvious upside of saving paper, I hope this will allow people
+who don't have access to a printer to use freesewing.
+
+The idea is that you don't have to print your pattern. Instead, you can
+transfer it directly onto fabric or another medium.
+
+To make that possible, the pattern comes with detailed dimensions and a metric
+grid (or imperial grid if you're into that) that helps you transfer all the
+information.
+
+
+
+As I said, I'm curious to see whether this will be useful to people, but I felt
+it was worth a try.
+
+### I've got your back (up)
+
+Also new is that when you draft a pattern, I will keep that draft for you, and
+it will remain available.
+
+
+
+You can come back at any time to re-download the pattern, or tweak it, redraft
+it, or fork it. Yes fork it, which is kinda cool because
+you can also fork patterns from other people after they've shared their draft.
+
+You can also add your own notes to your drafts (and to your models for that
+matter).
+
+### Community-driven blog and showcase
+
+Your makes deserve better than a Flickr album somewhere, so I've added
+showcases to the site. The idea is to have a grabbag of examples here on the
+site of things people have made.
+
+
+
+Obviously, I can't add your work if I don't know about it, so either get in
+touch of make sure to use the #freesewing hashtag when posting about it.
+
+Speaking of posting, the freesewing blog is also open to your contributions if
+you feel you have something to share.
+
+### Badges baby
+
+This is a bit silly, but you can now unlock badges on the
+site. I added the feature initially because I wanted to find a way to thank
+the people who took part in the early access program.
+
+A while ago, I opened up an early access version of the site to those people
+who were interested, and I would like to thank all of you who tried out the
+site, reported issues, or merely gave feedback or encouragements.
+
+Those of you who took part should all get that coveted early access badge. If
+it's missing from your profile, get in touch.
+
+Other badges are available, including one for signing up on launch day. The
+full list of badges is here.
+
+## What happens now?
+
+
+
+Maybe it's just me, but after every major project comes to completion, I tend
+to slide into a black hole of _is this it?_ disillusionment.
+
+I might need a few weeks to bounce back from that, but don't let that stop you
+from giving me your feedback and opinions on the site. And if you
+manage to break something, you can [create an
+issue](https://github.com/freesewing/site/issues/new).
+
+## One last thing I've worked on this for about a year and a half, and
+
+especially the last 11 months or so rather intensively.
+
+Now that it's ready, would you help me spread the news a little?
+
+If you could tell somebody about this or perhaps tweet or write about it, you'd
+do me a real favour.
+
+Thank you
diff --git a/sites/orgdocs/blog/our-newest-design-is-the-tristan-top/index.mdx b/sites/orgdocs/blog/our-newest-design-is-the-tristan-top/index.mdx
new file mode 100644
index 00000000000..25214f0f9aa
--- /dev/null
+++ b/sites/orgdocs/blog/our-newest-design-is-the-tristan-top/index.mdx
@@ -0,0 +1,94 @@
+---
+title: 'Our newest design is the Tristan top'
+caption: 'This Tristan top features front lacing'
+date: '2024-02-09'
+intro: 'Several months ago, I customized the Noble block for an outfit for my local Renaissance festival. Wouter – Noble’s designer – reached out to chat about my top’s construction. One thing led to another, and we agreed to collaborate to publish it as a standalone top design.'
+authors: 19867
+---
+
+Several months ago, I customized the [Noble
+block](https://freesewing.org/designs/noble) for an outfit for my local
+Renaissance festival. Wouter – Noble’s designer – reached out to chat about my
+top’s construction. One thing led to another, and we agreed to collaborate to
+publish it as a standalone top design.
+
+
+
+The result is the [Tristan top](https://freesewing.org/docs/designs/tristan).
+
+Tristan has princess seams that go through the shoulder straps. This is a
+design element from the very first Tristan, where I highlighted the seam by
+using two different fabrics. We built in a lot of options, such as lace-up
+closures on front or back.
+
+Since I so thoroughly enjoyed working with a developer for the first time, I
+thought I could write a little bit about things that made our collab
+successful.
+
+## Designers should think about scale and options, and be available to
+
+developers
+
+Two of the [ways to contribute to
+FreeSewing](https://freesewing.dev/howtos/ways-to-contribute) are to develop
+and design sewing patterns.
+
+So what does that actually look like?
+
+Someone asked this question on Discord, and I thought it was a great one: “What
+should a designer do or know to help make a developer’s job easier?”
+
+Wouter shared some things that came to mind from the projects he’s done with a
+designer:
+
+- Think about how things should scale. When a measurement increases (waist, for
+ instance), the pattern should accommodate for that. But there may be other
+ things that should compensate too, for aesthetic or other reasons. And there
+ are things that should change in other areas of a design when a certain
+ measurement changes.
+
+- Think about dimensions of things in your design as "relative to", instead of
+ distinct numbers. Designs need to scale from doll to giant, so the width of a
+ fly guard needs to be a percentage of the waist, not 5cm.
+
+- What kinds of things do you want to make optional, or adjustable. A lot of
+ things may sound good to you, but not to who wants to make your design for
+ themselves. Pockets and such are a good example of potentially optionable
+ things. The width of a waistband could also be made adjustable to accommodate
+ the taste of the person making the design.
+
+- Be available to the developer. Sometimes they need a decision on something,
+ and it is nice if there is a good understanding on how quickly answers may be
+ forthcoming.
+
+- Have a test garment made, and be willing to make photos of it in different
+ angles. Knowing how a garment is supposed to move and be draped on a body
+ helps with certain aspects of making a design scalable.
+
+- Have a name picked out :wink:
+
+I’ll add that adding a new design to FreeSewing involves a lot of work beyond
+the design and development. The designer should add a showcase and ideally help
+out in other ways such as recruiting testers, making a technical flat, and
+writing sewing instructions. The wonderful FreeSewing community is available to
+help with much of this!
+
+## Developers should work together with designers to solidify ideas into code
+
+So, what should a developer do or know to help make a designer’s job easier?
+
+- Embrace the designer’s vision. Be willing to try things out and iterate as
+ the design evolves.
+
+- Be clear about what is easy or difficult to implement. If a designer asks for
+ a feature that would take a ton of effort to implement or is a bad idea for
+ whatever reason, she may not know. Work together to find an alternative.
+
+- Help with tech support. Walk the designer through [getting started with
+ Gitpod](https://freesewing.dev/tutorials/getting-started-gitpod) and, if it
+ makes sense in your situation, making pull requests or commits.
+
+Wouter, of course, did all of this.
+
+Thanks for having me on the blog, and I hope you enjoy sewing your own [Tristan
+top](https://freesewing.org/docs/designs/tristan)!
diff --git a/sites/orgdocs/blog/privacy-choices/index.mdx b/sites/orgdocs/blog/privacy-choices/index.mdx
new file mode 100644
index 00000000000..a3d950e9692
--- /dev/null
+++ b/sites/orgdocs/blog/privacy-choices/index.mdx
@@ -0,0 +1,100 @@
+---
+authors: 1
+caption: "Picture by Herbert"
+date: '2017-06-16'
+intro: 'The world wide web is increasingly eroding your privacy. Facebook, Google, and an avalanche of ad networks out there are all keeping tabs on your browser tabs. Tracking you on the web, keeping an an eye on the sites your visiting, so that they can gather more info on you, and sell that to advertisers.'
+title: "The choices I've made to protect your privacy. Or why you won't be getting any cookies."
+---
+
+The world wide web is increasingly eroding your privacy. Facebook, Google, and
+an avalanche of ad networks out there are all keeping tabs on your browser
+tabs. Tracking you on the web, keeping an an eye on the sites your visiting, so
+that they can gather more info on you, and sell that to advertisers.
+
+Pardon my French, but I hate that shit.
+
+
+
+Facebook, Google, and an avalanche of ad networks out there are all keeping
+tabs on your browser tabs
+
+Building this site from scratch has been a great opportunity to reflect on how
+to do things.
+
+To make sure I'm not contributing to the problem, I've made the following
+choices:
+
+## Encryption everywhere
+
+Let's run everything over https. That's just [common
+sense](https://letsencrypt.org/) in 2017.
+
+## No ads
+
+This one is another no-brainer. The number 1 tracking pest online are ad
+networks, and I want them nowhere near this site.
+
+Fortunately, that doesn't pose a problem given that we don't play by the _Give
+something for free, then sell people's data_ rules of the web.
+
+## No external code
+
+This site loads no external JavaScript code. None. Which does mean I had to
+rethink a few things that typically require external code.
+
+There is no Facebook Like button or Twitter integration. We still have social
+sharing under our blog posts (hint hint) but it's the plain vanilla HTML
+variety that prevents tracking.
+
+In the same category, there's no social logins. Sure a _Login with Facebook_
+button is handy, but also kind of a nightmare when you consider what it does to
+your privacy.
+
+For a statically generated site like this ([see this post about JAMstack for
+details](/blog/freesewing-goes-jamstack/)) [Disqus](https://disqus.com/) is
+pretty much the de facto standard for comments. But Disqus is pretty awful when
+it comes to tracking, so that was a big no-no to me.
+
+A similar story for authentication where I considered
+[Auth0](https://auth0.com/). There too, I was concerned about tracking, so I
+decided against it.
+
+I ended up just biting the bullet and implemented authentication and comments
+myself. Time will tell of that was a good trade-of.
+
+## No cookies We don't use any cookies. Obviously no third-party cookies, but
+
+not even cookies of our own.
+
+Instead, we use local storage which is better because unlike cookies, it
+doesn't send your info on every request.
+
+## No analytics I ran [Google Analytics](https://analytics.google.com/) on
+
+[makemypattern](https://makemypattern.com/). It's powerful, but obviously a
+tracking nightmare. So I wasn't going to have that either.
+
+This issue is further complicated by the fact that this static site is hosted
+by [Netlify](https://www.netlify.com/). So I don't have server logs and can't
+run any analytics server-side.
+
+For the most part, I decided to just go without analytics. I don't need to know
+how many people are visiting this site. I still know how many user accounts are
+created, and how many patterns are generated, which should be fine indicators
+for the site's overall well-being.
+
+But there's one thing that wanted to keep from analytics: the referral logs.
+It's one of life's small pleasures to go through that list and discover
+[somebody](https://www.reddit.com/r/freepatterns/comments/4zh5nr/is_there_software_to_generate_sewing_patterns/)
+[linked](http://www.makery.uk/2016/08/the-refashioners-2016-joost/)
+[to](https://closetcasepatterns.com/week-sewing-blogs-vol-98/)
+[you](https://opensource.com/life/16/11/free-open-sewing-patterns).
+
+Here too, I've implemented my own bare-bones solution. If you land on this site
+from an external link, we'll report that referral to our own API. Which means
+we still get the referral info, but no tracking.
+
+Perhaps it's just vanity, but when I'm having a bad day, those referral logs
+make me feel better (when it's not just Russian referral spam). I might be
+wrong on this one, but I would wager that a lot of people who have their own
+blog can relate to that.
diff --git a/sites/orgdocs/blog/react-17/index.mdx b/sites/orgdocs/blog/react-17/index.mdx
new file mode 100644
index 00000000000..1321ec02c83
--- /dev/null
+++ b/sites/orgdocs/blog/react-17/index.mdx
@@ -0,0 +1,138 @@
+---
+authors: 1
+caption: 'Hat-tip to nappy.co for the picture'
+date: '2021-05-24'
+intro: 'FreeSewing 2.16 comes with React 17 and Webpack 5'
+title: 'FreeSewing 2.16 comes with React 17 and Webpack 5'
+---
+
+We released FreeSewing v2.16 today.
+To the casual observer, there's not that many changes.
+And for users of this website, that's certainly the case.
+
+Scratch the surface however, and you'll find a lot of work went into this release.
+
+
+
+Let's look at what's been changed:
+
+## create-freesewing-pattern
+
+The biggest change is related to
+[create-freesewing-pattern](https://www.npmjs.com/package/create-freesewing-pattern)
+and the development environment it sets up for you.
+
+We use [create-react-app](https://www.npmjs.com/package/create-react-app) (aka
+
+CRA) under the hood, and FreeSewing 2.16 is our first release
+to ship with [React](https://reactjs.org/) 17, CRA 4, and [Webpack](https://webpack.js.org/) 5.
+
+That migration to CRA 4 (and its companion
+[react-scripts](https://www.npmjs.com/package/react-scripts) 4) is significant
+be because it has a whole new way of hot-reloading your application, called
+`FAST_REFRESH`.
+
+The downside is that it will only work for _local components_ in your app. And
+since our development environment loads your pattern code as a (local)
+dependency, it does not reload when you change your pattern file.
+
+To make matters worse, Webpack 5 will keep a cache in memory of the built
+dependencies. So even restarting the development environment won't show the
+changes you've made to your pattern.
+
+Obviously, that ain't cool. And while there's certainly ways to configure
+Webpack to behave as we want it to, CRA doesn't allow for that sort of
+customization. You can always eject the CRA configuration (or fork
+react-scripts) but that would create too much maintenance overhead.
+
+## The FreeSewing development environment: Now with fast refresh
+
+We want the development environment to reflect any changes you make to your
+code. And we'd like to use the new fast refresh feature because it's pretty
+great.
+
+Unlike the previous hot-reload that would just reload the page, fast refresh
+can dynamically update a changed React component.
+
+That's an important distinction because a page reload will reset the
+development environment to the state that's stored in local storage. That
+includes the most important things like measurements, but it does not include
+what you were looking at in the development environment, pattern configuration,
+and so on. So each reload you'd need a few clicks to get back to what you were
+doing, which was a bit of an annoyance.
+
+Fast refresh has the potential to fix that, and to enable it all we need to do
+is import the pattern as a local component. Alas, CRA uses Webpack's
+`ModuleScopePlugin` which forbids importing local code from outside the
+`example/src` folder.
+
+To sidestep that issue, running:
+
+`bash npx create-freesewing-pattern `
+
+will now symlink `example/src/pattern` to the root folder of your pattern. That
+brings the code into the local scope, so it can be correctly loaded and
+fast-refreshed.
+
+There's another advantage to this approach: Where previously you had to run two
+terminals — one to build/watch the pattern code and one to build/watch the
+development environment — you now need to load just one because the development
+environment will also build/watch the pattern code.
+
+Developers rejoice 🎉
+
+## Migration of react-markdown 5 to 6
+
+Another major change is
+[react-markdown](https://www.npmjs.com/package/react-markdown). We've already
+upgraded it on our websites (part of the migration to Gatsby v3 that we
+completed earlier this month), but we're also using it in our development
+environment.
+
+It's a relatively trivial change where the markdown content is no longer passed
+in as an explicit prop:
+
+``jsx ``
+
+But rather via the special _children_ prop.
+
+`jsx Hello, I am **Markdown** `
+
+## Upgraded rollup plugins
+
+The following rollup-plugins also had some major changes:
+
+- rollup-plugin-terser 6 => 7
+- @rollup/plugin-commonjs 14 => 19
+- @rollup/plugin-node-resolve 8 => 13
+
+This should not cause any issues unless perhaps you're bundling your own
+freesewing patterns. If you hit any snags, [let us
+know](https://discord.freesewing.org/).
+
+## Defaults for browserlist
+
+We now use the recommended `defaults` setting for
+[browserlist](https://github.com/browserslist/browserslist) which controls
+browser support for cross-compilers such as [Babel](https://babeljs.io/).
+
+We used to have a set of custom settings but there is no real reason for us to
+not stick to the defaults.
+
+This could potentiality impact browser support for some really old browsers,
+but chances are this too will pass under the radar.
+
+## Summary
+
+Not so much has changed in the FreeSewing code itself, but there's a bunch of
+changes that impact the dependencies and bundlers.
+
+These are typically the hardest and most esoteric things about any JavaScript
+project.
+
+If you run into any problems after upgrading to FreeSewing v2.16, please [hop
+onto our Discord server](https://discord.freesewing.org/) so we can help you
+out.
+
+That being said, as long as you use the same version of different FreeSewing
+packages, you should not have any problems.
diff --git a/sites/orgdocs/blog/roundup-2017-09/index.mdx b/sites/orgdocs/blog/roundup-2017-09/index.mdx
new file mode 100644
index 00000000000..2be488c48ed
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2017-09/index.mdx
@@ -0,0 +1,167 @@
+---
+authors: 1
+caption: 'Your new login background for the month of october'
+date: '2017-09-30'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - September 2017: Simon complications, email issues, and donations are up this year.'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at september, and a bit of august
+
+For this first edition, I'm looking back a bit further than one month, because
+[this site launched at the end of August](/blog/open-for-business/), so I'm
+including that week in this monthly roundup.
+
+### My name is Simon, and I'm complicated
+
+Since the launch, there's been [3 new path releases of freesewing
+core](https://github.com/freesewing/core/releases) --- you know, the thing that
+actually generates your sewing patterns --- and all of them were due to issues
+with [the Simon Shirt pattern](/designs/simon).
+
+Full details are available in [the
+changelog](https://github.com/freesewing/core/blob/develop/CHANGELOG.md), but
+here's the gist of it:
+
+- The seam allowance at the hem was incorrect when the lenthBonus was very
+ low.
+- The cut in the sleeve for the placket was too short
+- There was a problem with the seam allowance at the buttonhole placket
+- The sleeve length bonus was counted double
+- The hip measurements/ease was not taken into account; The chest
+ measurement/ease was used instead
+- A number option defaults were tweaked
+
+Thanks to Tatyana and Stefan for reporting
+these issues. You get that funky bug badge:
+
+
+
+#### What's your problem Simon?
+
+That these issues surface in Simon is not a coincidence. The pattern comes with
+a whopping 41 options that allow you to control pretty much every aspect of
+your shirt.
+
+Managing all those different combinations in the code leads to a lot of
+complexity. And were code complexity rises, bugs appear.
+
+
+
+#### Is it time for an overhaul? Simon is a port of the Singular Shirt pattern
+
+of MakeMyPattern.com. Back there, making a differently styled shirt would have
+involved copying the code over, making changes, and then maintaining two
+slightly different variations for all eternity.
+
+Things are better here at freesewing, where inheritance is baked in the system.
+So I could (and should perhaps) have a basic shirt pattern, and then branch
+that out into a bunch of differently styled shirt patterns.
+
+- Brian Body Block
+ - Basic shirt pattern
+ - Casual shirt pattern
+ - Formal shirt pattern
+ - Some other shirt pattern
+
+It would not only cut down on code complexity, it would arguably also be more
+intuitive to see a bunch of differently styled shirt patterns, rather than have
+only one pattern and then have 41 options to juggle.
+
+A full Simon overhaul is going to be a bit of work, but it is possible. I'd be
+interested to hear your thoughts on the matter.
+
+## Dealing with email delivery issues I added a workaround for those of you who
+
+had trouble getting the registration emails. Basically, people with an email
+account managed by Microsoft.
+
+You can read [my blog post on the matter](/blog/email-spam-problems/) for all
+the details, but basically if you have one of those addresses, you should get
+those emails now. The only downside is that you might get them twice.
+
+## Referrals When people link to your site, and visitors click that link,
+
+that's called a referral. The bloggers among you might be familiar with
+skimming through your Google Analytics reports to see who's been linking to
+you.
+
+This site does not use Google Analytics --- there's [a blog post with details
+on that](/blog/privacy-choices/) too --- but still captures referrals. The
+overview of recent referrals is available for all to see on the status
+page.
+
+Linking to freesewing.org is obviously a nice thing to do, so I keep an eye on
+the referrals, and if a site shows up that belongs to a user, you get the
+Ambassador badge.
+
+
+
+It's a small way to say thank you for spreading the word about freesewing.
+
+## Donations During september, we passed last year's donations amount, so it's
+
+nice to see I'll be able to send more money to
+MSF this year than in 2016.
+
+You can always keep track of the donations on the donations pledge
+page, but here's the current status:
+
+
+
+## More download formats
+
+I've also added additional formats to the draft download page. You now have a
+choice of SVG, PDF, letter-PDF, tabloid-PDF, A4-PDF, A3-PDF, A2-PDF, A1-PDF,
+and A0-PDF.
+
+## The quality control badge I've added the quality control badge for things
+
+like reporting (or fixing) typos, broken links, grammar, and other small
+improvements.
+
+
+
+These might not seem like an earth-shattering contribution, but they are
+important nevertheless.
+
+On the spectrum between endlessly toiling over the perfect content before
+publishing it, or getting it out fast warts and all, I lean heavily towards the
+latter. So I kinda count on you guys to let me know when I messed up.
+
+## Looking ahead to october
+
+There are 5 patterns I am currently working on. And all of them are ready to
+the point where I need to make them to verify that they work as intended. First
+a muslin, and then the real thing.
+
+That's a bit of a bottleneck for me because I have a long commute, so my sewing
+time is typically limited to the weekends.
+
+The only way I see to speed up the process of getting patterns released is to
+have people join in with the pattern testing. I don't think it's something I
+can ask people to do, because this is early stage testing. Not to mention that
+I have nothing to offer them to sweeten the deal. What am I going to give you,
+a free pattern?
+
+Still, on the off chance that some of you want to help out by making a muslin
+and letting me know how it went, here's what's currently on my drawing board:
+
+- A trouser block for men that should be better than Theo(dore)
+- A block for selvedge jeans for men
+- A zip-up hoodie for men
+- A wintercoat
+- A unisex leggins pattern
+
+Should any of you want to make one of these as a test, let me know,
+it would really help me out.
diff --git a/sites/orgdocs/blog/roundup-2017-10/index.mdx b/sites/orgdocs/blog/roundup-2017-10/index.mdx
new file mode 100644
index 00000000000..698b7c4f7b0
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2017-10/index.mdx
@@ -0,0 +1,109 @@
+---
+authors: 1
+caption: 'Your new login background for the month of november'
+date: '2017-10-31'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - October 2017: Huey, Roy, community building and pattern cover pages'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at october
+
+In retrospect, I should have made the october background image haloween themed.
+I guess I'll try to remember that for next year.
+
+### Meet Huey
+
+First up: a new pattern. The Huey Hoodie is [now available](/designs/huey) in
+beta.
+
+
+
+Huey is a zip-up hoodie, have a look at [the Huey showcase
+page](/showcase/tags/huey) for examples. [The announcement blog
+post](/blog/huey-hoodie-beta/) also explains what it means for a pattern to be
+in beta.
+
+### Community building
+
+Freesewing is slowly evolving into a communal effort. The [freesewing chat
+room](https://chat.freesewing.org/) is turning into a rather chatty place,
+which is really wonderful to see.
+
+Furthermore, a number of people are taking a stab at designing their own
+patterns with freesewing. I think that's very exciting and I'm looking forward
+to the day we'll all be able to enjoy the fruits of that labour.
+
+Meanwhile, people are also helping out with the site, suggesting fixes and
+improvements left and right, and [Wouter](/users/user?id=132) even added an entire
+page on git basics which should be a great stepping stone
+for people who like him want to get involved, but lack prior experience with
+Git (and GitHub).
+
+Needless to say, I am very appreciative of all contributions big and small. If
+you'd like to get involved, [come say hi](https://chat.freesewing.org/).
+
+### Cover pages for patterns
+
+This is something I'm [kind of excited
+about](https://www.instagram.com/p/Ba6qVTFDZv_/): but I've made [some
+changes](https://github.com/freesewing/tile/commit/9d2b11e7a9f0d08b890a04eced989f0b432d2c53)
+to [freesewing tile](https://github.com/freesewing/tile) to add a cover page to
+patterns.
+
+The tile repository holds software that turns your pattern into multiple pages
+you can print on your printer (so called tiling, hence the name).
+
+You need to sticky-tape those pages together, and even though there are
+markings on the pages to help you with that, it would be nice to have an
+overview page that shows the entire pattern and how it's layed out over the
+different pages.
+
+Problem is, because freesewing patterns are drafted on the fly, based on your
+measurements, there's no way to know how big or small your pattern will be. In
+addition, you can pick a variety of paper sizes which will also influence how
+the pattern gets tiled.
+
+
+
+So for the longest time, I felt it was simply not possible to add an coverpage
+with an overview of how everything needs to be stuck together. But everyday is
+a school day, and I'm glad to announce that starting of today, when you
+download a tiled PDF, it will come with a cover page detailing the layout.
+
+This is obviously very new code, so if for some reason you run into trouble
+with the tiler, make sure to [let me know about
+it](https://github.com/freesewing/tile/issues/new).
+
+### Roy will design cover images for patterns
+
+I've made some changes to [the patterns page](/designs/) because I felt that
+the previous layout wasn't doing the patterns justice.
+
+While the layout is a bit better now (I think) the pictures are still a bit
+_meh_ and they don't really say _freesewing_.
+
+So, I've talked to Dutch illustrator [Roy Van der
+Hel](https://royvdhel-art.deviantart.com/) (who also signed for our
+measurements illustrations) and I'm glad to be able to share with you that he's
+agreed to do illustrations for the different freesewing patterns.
+
+Roy will be working on these on and off, but I hope you'll start to see more of
+his work here relatively soon.
+
+## Looking ahead to november
+
+Last month I said I was working on 5 patterns. One of those (Huey) has been
+released now and these days I'm occupied making a test garment for another
+pattern on that list: a wintercoat.
+
+I don't want to give away too much about this yet, because it's kind of
+exciting, but I hope to be able to show more of this during the month of
+november. If for no other reason that it's getting cold and I could really do
+with a warm coat.
diff --git a/sites/orgdocs/blog/roundup-2017-11/index.mdx b/sites/orgdocs/blog/roundup-2017-11/index.mdx
new file mode 100644
index 00000000000..1f8ed90e08b
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2017-11/index.mdx
@@ -0,0 +1,182 @@
+---
+authors: 1
+caption: 'Your new login background for the month of December'
+date: '2017-11-30'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - November 2017: Benjamin, on-boarding, showcases, and our on-demand tiler'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.
+
+
+
+## Looking back at November
+
+November has been busy around here. While lot of the work has been happening
+behind the scenes -- more on that in December -- there's also a list of things
+that are already rolled out.
+
+Here's the most important changes:
+
+### Meet Benjamin  First
+up: a new pattern. The Benjamin Bow tie is [now available](/designs/benjamin)
+in beta.
+
+
+
+Benjamin is a bow tie, and as I explained in [the announcement blog
+post](/blog/benjamin-bow-tie-beta/) this release is kind of a big deal.
+
+That's because it's the first ever pattern to have been contributed by the
+community. More specifically, it was [Wouter](/users/user?id=132) who
+designed and programmed the pattern.
+
+So shout-out to him for being the first person to contribute a pattern. And if
+you [hang around in the freesewing chat room](https://discord.freesewing.org/),
+you know that he's already started working on his next pattern.
+
+### Better user on-boarding
+
+I've changed the sign-up flow a bit to help people discover all the options
+they can set in their account.
+
+
+
+The change is two-fold. First you are now auto-magically logged in when you
+click the email confirmation link for your account.
+
+Second, we send you to the welcome page and guide you through a few steps to
+finalize your account setup. Specifically:
+
+- Configure your units
+- Configure your username
+- Configure your profile picture
+- Configure your social media accounts
+
+(More on that last one later in this post)
+
+All of these settings are available in [your account](/account), but people
+frequently don't realize that. With the new sign-up flow, that should no
+longer be the case.
+
+> ##### Hey, I never got a handy welcome page like that At any time, you can go
+>
+> to [the welcome page](/welcome) to check or update your account settings.
+
+### Mixed units warning
+
+One of the issues that drove the changes to the on-boarding of new users was
+the issue of mixed units.
+
+Mixed units is when your account is configured in metric, but your model is set
+to imperial (or vice-versa).
+
+
+
+This is supported. If you make things for other people in other parts of the
+world, this flexibility is handy.
+
+But it's a rather niche scenario, and more often than not it's due to the user
+not realizing their units are set as they are.
+
+So now, when you draft a pattern with mixed units, we'll show you a warning box
+to make sure that you do actually intend to use mixed units.
+
+### Per-pattern default seam allowance The roll-out of Benjamin raised another
+
+issue: standard seam allowance.
+
+For a bow tie, the current standard seam allowance (1cm for metric, 5/8" for
+imperial) is too large. So Wouter wanted some way to change the standard seam
+allowance.
+
+
+
+So, that's what we implemented. Going forward, patterns can set the standard
+seam allowance (for both metric and imperial). If they don't, we revert to
+1cm|5/8" as before.
+
+Note that this is only the default seam allowance. When you draft a pattern you
+can still set the seam allowance to whatever you like.
+
+### Social media accounts
+
+If you clicked the link to the welcome page, or if you check out the settings
+in [your profile](/profile) you'll see that you can now enter your username for
+a few other sites:
+
+- Twitter
+- Instagram
+- GitHub
+
+No need to worry, [your privacy is in good hands here](/blog/privacy-choices/).
+I am not interested in collecting your data, and the only reason this is here
+is because people [asked for
+it](https://github.com/freesewing/site/issues/184).
+
+![After Quentin added his Instagram and GitHub accounts to his settings, his
+comment now have links to those accounts])comments-social.png)
+
+Links to your social media accounts will appear on your profile page and along
+your comments.
+
+### More showcases
+
+We've added a bunch of new [showcases](/showcase) this month. Every maker that
+has one or more showcases here on the site has their own page that lists all
+their showcases.
+
+
+
+This month, we've updated those pages with links to the blog and/or social
+media accounts of these makers. The idea is that people who feel you've made a
+cool thing can find out a bit more about you.
+
+### Referrer policy, or why you never get any visitors from freesewing.org
+
+We've rolled out the strictest referral policy: `no-referrer`. It blocks all
+referrer information.
+
+This means that if you run Google analytics -- or some other website statistics
+tool -- on your blog or website, you won't see traffic from freesewing.org.
+
+
+
+That doesn't mean that people aren't clicking links to your blog, but we simply
+block the referrer header from being set, so Google has no idea where people
+come from.
+
+Why you ask? Because privacy.
+
+### On-demand tiler When you draft a pattern here, you can download it in a
+
+number of formats, all neatly tiled so you can print them.
+
+You can also download the SVG source code to make further changes to the
+patterns. But once you have made those changes, there's no easy way for you to
+get it as a printable PDF.
+
+Well now there is. We've added an on-demand tiler to the site
+that does just that. Upload your SVG, pick the format of your choice, and
+we'll tile it for you.
+
+## Looking ahead to December
+
+I had hoped to release my winter coat pattern during November, but alas that
+didn't work out. I'm actually still making it, and when it's ready there will
+be a few tweaks required to the pattern before I can release it.
+
+But that news will have to play second fiddle to our wrap up of the year
+(traditionally on December 10th here). It's not just about what happened over
+the last 12 months, we'll also be rolling out some changes to safeguard the
+future of this project.
+
+10 more sleeps :)
diff --git a/sites/orgdocs/blog/roundup-2017-12/index.mdx b/sites/orgdocs/blog/roundup-2017-12/index.mdx
new file mode 100644
index 00000000000..8fa6e494fb5
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2017-12/index.mdx
@@ -0,0 +1,192 @@
+---
+authors: 1
+caption: 'Your new login background for the month of January'
+date: '2017-12-31'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - December 2017: Patrons, Bent, Carlton, Florent, and the looming Inkscape issue'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at December As you may or may not know, for freesewing the year
+
+starts on December 10th. This way, I only have to write this blog post on New
+Year's eve, rather than roll out a bunch of new changes.
+
+What changes? I'm glad you asked:
+
+### We have patrons now
+
+This was really big news for me, and something that we had been working on
+behind the scenes for a good while. But 3 weeks ago, we finally unveiled our
+new patron system.
+
+The [announcement blog post](/blog/calling-all-patrons/) has all the details,
+plus an open-hearted look at the financial side of this project. If you haven't
+read it yet, I recommend it.
+
+
+
+The gist of it is that we are building a bedrock of loyal supporters to ensure
+a sustainable future for freesewing.org, our code, our patterns, and our
+community.
+
+These people are our Patrons, and they support us with a small monthly
+contribution. We have three tiers, and they all come with their own prices and
+perks. You can find all the info on [the patrons sign-up page](/patrons/join).
+
+We are 3 weeks in now, and so far [25 people](/patrons) have shown their
+support for this project by becoming a patron.
+
+Needless to say, this is truly wonderful news that we're all very excited
+about.
+
+### A logo tweak
+
+The roll out of our patron system had an unforeseen side-effect: We needed to
+simplify the freesewing logo a bit so we could order all that swag with the
+logo on it.
+
+ 
+
+Turns out there's a limit to the amount of detail you can get embossed into
+jeans rivets or buttons, or woven into labels. (that's just some of the swag
+our patrons get).
+
+So, we've streamlined the logo a bit. It's been on the site and our social
+media accounts since December 10th, but we hadn't updated our auto-generated
+avatars yet. That's something we've managed to squeeze in in the last hours of
+December (and the year) so that's good too.
+
+### New patterns
+
+We've had three (yes 3) pattern releases in December.
+
+[Florent](/designs/florent) is a flat cap pattern that was contributed by
+[Quentin](/users/user?id=241). The [announcement blog
+post](/blog/florent-flat-cap-beta/) has all the details.
+
+Then later this month, we published [Carlton](/designs/carlton) and
+[Bent](/designs/bent), the block it's based on. I've worked with
+Anneke to make this pattern happen, and a
+female version of the coat is coming. You know what, you should probably read
+all about it [in this blog post](/blog/announcing-carlton-and-bent/).
+
+### Model name and draft reference are now printed on every pattern part
+
+We got a request to add the model and draft info to the printed pattern. People
+who were using a given pattern for different people (imagine making a hoodie
+for yourself and your partner) got confused about which parts belonged to which
+draft.
+
+That seemed like a good idea to us, so we've added this info to the patterns.
+If you have an older draft in your account, you can simply re-draft it to
+update it.
+
+### Data export
+
+We've grouped a few harder to find pages in a new Tools entry in the
+account section of the menu.
+
+It contains a link to our RSS feed of the blog, our on-demand tiler, and a link
+to remove your account, but none of those are new, we've just grouped them so
+they'd be easier to find.
+
+What is new is the ability to export all the data we have on file for you.
+
+This work is in preparation of the changes we'll be making next month, which
+brings me to:
+
+## Looking ahead to January
+
+There's new patterns in the pipeline, but I'm not ready to commit to a deadline
+for these yet, mostly because we have a bunch of other stuff on our plate.
+Including:
+
+### Open data and privacy talk
+
+We had a bit of a debate about whether or not we should publish anonymized
+measurements data here at freesewing.
+
+I won't repeat everything here, but [our
+tweet](https://twitter.com/j__st/status/941586171158777856) and [Instagram
+post](https://www.instagram.com/p/Bct2jUEnuS9/) on the topic get a lot of
+responses.
+
+A vast majority of people supports this idea, and as such we have plans to move
+ahead with it. However, if we do this, we want to do it right and completely
+in the open. So expect a blog post on the matter shortly.
+
+The questions that came up as we were discussing the possibility of publishing
+this data tend to revolve around privacy. We are --- and remain --- committed
+to protecting the privacy or all our users and visitors, and have written about
+[the choices we have made to guarantee your privacy](/blog/privacy-choices/).
+
+Thinking about these issues made us realize that we want to provide a more
+iron-clad guarantee than a blog post. So, we will draft and publish a privacy
+notice in line with the upcoming GDPR.
+
+Don't know what GDPR is? Good. Keep reading.
+
+### GDPR compliance
+
+The GDPR is the [General Data Protection
+Regulation](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation)
+of the European Union. It replaces the _Data Protection Directive_ and is a
+more ambitious piece of data protection legislation.
+
+The GDPR will become active in May 2018, and by that time, freesewing will be
+ready for it. Specifically, we will publish a privacy notice that outlines
+exactly what happens to your data, and we will make certain that all your
+rights are respected.
+
+We are still planning how exactly we will tackle this, and for the most part,
+these will be cosmetic changes and that won't change anything about freesewing
+as such.
+
+But we value your privacy, and we want to practice what we preach, so we'll be
+making sure to do what's right.
+
+### Core issue #204 - The Inkscape default units quandary
+
+Under the heading _Important changes_ the [release notes for Inkscape version
+0.92](http://wiki.inkscape.org/wiki/index.php/Release_notes/0.92#Important_changes)
+list:
+
+> The default resolution was changed from 90dpi to 96dpi, to match the CSS
+> standard.
+
+This seemingly trivial update to the open source SVG editor will have some
+profound ripple effects for freesewing.
+
+While it won't impact our code as such, we use Inkscape to turn the SVG
+patterns we generate into the PDFs that you print at home. And if now Inkscape
+thinks that one inch no longer holds 90, but 96 pixels, your patterns will be
+scaled incorrectly, which is kind of a big deal.
+
+Given that we can continue to run an older build of Inkscape to do our bidding,
+this doesn't mean things are on fire just yet. But it's a problem we will have
+to tackle sooner rather than later.
+
+That's because even when we fix it, once we start using the new Inkscape, it
+will still incorrectly handle the drafts that have been generated prior to the
+fix and that are still stored in people's profiles. Needless to say, I see a
+lot of mucking about with the SVG viewbox in my future.
+
+There's other changes in the newest Inkscape too that can potentially wreak
+havoc. Most likely to cause a stink-up is the new way the _line-height_
+attribute will be handled in text. Less dramatic, but still inconvenient.
+
+While these changes add an unwelcome number of entries to our to-do list, it's
+worth pointing out that the Inkscape maintainers make these changes because
+they thing it's the right thing, and that going forward, this will be the
+better option.
+
+So, in the same spirit, we'll make sure to follow suit.
+
+But that's for next year.
diff --git a/sites/orgdocs/blog/roundup-2018-01/index.mdx b/sites/orgdocs/blog/roundup-2018-01/index.mdx
new file mode 100644
index 00000000000..d0bd146372c
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-01/index.mdx
@@ -0,0 +1,150 @@
+---
+authors: 1
+caption: 'Your new login background for the month of February'
+date: '2018-01-31'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - January 2018: Inkscape DPI, version awareness, Bail, and Carlita'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at January
+
+
+
+It might be [the record-breaking depressing weather in my neck of the woods
+](https://www.theguardian.com/world/2018/jan/19/aint-no-sunshine-winter-darkest-europe),
+but I feel like January took a lot out of me. So let's see if we have at least
+something to show for it.
+
+### The Inkscape default units quandary
+
+At the start of the year, we rolled out core v1.3.0 to address [issue
+#204](https://github.com/freesewing/core/issues/204) aka the the Inkscape
+default units quandary.
+
+It was a bit of an unusual fix because our hand was forced due to upstream
+changes made by the Inkscape developers. In addition, we didn't only have to
+adapt our code, but also had to backport the changes to all your existing
+drafts.
+
+If you were blissfully unaware of the whole thing, we wrote a blog post about
+it: [Freesewing core v1.3.0 is out; Comes with fixes so good that we
+back-ported them to all your
+drafts](https://joost.freesewing.org/blog/core-v1.3.0-is-out/).
+
+### Version awareness
+
+We now keep track of which version of core generated your draft. We roll out
+fixes and improvements all the time. So the drafts you have stored in your
+profile might be outdated.
+
+You are now informed about this, both on the draft's page itself and on your
+list of drafts. A simple redraft will upgrade them to the latest version.
+
+:::note Long-term vision for versioning
+
+This solution is a step up from the previous situation, but it doesn't allow
+for very granular version control. If you have 10 different Simon drafts
+stored in your profile, and we bump the core version number because we made a
+tweak to Carlton, all your drafts are marked as outdated, even though the
+changes don't impact them.
+
+With only a single core version number to depend on, there's no obvious way
+for us to keep track of what changes impact what pattern.
+
+The long-term plan here is to have a core version number and a pattern
+version number. This way, a version bump in one pattern will not impact
+other patterns.
+
+A version bump in core will still impact all patterns, but there should be
+far fewer core versions once we take all patterns out of core.
+
+The idea is that every pattern will be in its own repository, and we'll use
+composer to manage them as dependencies.
+
+But this is a long-term idea that won't be implemented until after we rewrite
+core. Yes, that's another long-term idea.
+:::
+
+### Bail for error handling
+
+In the first half of the month, we tried Rollbar for error handling and
+reporting. While we liked the functionality it provided, we weren't too happy
+about the possible impact on your privacy of sending that kind of data to a
+third party.
+
+So, we decided to write our own poor man's rollbar called Bail. Bail is now
+used in our data and core backends, so when things break, we know about it.
+
+This effort also lead to a 2-week side-quest to write tests for our data
+backend. All details: Introducing freesewing bail: A poor man's rollbar ---
+because privacy (link removed)
+
+### Carlita is here
+
+A couple of days ago, we released the [Carlita Coat](/designs/carlita), the
+womenswear version of our Carlton coat.
+
+If you rushed out to get your hands on Carlita, it's good to know that she was
+released as part of core v1.6.0 and we're now at v1.6.3, and that is mostly due
+to fixes and tweaks in Carlton/Carlita.
+
+If you've got an earlier version of the pattern, please redraft. If you've
+already printed it, perhaps have a look at [the
+changelog](https://github.com/freesewing/core/blob/develop/CHANGELOG.md) to
+figure out what has changed.
+
+If you check the changelog, you'll also see that we started the month on core
+v1.2.9 and are now running core v1.6.3, so I don't think it's just an idea that
+it was a busy month.
+
+## Looking ahead to February
+
+February is a short month so it's probably best to manage expectations. But
+here's what I have in mind for it:
+
+### Carlton/Carlita documentation
+
+Quite frankly, this is like pulling teeth to me, so don't expect it to be
+finished by the end of February, but I should at least have made some progress
+on the documentation for the Carlton and Carlita patterns.
+
+On a related note, the increasing popularity of this site means I'm a lot more
+occupied with various questions, and small issues that need my attention.
+
+All that feedback is a good thing for it is how we improve things around here.
+But I do notice that it is becoming increasingly difficult to dedicate a larger
+chunk of time to one specific thing. Which is really what you need when
+tackling larger tasks such as writing documentation or designing new patterns.
+
+I don't really have a solution for that, I'm just making the observation.
+
+### Maybe a Blake Blazer release
+
+I have a jacket pattern on my drawing board that's been there since the summer
+(it's called the Blake Blazer). I really should just take out some time to
+wrap it up and publish it, but I've been reluctant to do so because I can't
+seem to find the time to actually make the jacket.
+
+I've used the pattern before for [my refashioners make this
+year](/blog/the-refashioners-2017/), but that's not exactly a very
+representative example.
+
+I don't think I'll find the time to make a jacket in February, but perhaps a
+muslin is enough to publish it in beta.
+
+### FOSDEM
+
+
+
+[FOSDEM](http://fosdem.org/) --- the Free and Open Source Developers' European
+Meeting --- is on the first weekend of February in Brussels.
+
+I'm planning to be there on Sunday, so if you're attending too, let me know or
+come and say hi.
diff --git a/sites/orgdocs/blog/roundup-2018-02/index.mdx b/sites/orgdocs/blog/roundup-2018-02/index.mdx
new file mode 100644
index 00000000000..f93d7da9a42
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-02/index.mdx
@@ -0,0 +1,110 @@
+---
+authors: 1
+caption: 'Your new login background for the month of March'
+date: '2018-02-28'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - February 2018: Core 1.7.0 with Sven, Carlton, and Carlita improvements. Plus GDRP, vim, and Jaeger'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at February
+
+I had this secret ambition to release a new pattern every month this year.
+It's only February and that plan seems to already have gone off the rails.
+
+Let's look at the things that did happen in February before we talk about what
+didn't.
+
+### Core v1.7.0 is out
+
+Earlier today, I pulled the trigger on core release 1.7.0. As usual, [the
+changelog](https://github.com/freesewing/core/blob/develop/CHANGELOG.md#170)
+has all the info, but most significant to users are [the new ribbing options in
+the Sven pattern](/docs/designs/sven/options#ribbing), as well as a bunch of
+additional improvements to Carlton/Carlita.
+
+Those Carlton/Carlita improvements are driven by the fact that myself and
+Anneke have started to work on [the
+documentation for these patterns](/docs/designs/carlton/). And every time we
+write something like _apply fusible interfacing here_, we also go back to the
+pattern to mark exactly where this fusible needs to go.
+
+Needless to say, that's a bunch of work. But it should help with the
+construction of these coat patterns, especially for those people for which this
+is their first time making a coat.
+
+### GDPR battle plan
+
+I don't want to make it sound like writing a blog post is an achievement these
+days, but I do think [our _GDRP battle plan_ blog post](/blog/gdpr-plan) is
+worth mentioning because these are important developments, and the workload
+this generates is significant.
+
+While nothing is set in stone yet, the post outlines our plan to tackle
+GDRP-compliance, something which we'll be focusing on in the next months.
+
+### Vim snippets for freesewing core
+
+In a blog post that is the embodiment of the term
+_niche_ we announced the availability of a vim plugin
+that provides freesewing core specific snippets.
+
+Essentially, IF you want to develop patterns and IF you use the vim editor,
+these are for you.
+
+Arguably, that's a lot of ifs.
+
+### Jaeger sneak preview
+
+Meet Jaeger, the sports coat pattern that I hoped to release this month.
+
+Those of you with good memories may remember that I mentioned last month that I
+would perhaps release this during February. Although back then it still went by
+a different name.
+
+As I also foreshadowed last month, I did not find the time to make one. As a
+matter of fact, my most problematic bottle neck in designing new patterns seems
+to be finding the time to actually make them. Which is all the more problematic
+with a pattern as involved as a jacket. Truth be told, I'm still not sure
+where I found the time to make that Carlton coat.
+
+Anyway, all this to say that the pattern is ready, except that I've never made
+the latest version of it. And I feel like I can't release it like this.
+
+So, if you'd like to make a muslin of this --- or even the real thing --- let
+me know in the comments, and I'll make sure we'll get you a draft.
+
+That might also help moving this pattern release forward, for I already know I
+won't have much time to work on a jacket next month.
+
+Speaking of which...
+
+## Looking ahead to March
+
+I have two weeks of holiday in March (Yay!) the largest part of which I'll be
+in Bangkok (more Yay!).
+
+That means I won't be doing much sewing next month, but there should be some
+quality time for me and my laptop, so I wanted to tackle one of the larger
+items on my mid-term todo-list.
+
+My initial plan was to rewrite core, you can find some details [in this ticket
+on the matter](https://github.com/freesewing/core/issues/236)
+
+However, looking ahead at the months to come, the most pressing issue is that
+looming GDPR deadline in May which will also require a lot of work.
+
+So, I figured it would make more sense to tackle another thing on the todo list
+of lofty goals: rewrite the frontend.
+
+Rather than add yet another pile of jQuery code to handle all the GDPR stuff,
+the idea is to fork the frontend and port it to [vue.js](https://vuejs.org/).
+For this too, [there is an open issue where you can follow its
+progress](https://github.com/freesewing/site/issues/311).
+
+Given that I have zero experience with vue.js, this should be fun. If you'd
+like to help out, please leave a comment.
diff --git a/sites/orgdocs/blog/roundup-2018-03/index.mdx b/sites/orgdocs/blog/roundup-2018-03/index.mdx
new file mode 100644
index 00000000000..1087ef78744
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-03/index.mdx
@@ -0,0 +1,97 @@
+---
+authors: 1
+caption: 'Your login background for April'
+date: '2018-03-31'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - March 2018: Parlez-vous français? Sprechen Sie Deutsch? ¿Hablas español? 你會說中文嗎?'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at March
+
+As a general rule of thumb, the less you hear from me, the harder I'm working.
+Chances are you didn't hear from me during March at all. And yes, that's
+because I'm working hard.
+
+Here's why:
+
+### The Jaeger Jacket is now available
+
+We've had the new [Jaeger Jacket](/designs/jaeger) jacket in the pipeline for
+a while now. I had stalled a release because I couldn't find the time to make
+one, something which seems to be a general problem for pattern releases.
+
+So, I asked for help and a number of people stepped up and offered to make up
+(a muslin of) a Jaeger jacket.
+
+That went well, so a couple of weeks ago we finally pushed out Jaeger for
+general availability. It's part of our core 1.8 release, and the announcement
+post has all the details.
+
+### The _across back_ measurement is no more
+
+The across back measurement was cause of a great deal of confusion among our
+users. More often than not, when someone contacted us because their pattern
+looked wonky, an unrealistic across back measurement was to blame.
+
+So, we stepped in and removed that measurement in favour of calculating it from
+the _shoulder to shoulder_ measurement, and giving you a new _across back
+factor_ option so you can still tweak it if you want to.
+
+For a more detailed description, please refer to the core 1.8 release blog
+post.
+
+## Looking ahead to April
+
+### The big GDPR overhaul
+
+Last month we [outlined our GDPR battle plan](/blog/gdpr-plan/) and shortly
+afterwards I made a decision: Rather than implement all these changes in the
+site, I would start over from scratch.
+
+Or rather, I've given myself until the end of April to work on this. At which
+time I will need to decide whether it's possible to migrate the entire site
+before GDPR doomsday (May 25th) or should I abandon this effort and do what
+needs to be done in the current site.
+
+> Rather than implement all these changes in the site, I would start over from
+> scratch.
+
+I like the first scenario better and have been working on it pretty much day
+and (part of the) night during the last couple of weeks.
+
+I can't really show you much, but the goal is to build the new site on top of
+[the Nuxt framework](https://nuxtjs.org/). Doing so would allow us to drop Ruby
+from the freesewing technology stack, which would streamline deployment and
+development.
+
+My hope is also that using a modern and popular JS frontend framework will make
+it easier/more attractive contribute changes to the site.
+
+### Translators wanted
+
+Speaking of contributions. Since I'll be rewriting the site from scratch, I've
+decided to add a new challenge to the mix: i18n.
+
+In case you're wondering, i18n is short for internationalisation, aka making
+the site available in different languages.
+
+Yes, May 25th will be here soon, and yes I need more work like I need another
+hole in my head. But I feel it's an important project to try and make
+freesewing.org available to as many people as possible. And for this, we need
+to get rid of the language barrier.
+
+Now I'm hopeful that I'll be able to take care of the technical aspects of
+making the site multi-lingual. But that won't do us any good without
+translations. So that's where you come in :)
+
+:::note
+If you're willing to help with the effort of translating freesewing,
+please get in touch. We need your help.
+:::
+
+It would also help if you could spread the word a bit :)
diff --git a/sites/orgdocs/blog/roundup-2018-04/index.mdx b/sites/orgdocs/blog/roundup-2018-04/index.mdx
new file mode 100644
index 00000000000..9edcac663ad
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-04/index.mdx
@@ -0,0 +1,34 @@
+---
+authors: 1
+caption: 'Your login background for May'
+date: '2018-04-30'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - April 2018: Calm before the storm'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at April
+
+Did you get them? All those emails, notifications, and popups from companies
+informing you that they've made some changes to their privacy policy, or the
+way they handle your data, and would you please agree to these changes?
+
+I bet you did, as did I. And with each one of them, I grow a bit more nervous
+as the GDPR deadline of May 25th is approaching, yet I'm not ready yet to send
+you one of those emails.
+
+Our [carefully laid plans](/blog/gdpr-plan/) are but a small part of the
+changes we're working on, and that's why it's all taking a bit longer than
+expected.
+
+I could write a bit more about it, but I've got a ton of work to do and very
+little time to do it in. So if it's all the same, I think I'd rather get back
+to work.
+
+## Looking ahead to May
+
+Expect changes. A lot of changes. Nothing to worry about though 😉
diff --git a/sites/orgdocs/blog/roundup-2018-05/index.mdx b/sites/orgdocs/blog/roundup-2018-05/index.mdx
new file mode 100644
index 00000000000..2d5e1e06aba
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-05/index.mdx
@@ -0,0 +1,61 @@
+---
+authors: 1
+caption: 'Your login background for June'
+date: '2018-05-31'
+intro: 'This is your monthly roundup of the freesewing news of the last four weeks, and a look at what lies ahead in the next month.'
+title: 'Monthly roundup - May 2018: The post-GDPR era is upon us'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at May
+
+Well here we are, the GPPR deadline of May 25th is getting smaller and smaller
+in our rear-view mirror, and we have a new website.
+
+Both of those things are obviously related, but you probably [already knew
+that](/blog/gdpr-ready).
+
+May has been an incredibly hectic month, with a lot of self-inflicted stress
+because rather than just implement the changes required for GDPR, we decided to
+rebuild the entire site. However, as the GDPR changes needed to be ready in
+time, that meant that the entire site had to be ready.
+
+_Ready_ is obviously open to interpretation, and even though we published the
+site on time — with 1.5 hours to spare to be precise — there were still a few
+loose ends left and right.
+
+We've fixed a bunch of those and I'd like to thank all of you who reported
+issues and helped us fix them by sharing their experience.
+
+A lot of time and effort has been invested in making the site multi-lingual,
+and it's been great to be able to launch with three langauges enabled. All the
+translators are doing great work and I hope we'll be able to turn on a few
+other langauges relatively soon.
+
+Apart from [open issues](https://github.com/freesewing/site/issues), we also
+still have to port some of the documentation to the new site, which is
+something that we'll continue to work on in June. Speaking of which:
+
+## Looking ahead to June
+
+Don't expect any ground breaking changes in June. We're going to keep on
+ironing out the last kinks on the site, and continue to port the remaining
+documentation that's still missing from the site.
+
+I can't — and won't — make any promises and expect other people to keep them,
+so while I can't commit to any translation work, great strides are being made
+in the French and Swedish translations, so that's all very exciting.
+
+I'm also thrilled that this translation work is turning out to be a good
+on-ramp for people with no prior experience as open source contributors. Not
+only that, but translators are now actually fixing small bugs left and right
+which is really terrific.
+
+Obviously there's a lot of work that remains to be done, so if you're still
+standing on the sidelines wondering whether this is something for you, don't be
+shy. [Stop by our chat room to say hello](https://discord.freesewing.org/), we
+don't bite ☺️
diff --git a/sites/orgdocs/blog/roundup-2018-06/index.mdx b/sites/orgdocs/blog/roundup-2018-06/index.mdx
new file mode 100644
index 00000000000..ef1282b73e4
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-06/index.mdx
@@ -0,0 +1,55 @@
+---
+authors: 1
+caption: 'Your login background for July'
+date: '2018-06-30'
+intro: 'Monthly roundup - June 2018: German, Penelope, and more womenswear on the horizon'
+title: 'Monthly roundup - June 2018: German, Penelope, and more womenswear on the horizon'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks,
+and a look at what lies ahead in the next month.
+
+
+
+## Looking back at June
+
+After the mad scramble in May to get the new site ready for the GDPR deadline,
+June has (thankfully) been a bit let hectic.
+
+Not that we haven't been busy. We've resolved a few issues with the new site,
+and while there's a few things that still need work, the most pressing issues
+have been resolved.
+
+We've also completed the port of the documentation, which was something that
+was on our todo-list for June. It's always nice to make a plan and then follow
+through on it.
+
+With the migration demanding less of our time and attention, we've turned our
+attention back to building our pattern repository, and just before the end of
+the month, we were able to publish the [Penelope Pencil
+Skirt](/designs/penelope).
+
+The pattern was designed by [@woutervdub](/users/user?id=132), it's his second
+pattern after he previously made [Benjamin](/designs/benjamin).
+
+To make certain the release wouldn't go unnoticed, we asked freesewing's
+illustrator [Roy van der Hel](https://www.deviantart.com/royvdhel-art) to drew
+an illustration for Penelope, and as always, he nailed it.
+
+Oh, and I'd almost forgot. The website is now available in German, so tell your
+German-speaking friends about it!
+
+## Looking ahead to July
+
+As you could read in the [Penelope announcement blog
+post](/blog/announcing-penelope) we are planning more womenswear patterns, and
+that's what our focus will be on in July.
+
+Some of those plans are more mid-term, but we should be releasing a circle
+skirt pattern in July designed by [@AlfaLyr](/users/user?id=1230), who also provided
+much of the Spanish translation of the site.
+
+We also started working on a basic bodice block for women, but that will
+probably take a while to complete.
+
+Watch this space.
diff --git a/sites/orgdocs/blog/roundup-2018-07/index.mdx b/sites/orgdocs/blog/roundup-2018-07/index.mdx
new file mode 100644
index 00000000000..e01418e8755
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-07/index.mdx
@@ -0,0 +1,44 @@
+---
+authors: 1
+caption: 'Your login background for August'
+date: '2018-07-31'
+intro: 'Monthly roundup - July 2018: French and waiting for Sandy'
+title: 'Monthly roundup - July 2018: French and waiting for Sandy'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks,
+and a look at what lies ahead in the next month.
+
+
+
+## Looking back at July
+
+It's the summer time, and the heatwave across Europe isn't exactly helping with
+our productivity. What I'm saying is: I said we would have a new pattern out
+in July, but it's going to be late. We're still waiting for the final artwork,
+although I can show you the initial sketch now:
+
+
+
+This is Sandy, it's a circle skirt pattern, and it will be out in August.
+Promise :)
+
+Apart from that, thanks to some great work of our translators, we've
+also enabled our fifth language on the website: French. We've seen an
+increase in users signing up with .fr email addresses, so that goes to show
+that translation really does help make the site accessible to more people.
+
+Now apart from this, I don't have much to talk about that you can see right
+here on the site. That doesn't mean we haven't been busy. Much to the
+contrary!
+
+I've started porting freesewing core to node.js. It's really early days so I
+can't really talk about it too much, but I will do so at a later date.
+
+## Looking ahead to August
+
+August will bring the release of Sandy, and we'll also celebrate our first year
+here at freesewing.org.
+
+Perhaps that will be a good time to talk about our plans for the future :)
diff --git a/sites/orgdocs/blog/roundup-2018-09/index.mdx b/sites/orgdocs/blog/roundup-2018-09/index.mdx
new file mode 100644
index 00000000000..de1ce4e08cf
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-09/index.mdx
@@ -0,0 +1,51 @@
+---
+authors: 1
+caption: 'Your login background for October'
+date: '2018-09-30'
+intro: 'Monthly roundup - September 2018: Shin, loads of JavaScript, and a long TODO list'
+title: 'Monthly roundup - September 2018: Shin, loads of JavaScript, and a long TODO list'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at September
+
+GitHub tells me that I've made 329 commits in 32 repositories during September.
+Most of that work is an investment in the future, and it will be a while before
+you'll be able to reap the benefits of it.
+
+But not all, because between all the other stuff, I did find time to release
+the [Shin swim trunk pattern](/designs/shin):
+
+### Pics or it didn't happen
+
+Also new are a bunch of showcases, which is always nice, including a Jaeger
+jacket by [Paul](/users/user?id=433).
+
+If you're making our patterns, please don't hesitate to send in your pictures
+so we can add some more!
+
+### Shadow boxing
+
+All the other work has mostly been JavaScript code as part of our future plans.
+I am aware that this kind of work is invisible to most of you (you don't stalk
+mmy on GitHub, do you?) and that the perception can be that not much is going
+on here.
+
+The opposite is true. I am working harder on this project than ever, but for
+now it's mostly in the shadows.
+
+To try shine some light on what's going on, I have created [a long
+todo-list](https://github.com/freesewing/todo), so if you'd like to help out
+(or if you're just curious what we're up to) go ahead and have a look.
+
+Note that not all tasks are technical. We also need to pick pretty colors for
+the new patterns for example.
+
+## Looking ahead to October
+
+I have two weeks of holiday in October, and I have promised myself I would (try
+to) put away my laptop and make some clothes. I'm curious to see how that goes.
diff --git a/sites/orgdocs/blog/roundup-2018-10/index.mdx b/sites/orgdocs/blog/roundup-2018-10/index.mdx
new file mode 100644
index 00000000000..ea25e9d6e12
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-10/index.mdx
@@ -0,0 +1,46 @@
+---
+authors: 1
+caption: 'Your login background for November'
+date: '2018-11-30'
+intro: 'Monthly roundup - October 2018: Progress on beta.freesewing.org'
+title: 'Monthly roundup - October 2018: Progress on beta.freesewing.org'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks, and
+a look at what lies ahead in the next month.
+
+
+
+## Looking back at October
+
+Skeletons pack up their rattling chains, and your _sexy Brett Kavanaugh_
+costume has found a new home in the attic. This can only mean one thing:
+Halloween is over, here comes November.
+
+I am currently under the influence of influenza, so pardon me if I keep this
+short.
+
+What I can tell you about October is that a lot of work has been done, and
+while it's not always obvious to somehow showcase this behind-the-scenes work,
+[our beta website](https://beta.freesewing.org/) is slowly starting to gain
+more and more features.
+
+Not that we're anything close to finishing it. But you can login with your
+current freesewing username and password. Which means that we've successfully
+migrated all our data to our new backend.
+
+It's baby steps, but with each passing day, and each line of code written, we
+get a little closer to where we want to go.
+
+## Looking ahead to November
+
+In early December we traditionally do our yearly roundup, which means that
+November is kind of that last month we have to come up with something to show
+off.
+
+I've somehow made peace with the fact that things won't be nearly as ready as
+I'd like them to be. But on the other hand, I am still excited about all the
+work we are doing/have been doing, so hopefully that will shine through
+regardless of whether we can show you much or not.
+
+Now if you don't mind, I'll get back to tea and tissues.
diff --git a/sites/orgdocs/blog/roundup-2018-11/index.mdx b/sites/orgdocs/blog/roundup-2018-11/index.mdx
new file mode 100644
index 00000000000..b7f640a453e
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2018-11/index.mdx
@@ -0,0 +1,52 @@
+---
+authors: 1
+caption: 'Your login background for December'
+date: '2018-11-30'
+intro: 'Monthly roundup - November 2018: New showcases and a (false) security alarm'
+title: 'Monthly roundup - November 2018: New showcases and a (false) security alarm'
+---
+
+This is your monthly roundup of the freesewing news of the last four weeks,
+and a look at what lies ahead in the next month.
+
+
+
+## Looking back at November
+
+I have been very busy this month, but more about that in our roundup post for
+the year which you can expect on December 10th.
+
+Because I've been busy, a few showcase posts had fallen through the cracks.
+I've cleared the backlog in my inbox now, and as a result we have [a new Bruce
+showcase by Felix](/showcase/bruce-three-pack) and [a new Sandy showcase by
+Karin](/showcase/sandy-by-karin).
+
+If you've made one of our patterns, make sure to send in your pictures so we
+can add them too. I mean, even if it takes a while, I do eventually get around
+to it :)
+
+Earlier this week, I woke to the unsettling news that a popular package on NPM
+[had been hijacked by malicious
+actors](https://arstechnica.com/information-technology/2018/11/hacker-backdoors-widely-used-open-source-software-to-steal-bitcoin/).
+
+That's obviously shitty behaviour, but the fact that this package is a
+dependency of our backend (as in, we use it) made for a rude awakening. Our
+backend was patched by the time I got to work (yay for trains), but as more
+information came to light, it turned out it was never a problem in the first
+place.
+
+For one thing, the dependency was a so-called development dependency. Code that
+is included while developing, but not included in the production build.
+
+Furthermore, the malicious actors were targetting a very specific set of people
+in order to make off with their bitcoin, so there was never an issue.
+
+As the story was developing, we [posted updates on
+Twitter](https://twitter.com/freesewing_org/status/1067312509672177664) so if
+you want to make sure you want to hear all the latest news, make sure to follow
+[@freesewing_org](https://twitter.com/freesewing_org) on Twitter.
+
+## Looking ahead to December
+
+In early December we traditionally do our yearly roundup, so more on that soon
+:)
diff --git a/sites/orgdocs/blog/roundup-2019-01/index.mdx b/sites/orgdocs/blog/roundup-2019-01/index.mdx
new file mode 100644
index 00000000000..04214d6dc72
--- /dev/null
+++ b/sites/orgdocs/blog/roundup-2019-01/index.mdx
@@ -0,0 +1,153 @@
+---
+authors: 1
+caption: 'Your login background for February'
+date: '2019-01-31'
+intro: 'Is it really the end of January? Already?'
+title: 'Monthly roundup - January 2019: The big beta update'
+---
+
+Is it really the end of January? Already?
+
+After using the Xmas break to port [Simon](/designs/simon) —
+not exactly the most trivial of patterns — I'm fairly confident that
+all patterns will be ok. Simon has 61 options, so if it works
+for Simon, it will work for all patterns, or at least that's how I see it.
+
+
+
+Seven patterns have now been ported. That might not seem like much, but it does
+get rather tedious every time we make a change that touches the patterns, as we
+then have 7 to update. So I decided to put the pattern porting on hold for a
+while, and instead focus my attention on [our new beta website](/).
+
+## Gatsby is now our static site generator
+
+The new website is built on top of [Gatsby](https://www.gatsbyjs.org/), a
+static site generator written in JavaScript and powered by
+[React](https://reactjs.org/). We've been fairly committed to [the JAMstack
+architecture](/blog/freesewing-goes-jamstack) here at freesewing.org.
+
+It's our third rewrite of the site since we launched freesewing.org and I admit
+that that's a bit much. As in, I really hope the site we're building now will
+stick around for a while.
+
+Then again, rapid iterations are a good thing, especially as we were still
+finding our feet. We do what it takes to get it right, and while the question
+of _what's the purpose of this all_ is perhaps on some of your minds, I feel
+like beta.freesewing.org has gotten to the point where it answers that
+question.
+
+## (almost) everything happens in your browser now
+
+We rewrote our platform in JavaScript. That thing that runs in your browser.
+Previously, whenever you wanted to change the style of your cuffs or something,
+we needed to send your wishes to a backend, who'd then generate a draft and
+send it back.
+
+Now, when you tweak an option, we don't need a round-trip to a backend to show
+you what things look like. Because everything runs in your browser. So if you
+change something, it just updates right there on your screen.
+
+That's sort of what we had in mind all along, but it's still a powerful moment
+when all the pieces finally start to fall in place and things actually work.
+
+That being said, not everything runs in the browser yet. Specifically turning
+your patterns into PDFs is something that we handle in the backend as we're
+still working on that part.
+
+## No account needed
+
+Our [new demo](https://beta.freesewing.org/en/demo) allows you to kick the
+tires without the need to sign up. When signing up, there's no need to create
+an account with password, as we now support signing up with your existing
+Google or GitHub account.
+
+People who already have an account will be able to login with their Google or
+GitHub account, provided the email address of their freesewing account matches.
+
+## You can change everything
+
+We've made many changes to try and make it easier for developers to get started
+with freesewing. But we've also made changes for people who contribute in other
+ways.
+
+All our (markdown) content can now be edited on the site. No GitHub account
+needed, just click the little pencil icon next to the title, submit your
+changes, and we're good.
+
+Same good news for translators. All the translations can also be edited online.
+We've also updated our documentation for translators and editors to reflect
+this new simplified workflow.
+
+## Custom layouts
+
+The login/signup with GitHub/Google accounts was a feature requested by users,
+and so is this one: We now support the creation of a custom layout for your
+pattern. Here's how it works:
+
+When a pattern is drafted, the different pattern parts are laid out on the
+pattern automatically. Often that's great, but sometimes you wish your could
+make some changes. For example, you may want to get your pattern printed in a
+copy shop so you want to make sure it fits on the width of their roll of paper.
+Or you want to save some paper by squeezing some parts together.
+
+It's in early beta (as in, it still breaks from time to time) but you can now
+change the width of your pattern, move your pattern parts around, rotate them,
+or even mirror them vertically or horizontally to suit whatever your plans are.
+All of that can be done in your browser, on the site.
+
+## Developer documentation
+
+We've also integrated our developer documentation on the new site. Until
+yesterday, documentation about the new platform was hosted on a separate site,
+but now, we've ported the documentation and everything is integrated in our
+(future) website.
+
+## We won't migrate your drafts
+
+Time to talk about the things we won't be doing: We will not migrate your
+existing drafts. The new platform is just too different. There is no way for
+us to migrate your existing drafts in a way that makes sense. So, when the day
+comes we switch over to the new site, your drafts will no longer be there.
+
+You can download all your data from our site, but if you don't do that
+yourself, your v1 drafts will be gone.
+
+## No more comments
+
+I have decided to not implement a comments feature because I feel having them
+raises the wrong expectations.
+
+Freesewing is not another [Pattern Review](https://sewing.patternreview.com/),
+or [Thread and Needles](https://www.threadandneedles.org/), or [The Fold
+Line](https://thefoldline.com/), or [Textillia](https://www.textillia.com/), or
+[Kollabora](http://www.kollabora.com/), or whatever the _Raverly of sewing_ du
+jour is.
+
+I don't want freesewing.org to compete with these websites. They do their
+thing, we do ours. Their value proposition is the community, ours is not. That
+doesn't mean our community isn't valuable. It just means that we don't need our
+community to gather on our website. Our community exists wherever it goes. Be
+it Twitter, Instagram, Reddit, blogs, or some social network that I've never
+even heard of. It doesn't matter, it's all good.
+
+Building a community on the website takes time, it takes effort, it takes work.
+And we simply don't have the bandwidth for that. So I'd rather we focus on our
+core mission, and let people talk about
+freesewing wherever it is they talk about things.
+
+## Paris anyone?
+
+I've mentioned I'd like to do some sort of meetup this year, and while I
+haven't really had any time to work out what that would mean, we might end up
+meeting anyway.
+
+Specifically, [Charlotte](https://englishgirlathome.com/) (aka English girl at
+home) and [Carmen](https://www.carmencitab.com/) (aka CarmencitaB) are
+organising the [Paris
+Sewcial](https://englishgirlathome.com/2019/01/23/paris-sewcial-paris-coud-2019-registration-open/)
+meetup in May. I'll be heading to Paris to be part of that, so if you are too,
+we'll meet up there.
+
+Registration is [right this
+way](https://www.eventbrite.co.uk/e/paris-sewcial-paris-coud-registration-54520802187).
diff --git a/sites/orgdocs/blog/the-refashioners-2017/index.mdx b/sites/orgdocs/blog/the-refashioners-2017/index.mdx
new file mode 100644
index 00000000000..c77b5992399
--- /dev/null
+++ b/sites/orgdocs/blog/the-refashioners-2017/index.mdx
@@ -0,0 +1,219 @@
+---
+authors: 1
+caption: 'They said I was crazy to make a zebra jacket, so I made it anyway. And it sank into the swamp.'
+date: '2017-09-04'
+intro: 'For the uninitiated, the refashioners is a yearly event/competition hosted by the charming (and very persuasive) Portia Lawrie .'
+title: 'The Refashioners 2017 - Now with a Blake Blazer preview and 100% more zebra'
+---
+
+For the uninitiated, the refashioners is a yearly event/competition hosted by
+the charming (and very persuasive) [Portia Lawrie](http://www.makery.uk/).
+
+Its focus is on giving old, unworn, or unloved garments a new lease on life
+through the art of refashioning.
+
+
+
+This bonanza of garment Frankensteining kicks of with a series of
+_hors-compétition_ makes, aimed at getting the creative juices flowing.
+And [just like last
+year](http://www.makery.uk/2016/08/the-refashioners-2016-joost/), I got asked
+to be one of those _warm-up acts_.
+
+Before I talk a bit about how it went, here's some pictures of what I made:
+
+
+
+
+
+
+
+
+
+
+
+
+
+## The male romper lobby
+
+Last year, the theme was jeans, this year it's suits. And from the moment I
+shared that snippet of info with a handful of friends, they've conspiring to
+get me to make a male romper.
+
+
+
+
+
+With friends like that, who needs enemies.
+
+## How I got to zebra
+
+The first thing I did was limit my options. Too much choice tends to paralize.
+
+I decided to not only respect the suit theme with regards to the source
+material, but also concerning the techniques involved. Making a suit, and
+especially jacket construction, is a fine art and I wanted that to be part of
+my project.
+
+So, no messenger bags or (dare I say it) shoes out of recycled suits, I wanted
+to make a jacket.
+
+The problem is that suits are rather challenging to refashion. There's just not
+a lot of large pieces of pristine fabric to work with.
+
+
+
+In addition, I'm really tall so there is simply no way I can salvage enough
+fabric form a suit to make a new jacket without having to sew a bunch of scraps
+together.
+
+I was worried that this sort of patchwork jacket was going to look super hobo.
+But since I don't really have any other option to make a jacket, I started
+thinking about what sort of patchwork would be most acceptable.
+
+
+
+And then one day in the shower it hit me: zebra! If I could find a black and a
+white suit, I could cut them into stripes and join those together to form the
+pattern parts I needed. If it was going to be patchwork, I might as well
+embrace it, right?
+
+## The Blake Blazer pattern
+
+My first idea was to make a jacket in muslin, draw zebra stripes on it, take it
+apart, cut out the stripes, and use that as my pattern. But I was worried this
+process would not be precise enough.
+
+Also, what pattern would I use to make the jacket in the first place? I don't
+really use patterns that I haven't designed myself because I'm more of an
+uphill ice-skating kinda guy.
+
+
+
+So, I set out to design the Blake Blazer. It's a jacket/sportscoat pattern that
+I initially hoped to release with this post, but you're going to have to give
+me some more time for that.
+
+
+
+To get those zebra stripes as precise as possible, I decided to add the stripes
+to the pattern. This way, I could make sure they would match and whenever they
+don't in the jacket, I've got my own shoddy workmanship to blame.
+
+Also, for this project, I decided to make it a bit of a cropped look because I
+was worried I wouldn't have enough fabric to work with.
+
+## Finding suits to refashion
+
+With my pattern sorted, I started looking into the source material for my make.
+As it happens, I have a cardboard box full of old and unloved suits that's
+still in storage since my last move.
+
+I've always intended to take these apart to learn from their construction so
+this was the perfect opportunity.
+
+
+
+
+
+I have two black suits to choose from, but absolutely no white suits. So I hit
+the thriftstores only to discover that white suits are a bit of a rarity.
+
+I was unable to find any white suit even though I visited 8 different thrift
+stores. To make matters worse, I couldn't even find a white suit in any of the
+second hand stores I visited with one exception: I found a white suit in a
+second hand store, but it was 200 euro.
+
+Apart from the fact that I'm not made of money, I don't think buying a 200 euro
+second hand suit only to rip it apart is much in line with the spirit of the
+refashioners.
+
+I briefly contemplated a different colour combination, but nobody is waiting
+for a black and navy zebra.
+
+
+
+
+
+Fortunately, the rules of the refashioners are that at least 50% of your make
+should be recycled suits. Apart from that, you do what you want.
+
+So, by making the black stripes dominant, making the entire facing out of
+black, and recycling the inner parts of the suit (think canvas, shouler
+padding, buttons and so on) I would have no problem reaching that 50% treshold.
+
+So, true to the thrifty spirit of refashioners, I picked up some white fabric
+in the haberdasher that was 4 euro per meter. Something that I would soon
+regret as I tried to make this piece of glorified plastic play nice with the
+wool of the black suit.
+
+## Putting it all together
+
+I wanted the zebra stripes to look like a real zebra, so no straight lines. I
+addition, I noticed that a zebra's stripes don't continue on his back and belly
+but sort of a run before they hit the center. I wanted to replicate that look,
+and lived to regret it.
+
+
+
+I ended up having to hand baste all the different parts together. This jacket's
+outer shell is made up of 93 different scraps and pieces that are all puzzled
+together.
+
+
+
+In addition, I had to squeeze all the new parts out of the old suit parts,
+which meant that in some cases I was left with as little as a few mm of seam
+allowance.
+
+
+
+Suffice to say, it was stressful. And after I had puzzled together the initial
+parts, I still had to -- you know -- make a jacket. Which was kinda
+challenging with all that stripe matching I needed to do.
+
+
+
+
+
+## Final notes
+
+I ran out of time to add the lining, but part of me feels it would be a shame
+to cover up the insanity that is the inside of the jacket.
+
+And I'm not entirely pleased with the collar. I had made one muslin test
+garment, but now that I've made the real thing, I am going to go back to the
+pattern and make some tweaks before releasing it.
+
+In the meanwhile, enjoy some [more pictures of the jacket in this Flickr
+set](https://www.flickr.com/photos/__niki__/albums/72157684742893052).
+
+## Now it's your turn
+
+So this is it, my contribution for The Refasioners 2017. I hope I was able to
+inspire you for some refashioning of your own. If nothing else, maybe it was a
+good reminder of what not to try ;)
+
+:::tip More refashioners
+To stay up to date with The Refashioners 2017, see
+all the other inspiring refashions AND find out how you could win an amazing
+prize go to:
+[www.makery.uk/the-refashioners/](http://www.makery.uk/the-refashioners/)
diff --git a/sites/orgdocs/blog/v2-22-then-v3/index.mdx b/sites/orgdocs/blog/v2-22-then-v3/index.mdx
new file mode 100644
index 00000000000..ff584892c3d
--- /dev/null
+++ b/sites/orgdocs/blog/v2-22-then-v3/index.mdx
@@ -0,0 +1,40 @@
+---
+authors: 1
+caption: "We're moving on"
+date: '2022-08-23'
+intro: "We have released version 2.22 of FreeSewing. As always, a minor version bump indicates a new design, and this time it's the Octoplushy design by Wouter."
+title: 'FreeSewing v2.22 is out, and will be the final minor release before v3'
+---
+
+We have released version 2.22 of FreeSewing. As always, a minor version bump
+indicates a new design, and this time it's the [Octoplushy
+design](/designs/octoplushy) by Wouter.
+
+
+
+Version 2.22 is planned to be the last minor release in the v2 branch. Momentum
+for version 3 has been building for a while, and during [this weekend's
+contributor call](https://github.com/freesewing/freesewing/discussions/2582) we
+decided we'd double down on those efforts and focus all our attention on the
+upcoming version 3.
+
+## What does this all mean?
+
+In the short term, you might not even notice. FreeSewing.org will continue
+running the production-ready v2 code, while we start building version 3.
+
+For developers and/or pattern designers, the situation is different. Effective
+immediately, our (default) `develop` branch in [our
+monorepo](https://github.com/freesewing/freesewing) is where we'll be working
+on version 3 code. Version 2 code is now in the `v2` branch where will will
+backport fixes for as long as version 3 is under development.
+
+To keep up to date of all changes, please refer to
+[freesewing.dev](https://freesewing.dev) where we will over time document
+everything you need to know about the migration.
+
+## When can we expect version 3?
+
+We have a lot of exciting plans, but they will take some time to manifest. I
+suspect the first production release of version 3 code, and the rollout on
+FreeSewing.org will be a matter for 2023.
diff --git a/sites/orgdocs/blog/v3-2-0/index.mdx b/sites/orgdocs/blog/v3-2-0/index.mdx
new file mode 100644
index 00000000000..f8db3323ed0
--- /dev/null
+++ b/sites/orgdocs/blog/v3-2-0/index.mdx
@@ -0,0 +1,145 @@
+---
+title: 'FreeSewing v3.2.0 is out, brings 3 new designs'
+caption: 'Number 32 Painted on White Brick Wall - By ALTEREDSNAPS via Pexels.com'
+date: '2024-02-11'
+intro: 'Lumina, Lumira, and Tristan, plus bug fixes and improvements'
+authors: 1
+---
+
+FreeSewing v3.2 was released today, and includes three new designs, as well as
+bug fixes and improvements.
+
+
+
+## The Tristan Top
+
+First up, there is [the Tristan Top](/designs/tristan). Tristan is a top with
+princess seams and (optional) lacing at front or/and back. It's origin story is
+the need for a costume for a Renaissance festival, so that is probably a good
+indicator of what to expect.
+
+However, don't take my word for it, you can get
+all details straight from the horse's mouth (so to speak) since Natalia -- who
+designed the top -- [wrote a blog post about the new Tristan
+design](/blog/our-newest-design-is-the-tristan-top).
+
+Natalia collaborated with Wouter for Tristan, and Wouter also signed for the
+two other new designs in this release, let's look at those next.
+
+## The Lumina and Lumira Leggings
+
+Wouter gifted us not one, but two pairs of leggings in this release: the
+[Lumira Leggings](/designs/lumira) and the [Lumina Leggings](/designs/lumina).
+
+I'll give you a second to scan the end of that sentence again, but yes there
+are two different leggings patterns with similar names. Both were born out of
+Wouter's desire for good cycling gear, and I suggest you check out the
+**designer notes** for both [Lumina](/designs/lumina#notes) and
+[Lumira](/designs/lumira#notes) to fully appreciate the difference between
+these designs, why they differ, and what would work best for you.
+
+I am myself rather excited about these, since I could use some new leggings.
+
+## Bug fixes and improvements
+
+While those are the main events for this v3.2 release, there's a bunch of other
+bugfixes and improvements, here's a short list:
+
+### A new panels option in Sandy
+
+Our Sandy circle skirt has [a new panels
+option](/docs/designs/sandy/options/panels) that was [added by
+Paula](https://github.com/freesewing/freesewing/pull/5861). You could aways
+create your circle skirt out of a number of a similar patterns by doing the
+match yourself, but now the pattern will take care of that for you.
+
+### A change to the armscye in Brian
+
+What started out as [a bug report for the biceps ease on
+Jaeger](https://github.com/freesewing/freesewing/issues/5999) ended with a
+change to the way the armscye is calculated on Brian, in particular the depth
+of the armhole.
+
+The way the armhole depth is calculated was changed in v3, and we now base it
+on the [waist to
+armpit](https://freesewing.org/docs/measurements/waisttoarmpit) measurements.
+Previously -- in v2 -- we would calculate the depth of the armhole based on the
+biceps. That option remains available today by enabled the [Legacy armhole
+depth
+option](https://freesewing.org/docs/designs/brian/options/legacyarmholedepth).
+
+What we have changed now is to take the biceps _ease_ into account when
+calculating the depth of the armhole. This fix was needed because without it,
+increasing the biceps easy would not (or no longer) influence the armscye. That
+in turn means that we want to draft a wider sleeve, but somehow still have to
+fit that into the same opening.
+
+Given that Brian is our most foundational block, this will have ripple effects
+on many other designs, you can expect that out-of-the-box the armscye will
+reach a bit lower.
+
+As always if you run into trouble, check [the support page](/support) to see
+where you can turn to for help.
+
+### Fixes in Carlton, Charlie and Hugo
+
+- In [Carlton](/designs/carlton) -- and thus in [Carlita](/designs/carlita) --
+ we have fixed and issue where the seam allowance on the undercollar was
+ incorrectly drawn.
+- In [Charlie](/designs/charlie), the back pocket welt (4) and front pocket
+ facing (8) incorrectly indicated to cut 2 instead of 4 in the cutlist. This
+ too is resolved.
+- In [Hugo](/designs/hugo), we fixed a bug that caused the design to error when
+ the complete setting was off, and we fixed an issue where the front pocket
+ opening would get increasingly narrow as the hip circumference increased.
+
+### Path.combine() in FreeSewing core
+
+We've added a new
+[Path.combine()](https://freesewing.dev/reference/api/path/combine) method to
+our core API. Its origins lie in a discussion in issue #5976 which was
+originally filed as a bug report about how
+[Path.join()](https://freesewing.dev/reference/api/path/join) connects _gaps_
+in the joined paths -- caused by either `move` operations, or a difference
+between the end and start point of joined paths -- to be filled in with a line
+segment.
+
+That behaviour is expected/intended, but we've added `Path.combine()` to
+faciliate the other behavior: Combining different paths into a single Path
+object without alterning any of its drawing operations.
+
+We've made Path.combine() variadic, so you can combine as many paths as you
+want. And, for consistency, we've also updated the `Path.join()` signature to
+make it variadic as well. The previous (undocumented) second parameter to
+`Path.join()` to force a close of the path is still supported for backwards
+compatibility, but will log a deprecation warning, and will be removed in
+FreeSewing v4.
+
+As a final side-effect of this change, the
+[Path.length()](https://freesewing.dev/reference/api/path/length) method can
+now be instructed to include move operations in its calculation of the length
+of the path. The default behaviour remains unchanged, which is to only
+include drawing operations when calculating the path's length.
+
+### Notes in design titles
+
+The [`title` macro](https://freesewing.dev/reference/macros/title) now can be
+configured with a `notes` and `classes.notes` setting in its config, allowing
+designers to add notes to (the title of) a pattern part.
+
+As a result, the `classes.cutlist` setting is removed from the title macro, and
+cutlist info is now included as notes.
+
+### Support for nested arrays in designs
+
+The [i18n plugin](https://freesewing.dev/reference/plugins/i18n) now supports
+now supports translation of nested arrays of strings, which gives designers
+more flexibility to concatenate translated parts of strings. Something that is
+most useful when mixing translated strings with run-time information about the
+generated pattern.
+
+In line with this change, the `Pattern` component, which is part of our
+[react-components](https://freesewing.dev/reference/packages/react-components)
+package, supports the same nested arrays.
+
+That's all for v3.2. Enjoy!
diff --git a/sites/orgdocs/blog/v3-umbrella-post/index.mdx b/sites/orgdocs/blog/v3-umbrella-post/index.mdx
new file mode 100644
index 00000000000..a33396d05a2
--- /dev/null
+++ b/sites/orgdocs/blog/v3-umbrella-post/index.mdx
@@ -0,0 +1,40 @@
+---
+title: 'Everything about FreeSewing v3: Umbrella post'
+caption: 'Multicolored Umbrella by Alexander Grey'
+date: '2023-11-03'
+intro: "There's a flurry of news about FreeSewing v3, so here's an overview"
+authors: 1
+---
+
+There's a flurry of news and announcements about FreeSewing v3, so this
+_umbrella post_ gathers all of them into one place.
+
+If you're looking for the best link to share regarding the v3 release and
+migration, this post is your best bet.
+
+
+
+##### FreeSewing is now pay-what-you-want
+
+[This post outlines the reasoning behind FreeSewing's new
+pricing](/blog/freesewing-is-now-pay-what-you-want)
+
+##### Welcome to the new FreeSewing.org site, powered by v3
+
+[This is the _official_ announcement post for the new
+website](/blog/welcome-to-freesewining-3)
+
+##### Announcing FreeSewing.social
+
+[Announcement of FreeSewing's own Mastodon instance, and our departure from
+Twitter](/blog/announcing-freesewing-social)
+
+##### Opening up the FreeSewing backend API
+
+[Announcement of the new API keys feature that lets anyone connect to our
+backend to retrieve data](/blog/open-backend-api)
+
+##### Announcing FreeSewing v3.0
+
+[Announcement of the release of v3.0.0 of FreeSewing's core
+library](/blog/announcing-freesewing-v30)
diff --git a/sites/orgdocs/blog/welcome-to-freesewining-3/index.mdx b/sites/orgdocs/blog/welcome-to-freesewining-3/index.mdx
new file mode 100644
index 00000000000..af25f70ca53
--- /dev/null
+++ b/sites/orgdocs/blog/welcome-to-freesewining-3/index.mdx
@@ -0,0 +1,103 @@
+---
+title: 'Welcome to the new FreeSewing.org site, powered by v3'
+caption: 'An image by Johannes Plenio'
+date: '2023-11-03'
+intro: "FreeSewing v3 has been out for a while, but now we've also migrated our website"
+authors: 1
+---
+
+FreeSewing version 3 -- the new major version of FreeSewing that's been more
+than a year in the making -- was released at the end of September. But casual
+visitors of FreeSewing.org might not even have noticed, for the website was
+still running on v2, and even [the announcement blog
+post](/blog/announcing-freesewing-v30) was only available on the new site.
+
+
+
+Since that initial release, I've been busy with putting the finishing touches
+on the new website, as well as migrating the data of the 50K+ FreeSewing users.
+The migration is complete, and while the website certainly is not, I feel I can
+work on this until the heath death of the universe and it might still not be
+_done_.
+
+Nothing unless you ship. So I sort of set a hard deadline for myself that I
+will pull the trigger no later than the weekend after Haloween, so here we are.
+These things always feel like a gigantic anti-climax to me. You're looking at
+something that took more than a year of work, and yet I'm not entirely certain
+what to write about it. How do you condense all of that into a post?
+
+I don't think I can do that. But I'll try to touch upon some of the more
+important things.
+
+## More control FreeSewing has a bunch of advanced features that are loved by
+
+power users. But all of that functionality can overwhelm new users. This is not
+a new thing, but what's new is that we now have something to help you adapt
+your user experience to your own needs or wished.
+
+When you're logged in to your FreeSewing account, you can head over to the
+User Experience setting where you can pick a setting from 1
+to 5 for how advanced you want the user interface.
+
+Not all areas are taking this setting into account (yet) but the goal is to
+allow people to dial up the complexity/power on-demand rather than us having to
+decide which features are perhaps a bit too advanced.
+
+## Improved pattern editor In version 2 of FreeSewing, the development
+
+environment had a pattern editor that came with a bunch of features aimed at
+designers and developers (and power users) that were not available on
+FreeSewing.org.
+
+Because users can now dial down the complexity, we no longer have any reason to
+hide any of the more advanced tools. So the pattern editor that is part of
+FreeSewing.org has all of the features of the previous development environment.
+There is no longer any difference.
+
+It also has an improved menu structure, inline documentation, better mobile
+support, and takes advantage of the new features in version 3 to provide you
+with the best possible experience.
+
+## Models are now measurements sets We have renamed some of the terminology
+
+from version 2, specifically _models_ are now _measurements sets_. I feel that
+a measurements set is a more accurate (and hopefully somewhat intuitive)
+description of what it is (a set of measurements).
+
+As part of this change, we no longer make any distinction between people with
+breasts or without breasts. In version 2, this distinction meant that some
+designs were not available to people who had checked the _without breasts_ box.
+
+As of today, all measurements sets are the same, and all designs will be
+available to all.
+
+## Ukrainian is now a supported language We've added Ukrainian to our list of
+
+supported languages, bringing the total number to 6: English, German, Spanish,
+French, Dutch, and now Ukrainian.
+
+The choice to support Ukrainian as a language is (perhaps obviously) linked to
+the ongoing conflict there. We could have put up one of those _support Ukraine_
+banners, but talk is cheap and this seemed more valuable.
+
+Obviously, we rely on our translators for this. You can check out the
+translation dashboard (which is also new) to see who are those
+good souls, and even get involved or suggest a new language.
+
+## Submit your own showcases Speaking of suggesting things, the [New...](/new)
+
+page (which lives at [FreeSewing.org/new](/new) not only allows you to create a
+new pattern, but also a bunch of other things. Including creating/suggesting a
+new showcase post.
+
+We've been wanting to make it easier for our users to submit their makes, and
+I'm happy to say that's taken care of now.
+
+## And so. Much. More.
+
+There's about a 100 other things that I could mention, but I feel a bit like
+giving a speech at the opening of a theme park. So rather than rambling on
+forever, I'll shut up now so y'all can try the new rides.
+
+Ah, perhaps one thing. If it breaks, the new [FreeSewing.org/support](/support)
+page is the place to get help.
diff --git a/sites/orgdocs/cpmd.sh b/sites/orgdocs/cpmd.sh
deleted file mode 100755
index 80cca7503a1..00000000000
--- a/sites/orgdocs/cpmd.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-#rm -rf docs/*
-#cp -R ../../markdown/org/docs/* docs/
-#find . -type f -name "en.md" -execdir mv {} readme.mdx \;
-#find . -type f -name "fr.md" -execdir rm {} \;
-#find . -type f -name "de.md" -execdir rm {} \;
-#find . -type f -name "es.md" -execdir rm {} \;
-#find . -type f -name "nl.md" -execdir rm {} \;
-#find . -type f -name "uk.md" -execdir rm {} \;
-
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's//:::tip\n/g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's//:::note\n/g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's//:::warning\n/g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's//:::tip\n/g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's//:::note\n/g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's//:::warning\n/g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's__:::_g' {} +
-#find docs/ -type f -name "readme.mdx" -exec sed -i '' 's__:::_g' {} +
-find docs/ -type f -name "readme.mdx" -exec sed -i '' 's__:::_g' {} +
-
diff --git a/sites/orgdocs/docs/about/guide/readme.mdx b/sites/orgdocs/docs/about/guide/readme.mdx
index bd507608026..4a97272c03f 100644
--- a/sites/orgdocs/docs/about/guide/readme.mdx
+++ b/sites/orgdocs/docs/about/guide/readme.mdx
@@ -1,6 +1,5 @@
---
title: Getting started with FreeSewing.org
-order: 100
---
Hi there 👋 and welcome to FreeSewing.org 🙂
@@ -18,12 +17,12 @@ Sounds good? Then let's dive right in:
## What is FreeSewing?
FreeSewing is the leading [open source library](https://github.com/freesewing)
-for on-demand garment manufacturing. Loved by home sewers and fashion
+for on-demand garment manufacturing. Loved by home sewers and fashion
entrepreneurs alike, FreeSewing provides the tech stack for your creative
endeavours.
FreeSewing is the brain-child of [Joost De
-Cock](https://github.com/joostdecock), the FreeSewing maintainer. Various
+Cock](https://github.com/joostdecock), the FreeSewing maintainer. Various
other people have contributed to FreeSewing over the years (the [FreeSewing
contributors](https://github.com/freesewing/freesewing?tab=readme-ov-file#contributors-)),
and the project is financially supported by [the FreeSewing
@@ -31,7 +30,6 @@ patrons](https://freesewing.org/patrons).
:::tip
-
For more info about FreeSewing -- the open source project -- refer to
[FreeSewing.dev](https://freesewing.dev/) which hosts documentation for
developers, designers, contributors, and translators.
@@ -45,7 +43,7 @@ our ever-growing collection of bespoke sewing patterns to makers all
over the world.
FreeSewing is not about fashion, trends, or publishing the hot new pattern of
-the season. Instead, we want to empower makers by distilling the knowledge of
+the season. Instead, we want to empower makers by distilling the knowledge of
the sewing community into parametric designs + documentation, and make that
information freely available.
@@ -64,11 +62,12 @@ That happens in real-time, in your browser.
- **Design**: One of the styles that we offer. We've got dozens of designs, and
you can try them all
-- **Pattern**: The result of *drafting the design* (turning it into a sewing
+- **Pattern**: The result of _drafting the design_ (turning it into a sewing
pattern to your measurements). We've got thousands of patterns stored for our
users, and some might be yours
:::tip
+
##### Saving is optional
When you generate a bespoke pattern, you can tweak it endlessly through its various options,
@@ -83,7 +82,9 @@ You can save as many patterns as you like.
:::
:::note
+
##### We respect the strictest privacy laws on the planet
+
To generate bespoke sewing patterns, we need your measurements.
Asking for them every time would be rather tedious, so we store them in your account.
@@ -91,7 +92,6 @@ Your account data is stored on our backend, subject to [our privacy notice](/doc
and with respect for [your rights](/docs/about/rights/).
:::
-
## Measurements sets
Once you have an account, you can start adding measurements.
@@ -102,6 +102,7 @@ That's why we have **measurements sets**. You can add as many measurements sets
Having just one for yourself is fine too.
:::tip
+
##### Curated measurements sets
FreeSewing also provides **curated measurements sets**. These are measurements
@@ -113,5 +114,3 @@ tape.
## Where to turn to for help
If you get stuck, consult [the support page](https://freesewing.org/support/) for various support options.
-
-
diff --git a/sites/orgdocs/docs/designs/charlie/options/usewaistanglefor/readme.mdx b/sites/orgdocs/docs/designs/charlie/options/usewaistanglefor/readme.mdx
new file mode 100644
index 00000000000..7df0bb54814
--- /dev/null
+++ b/sites/orgdocs/docs/designs/charlie/options/usewaistanglefor/readme.mdx
@@ -0,0 +1,7 @@
+---
+title: 'Use waistband angle for'
+---
+
+Determines if the Waistband angle setting is applied to the back part, the front part or both.
+
+Note that applying the setting to only one of the parts can create an angle at the sideseam.
diff --git a/sites/orgdocs/docs/designs/charlie/options/waistangle/readme.mdx b/sites/orgdocs/docs/designs/charlie/options/waistangle/readme.mdx
new file mode 100644
index 00000000000..71fb1aeb2c5
--- /dev/null
+++ b/sites/orgdocs/docs/designs/charlie/options/waistangle/readme.mdx
@@ -0,0 +1,10 @@
+---
+title: 'Waistband angle'
+---
+
+Controls the angle of the waistband when the garment is viewed from the side.
+
+Increasing this option will raise the back of the pants and lower the waistband in the front.
+This is ideal for those with a curvy body who want the waistband to sit below the belly in the front, but above the butt in the back.
+
+If you're setting the waistband angle to a larger value, it's also a good idea to increase the waist height to make sure you've got enough coverage in the front.
diff --git a/sites/orgdocs/docs/designs/holmes/instructions/readme.mdx b/sites/orgdocs/docs/designs/holmes/instructions/readme.mdx
index ef4750b04b0..a58997ebdee 100644
--- a/sites/orgdocs/docs/designs/holmes/instructions/readme.mdx
+++ b/sites/orgdocs/docs/designs/holmes/instructions/readme.mdx
@@ -72,7 +72,8 @@ above. The ties are finished at the end so you can adjust the lengths then.
The lengths above are recommendations so feel free to go as long or as short as
you like with the ties. If you prefer you can make your custom ties with
-fabric, [see Holmes cutting](/docs/designs/holmes/cutting/) for more info.
+fabric, [see Holmes cutting instructions](/docs/designs/holmes#cutting) for
+more info.
#### Ear Flaps with Buttonholes
diff --git a/sites/orgdocs/docs/designs/holmes/readme.mdx b/sites/orgdocs/docs/designs/holmes/readme.mdx
index ede1f885f53..b251ba50259 100644
--- a/sites/orgdocs/docs/designs/holmes/readme.mdx
+++ b/sites/orgdocs/docs/designs/holmes/readme.mdx
@@ -40,8 +40,8 @@ Depending on style the ties and buttons are optional.
- If you are making Buttonhole Ear Flaps you can omit the ties.
- If you are making Tie Ear Flaps you can omit the button.
-- Ties can also be made from fabric if you prefer ([see Holmes
- Cutting](/docs/designs/holmes/cutting/))
+- Ties can also be made from fabric if you prefer ([see Cutting
+ Instructions](#cutting))
- You can also use different width and type ribbons for the ties if you prefer.
:::
diff --git a/sites/orgdocs/docs/designs/jaeger/instructions/collarCuts.svg b/sites/orgdocs/docs/designs/jaeger/instructions/collarCuts.svg
index 26eaa3a7304..ed45dc7e009 100644
--- a/sites/orgdocs/docs/designs/jaeger/instructions/collarCuts.svg
+++ b/sites/orgdocs/docs/designs/jaeger/instructions/collarCuts.svg
@@ -1,5 +1,3 @@
-
-
\ No newline at end of file
+
diff --git a/sites/orgdocs/docs/designs/jaeger/instructions/collarMarkings.svg b/sites/orgdocs/docs/designs/jaeger/instructions/collarMarkings.svg
index 437583cf51a..4e818d8f1bc 100644
--- a/sites/orgdocs/docs/designs/jaeger/instructions/collarMarkings.svg
+++ b/sites/orgdocs/docs/designs/jaeger/instructions/collarMarkings.svg
@@ -1,5 +1,3 @@
-
-
\ No newline at end of file
+
diff --git a/sites/orgdocs/docs/designs/jaeger/instructions/collarWithCanvas.svg b/sites/orgdocs/docs/designs/jaeger/instructions/collarWithCanvas.svg
index 9f4eabad5b5..b3e60972757 100644
--- a/sites/orgdocs/docs/designs/jaeger/instructions/collarWithCanvas.svg
+++ b/sites/orgdocs/docs/designs/jaeger/instructions/collarWithCanvas.svg
@@ -1,6 +1,4 @@
-
-
\ No newline at end of file
+
diff --git a/sites/orgdocs/docs/designs/lily/options/usewaistanglefor/readme.mdx b/sites/orgdocs/docs/designs/lily/options/usewaistanglefor/readme.mdx
new file mode 100644
index 00000000000..7df0bb54814
--- /dev/null
+++ b/sites/orgdocs/docs/designs/lily/options/usewaistanglefor/readme.mdx
@@ -0,0 +1,7 @@
+---
+title: 'Use waistband angle for'
+---
+
+Determines if the Waistband angle setting is applied to the back part, the front part or both.
+
+Note that applying the setting to only one of the parts can create an angle at the sideseam.
diff --git a/sites/orgdocs/docs/designs/lily/options/waistangle/readme.mdx b/sites/orgdocs/docs/designs/lily/options/waistangle/readme.mdx
new file mode 100644
index 00000000000..71fb1aeb2c5
--- /dev/null
+++ b/sites/orgdocs/docs/designs/lily/options/waistangle/readme.mdx
@@ -0,0 +1,10 @@
+---
+title: 'Waistband angle'
+---
+
+Controls the angle of the waistband when the garment is viewed from the side.
+
+Increasing this option will raise the back of the pants and lower the waistband in the front.
+This is ideal for those with a curvy body who want the waistband to sit below the belly in the front, but above the butt in the back.
+
+If you're setting the waistband angle to a larger value, it's also a good idea to increase the waist height to make sure you've got enough coverage in the front.
diff --git a/sites/orgdocs/docs/designs/noble/instructions/readme.mdx b/sites/orgdocs/docs/designs/noble/instructions/readme.mdx
index bff81c0ceb7..eb84d510f3a 100644
--- a/sites/orgdocs/docs/designs/noble/instructions/readme.mdx
+++ b/sites/orgdocs/docs/designs/noble/instructions/readme.mdx
@@ -33,7 +33,7 @@ Noble is based on the Bella body block
- Sew the front to the backs at the shoulders, _good sides together_.
- Sew the front to the backs at the side seams, _good sides together_.
-:::Tip
+:::tip
If you are making adjustments you may wish to sew the seams _wrong sides together_ to make them easier to adjust.
:::
diff --git a/sites/orgdocs/docs/designs/noble/readme.mdx b/sites/orgdocs/docs/designs/noble/readme.mdx
index fc82b60c94b..32af5daa255 100644
--- a/sites/orgdocs/docs/designs/noble/readme.mdx
+++ b/sites/orgdocs/docs/designs/noble/readme.mdx
@@ -64,7 +64,7 @@ fabric specifically for Noble.
These cutting instructions are just for the default Noble block. Adjust your cutting accordingly if you have/are making changes to the block.
-:::Tip
+:::tip
If you do not have someone to help pin you into Noble then you may find it
easier to Cut 2 Front Inside parts with seam allowance and sew the backs up
when constructing so you can pin in the front.
diff --git a/sites/orgdocs/docs/designs/paco/options/usewaistanglefor/readme.mdx b/sites/orgdocs/docs/designs/paco/options/usewaistanglefor/readme.mdx
new file mode 100644
index 00000000000..7df0bb54814
--- /dev/null
+++ b/sites/orgdocs/docs/designs/paco/options/usewaistanglefor/readme.mdx
@@ -0,0 +1,7 @@
+---
+title: 'Use waistband angle for'
+---
+
+Determines if the Waistband angle setting is applied to the back part, the front part or both.
+
+Note that applying the setting to only one of the parts can create an angle at the sideseam.
diff --git a/sites/orgdocs/docs/designs/paco/options/waistangle/readme.mdx b/sites/orgdocs/docs/designs/paco/options/waistangle/readme.mdx
new file mode 100644
index 00000000000..71fb1aeb2c5
--- /dev/null
+++ b/sites/orgdocs/docs/designs/paco/options/waistangle/readme.mdx
@@ -0,0 +1,10 @@
+---
+title: 'Waistband angle'
+---
+
+Controls the angle of the waistband when the garment is viewed from the side.
+
+Increasing this option will raise the back of the pants and lower the waistband in the front.
+This is ideal for those with a curvy body who want the waistband to sit below the belly in the front, but above the butt in the back.
+
+If you're setting the waistband angle to a larger value, it's also a good idea to increase the waist height to make sure you've got enough coverage in the front.
diff --git a/sites/orgdocs/docusaurus.config.mjs b/sites/orgdocs/docusaurus.config.mjs
index 78a80e395e8..88b3a5363db 100644
--- a/sites/orgdocs/docusaurus.config.mjs
+++ b/sites/orgdocs/docusaurus.config.mjs
@@ -1,6 +1,8 @@
import path from 'node:path'
import { themes as prismThemes } from 'prism-react-renderer'
import designs from '../../config/software/designs.json'
+import tailwindcss from 'tailwindcss'
+import autoprefixer from 'autoprefixer'
/*
* We bundle the options as one page, so keep them out the sidebar
@@ -122,6 +124,57 @@ const config = {
return fsConfig
},
}),
+ [
+ '@docusaurus/plugin-content-blog',
+ {
+ id: 'showcase',
+ routeBasePath: 'showcase',
+ path: './showcase',
+ authorsMapPath: '../authors.json',
+ postsPerPage: 50,
+ blogSidebarCount: 10,
+ blogSidebarTitle: 'Recent Showcases',
+ },
+ ],
+ [
+ '@docusaurus/plugin-content-blog',
+ {
+ id: 'newsletter',
+ routeBasePath: 'newsletter',
+ path: './newsletter',
+ authorsMapPath: '../authors.json',
+ blogTitle: 'FreeSewing Newsletter',
+ blogDescription: 'Four times per year, honest wholesome content, no ads, no nonsense',
+ blogSidebarCount: 50,
+ blogSidebarTitle: 'Newsletter Editions',
+ postsPerPage: 10,
+ feedOptions: {
+ type: 'rss',
+ title: 'FreeSewing Newsletter Editions',
+ description: 'A feed for the FreeSewing newsletter',
+ copyright: 'FreeSewing',
+ language: 'en',
+ createFeedItems: async (params) => {
+ const { blogPosts, defaultCreateFeedItems, ...rest } = params
+ return defaultCreateFeedItems({
+ blogPosts: blogPosts.filter((item, index) => index < 10),
+ ...rest,
+ })
+ },
+ },
+ },
+ ],
+ async function myPlugin() {
+ return {
+ name: 'docusaurus-tailwindcss',
+ configurePostCss(postcssOptions) {
+ // Appends TailwindCSS and AutoPrefixer.
+ postcssOptions.plugins.push(tailwindcss)
+ postcssOptions.plugins.push(autoprefixer)
+ return postcssOptions
+ },
+ }
+ },
],
i18n: { defaultLocale: 'en', locales: ['en'] },
@@ -142,10 +195,54 @@ const config = {
theme: {
customCss: './src/css/custom.css',
},
+ blog: {
+ path: 'blog',
+ // Simple use-case: string editUrl
+ editUrl: 'https://github.com/freesewing/freesewing/site/orgdocs/',
+ editLocalizedFiles: false,
+ blogTitle: 'FreeSewing Blog',
+ blogDescription: 'News and updates from the people behind FreeSewing',
+ blogSidebarCount: 5,
+ blogSidebarTitle: 'Recent blog posts',
+ routeBasePath: 'blog',
+ authorsMapPath: '../authors.json',
+ include: ['*/index.mdx'],
+ exclude: [
+ '**/_*.{js,jsx,ts,tsx,md,mdx}',
+ '**/_*/**',
+ '**/*.test.{js,jsx,ts,tsx}',
+ '**/__tests__/**',
+ ],
+ postsPerPage: 10,
+ blogListComponent: '@theme/BlogListPage',
+ //blogPostComponent: '@site/src/components/blog/post.mjs',
+ blogTagsListComponent: '@theme/BlogTagsListPage',
+ blogTagsPostsComponent: '@theme/BlogTagsPostsPage',
+ //remarkPlugins: [require('./my-remark-plugin')],
+ //rehypePlugins: [],
+ //beforeDefaultRemarkPlugins: [],
+ //beforeDefaultRehypePlugins: [],
+ truncateMarker: //,
+ showReadingTime: true,
+ feedOptions: {
+ type: 'rss',
+ title: 'FreeSewing Blog Posts',
+ description: 'News and updates from the people behind FreeSewing',
+ copyright: 'FreeSewing',
+ language: 'en',
+ createFeedItems: async (params) => {
+ const { blogPosts, defaultCreateFeedItems, ...rest } = params
+ return defaultCreateFeedItems({
+ // keep only the 10 most recent blog posts in the feed
+ blogPosts: blogPosts.filter((item, index) => index < 10),
+ ...rest,
+ })
+ },
+ },
+ },
},
],
],
-
themeConfig: {
// Replace with your project's social card
image: 'img/freesewing-social-card.png',
@@ -153,18 +250,15 @@ const config = {
title: 'FreeSewing',
logo: {
alt: 'FreeSewing Logo',
- src: 'img/logo-white.svg',
+ src: 'img/logo.svg',
},
items: [
- { to: '/docs/about', label: 'About FreeSewing', position: 'left' },
- { to: '/docs/designs', label: 'FreeSewing Designs', position: 'left' },
- { to: '/docs/measurements', label: 'Measurements we use', position: 'left' },
- { to: '/docs/sewing', label: 'Sewing Terminology', position: 'left' },
- {
- href: 'https://freesewing.org/',
- label: 'FreeSewing.org',
- position: 'right',
- },
+ { to: '/editor/', label: '🪄 Editor', position: 'left' },
+ { to: '/designs/', label: '👕 Designs', position: 'left' },
+ { to: '/docs/', label: '📖 Docs', position: 'left' },
+ { to: '/showcase/', label: '📷 Showcase', position: 'left' },
+ { to: '/blog/', label: '📰 Blog', position: 'left' },
+ { to: '/account/', label: '📰 Account', position: 'right' },
],
},
footer: {
diff --git a/sites/orgdocs/newsletter/2021q2/index.mdx b/sites/orgdocs/newsletter/2021q2/index.mdx
new file mode 100644
index 00000000000..9c0e24dbf04
--- /dev/null
+++ b/sites/orgdocs/newsletter/2021q2/index.mdx
@@ -0,0 +1,409 @@
+---
+date: '2021-04-01'
+edition: '2021q2'
+intro: "Welcome to the 2021 Spring edition of the FreeSewing newsletter. Here's what we have included for you:"
+title: '2021 Spring edition'
+authors:
+ - 1
+toc_max_heading_level: 2
+---
+
+Welcome to the 2021 Spring edition of the FreeSewing newsletter.
+Here's what we have included for you:
+
+- 👕 Pattern releases winter 2021 (1-minute read - by Joost)
+- 🕵️ Behind the seams: Wouter van Wageningen (9-minute read - by An & Wouter)
+- 🔍 Spotlight on some lesser-know FreeSewing features (3-minute read - by Joost)
+- 🤯 Some of the more crazy ideas on our drawing board (3-minute read - by Joost)
+- ❤️ FreeSewing is brought to you by the kindness of strangers (5-minute read by Joost)
+
+
+
+We hope you enjoy it.
+If not, mash that reply button and tell us what you'd like to read instead ¯\\\_(ツ)\_/¯
+
+
+
+
+
+## 👕 Pattern releases winter 2021
+
+Here's a quick recap of the new patterns we released in the first quarter of this year:
+
+- [The Bella bodice block for womenswear](https://freesewing.org/blog/bella-bodice-block/): A collaboration with somebody from the industry to replicate the kind of bodice block that's used in fashion today. Currently it has a bust dart towards the side-seam. A variation with a shoulder dart is on our todo list.
+- [The Hortensia handbag](https://freesewing.org/blog/announcing-hortensia/): Another collaboration, this time between Stofsuchti and long-time contributor Wouter Van Wageningen brought the first handbag pattern to FreeSewing.
+- [The Cornelius cycling breeches](https://freesewing.org/blog/cornelius-cycling-breeches/): More from Wouter still, these cycling breeches or knickerbockers are based on the Keystone drafting method.
+
+Click through any of the links for the blog posts announcing these patterns.
+
+
+
+---
+
+
+
+## 🕵️ Behind the seams: Wouter van Wageningen
+
+> _With two pattern releases to his name in the last 3 months,_ > _who better to shine a spotlight on than long time contributor Wouter._
+>
+> _An — one of our newer contributors — interviewed him for this newsletter:_
+
+### Bio
+
+Born in the Netherlands and lived there for 30 years before moving to “the States”.
+He accompanied his American wife when she wanted to return and has been living there for
+over 20 years. He now considers it his home, while recognizing all the emotional ties to
+The Netherlands when he goes back to visit.
+
+While a busy IT manager, he likes to create new patterns for FreeSewing from time to time.
+
+### How did you learn about freesewing?
+
+When I started sewing many years ago, I was continuously looking for patterns for men.
+The site of Joost, Makemypattern (since late 2012), came up in one of my searches, and
+I thought it was an interesting concept.
+
+### How did you become a contributor?
+
+In the beginning, there were no contributors other than Joost, that I remember. He had
+made this framework that allowed other people to make patterns that could be incorporated.
+Being a programmer, as a professional and hobbyist, this intrigued me. The originally site
+was created in the PHP programming language, one I had not worked with before. I thought
+this made for an interesting challenge to contribute to the work of Joost.
+
+As this was my first experience with the toolset, the language, and making patterns,
+I picked something as easy as [a bow tie](https://freesewing.org/designs/benjamin/).
+It is a simple object, as it is flat with a width and a height, but no real depth.
+Therefore, I didn’t have to try to shape a piece of fabric around a 3D shape. The result passed the muster of Joost, and became an official pattern on the site.
+
+Before finding FreeSewing, I had drawn a pencil skirt for my partner by just using
+her measurements. I realized while working on the bow tie that I could try to combine
+the experience of making this skirt with that of making the pattern for the bow tie, and
+make another pattern for FreeSewing.
+Thus, [the Penelope pencil skirt](https://freesewing.org/designs/penelope/) was born.
+
+### What has been your contributor work so far?
+
+I have created [the Waralee wrap pants](https://freesewing.org/designs/waralee/),
+[Albert apron](https://freesewing.org/designs/albert/), and [Cornelius cycling breeches](https://freesewing.org/designs/cornelius/).
+I also did the implementation of [the Hortensia handbag](https://freesewing.org/designs/hortensia/), but that is not my design. I got the drawings and measurements from the designer (Stoffsuchti), and translated those
+into a FreeSewing pattern.
+
+The Benjamin bow tie was totally my own creation, exactly as I imagined what it should look.
+The Penelope and Waralee designs were built from the knowledge I gathered by reading about those types of garments, and implementing my interpretation of them.
+The Cornelius is actually an implementation of a pattern in an existing drafting system (The "Keystone" System).
+
+### When and why did you start sewing?
+
+Seven or eight years ago, I wanted to know what it would be like to wear a kilt. But
+kilts are insanely expensive. They are made of very nice wool and it takes an enormous amount of time to make a real Scottish kilt. There are these “utility kilts”, which are basically cargo pants made into a kilt. More
+practical with pockets, and made out of cotton, but they still cost around $200.
+
+Because I was still figuring out whether I would enjoy wearing a kilt, it didn't make much sense to me to invest that much. While researching this I found [a website dedicated to people wearing kilts](http://www.xmarksthescot.com/), and it had a documented process on how to create your own utility kilt.
+I did have a sewing machine, it seemed within my abilities, so I bought some fabric and started sewing.
+One kilt became two, and then I figured I needed a shirt to go along with it. It should be somewhat
+contemporary to old kilts. With a little searching I found a pattern to make such a shirt. And that led to making more and more shirts, and then pants and...
+
+At one point I decided that I wasn't going to buy any more clothes, I was just going to make them.
+One exception to that are underwear and socks, as these don’t give me much pleasure in making them, and are usually ridiculously cheap. I have knitted a pair of socks, and I like knitting a lot. I just don't seem to be able to knit fast enough to keep up with the wear and tear.
+The other exception is athletic or technical clothing, as I just cannot buy the fabrics (e.g. eVent) you need for it.
+These are exclusively sold to vendors of this type of clothing. I have recently made some yoga pants and biking shorts for myself, so this may change.
+
+### What is your daily job, outside of freesewing?
+
+IT manager. I take care of the IT needs for a union of homecare workers.
+
+## What are you currently working on?
+
+Nothing for FreeSewing at the moment, but I am looking into the possibility to make a pattern based
+on the trouser block. That way, I don't have to start from scratch as I usually do, and just extend
+Joost's work. I'm looking forward to trying this approach, but I first have to complete my doublet.
+
+### Which project did you just finish?
+
+The [Cornelius cycling breeches](https://freesewing.org/designs/cornelius/) and the implementation of [the Hortensia handbag](https://freesewing.org/designs/hortensia/).
+
+### What sewing project are you most proud of?
+
+I'm proud of a lot of projects; my first shirt (even though it has a lot of faults), my first tailored coat, all of my art shirts, …
+But if I had to pick one, it would probably be [my Mondrian shirt](https://shirtartistry.blog/2019/01/23/mondrian-shirt-the-beginning/). It was the one where I went all the way from a concept in my mind, though creating it on paper, to turning it into a garment.
+
+### What in your life are you most proud of?
+
+Everybody will answer that with something like 'my children'. And I am proud of the persons they've become.
+But I think that is more something they have done, than what I have done. I was just there to help
+them when needed. One of the things I've done that I'm proud of is having been a volunteer firefighter for 10 years.
+And, for the last 20 years or so, I've worked for nonprofits trying to make the world a better place.
+
+### What do you love the most about sewing?
+
+The creativity. I like to make things. I discovered that with sewing, in contrast to things like wood or metal working, I can be really precise. And I can find the patience in myself to create that precision.
+What’s more, if I make a mistake, I can usually undo it (e.g. take the seam out). It's a lot harder to take things apart once you've glued them together.
+I also like that I can make something that is a flat drawing on a piece of paper into something that is a
+real three dimensional thing, by turning those patterns into pieces of fabric and sewing them together.
+Even the trail and error process to adapt a pattern to my needs, or to create a new pattern from scratch, is interesting to me. It's a discovery journey with practical outcomes.
+And, although I'm not good at all of the required skills, I can do most of them well enough that I can go from something in my head to something that I can wear, and that is very satisfying.
+
+### What do you hate the most about sewing?
+
+I am a bit too impatient to do large parts of sewing by hand, and that is my least favorable part of sewing. The occasional basting is fine, it is the sewing of a full seam by hand that is beyond me.
+I have made buttonholes by hand on my tailored jacket, and that was satisfying by itself. Yet it takes too much time
+and it doesn't fascinate me enough to allow me to become good at it. It'll most likely take a long time before I’ll do it again. For some reason I don't mind doing the pad stitching for lapels and such on tailored jackets.
+
+### What’s the hardest part of sewing to you?
+
+It is nearly impossible for me to draw the mental picture that is in my head on a piece of paper. I'm really
+bad at drawing free form. Because of this, I cannot, not even temporarily, put the end result of a certain clothing design on a piece of paper to look at it. And therefore I cannot get someone else’s opinion or input on it
+before I create it. It is frustrating.
+
+### What would be your advice for starting sewists/sewistas?
+
+First of all, go for it and concentrate on the parts of the sewing process you enjoy. Look at the big
+picture of creating a garment for yourself, and let that motivate you to get through the parts you
+don't like so much.
+
+Secondly, just keep going and don’t look at things that didn't work out so well too much. Everything
+takes practice, and you will get better at it. Break up things into smaller parts and think about
+what you can do to improve that one part. Maybe there's a different way to do this step that works
+better for you.
+
+Lastly, don’t be intimidated by patterns. Try different patterns, designers, and techniques. Pick out what works for you. All designers have their own way of doing certain things, and they may not always align with your strengths and weeknesses. I always
+do a zipper fly the same way, regardless of what the designer suggested. My way works for me and
+gives me good results. Others may prefer other techniques, so find your own by trying a lot of different ways.
+
+And most of all; enjoy the process of creating. The end product is an additinal benefit. Through the enjoyment of the process, you will gain the experience to get good at it. And with that, you will get the garments you like.
+
+### Are you married?
+
+Not anymore, after 25 years we amicably split up. I have a new partner now.
+
+### Do you have children?
+
+Five in total, two adult children of myself and three almost adults of my partner.
+
+### Are you a dog person or a cat person?
+
+I am a dog person, but I don’t have a dog anymore.
+
+### Do you have pets?
+
+I have had three dogs. I would enjoy having a dog, but my current life style and freedom to travel does not match up with having one.
+
+### If there was one thing you could take with you to an uninhibited island what would it be? Why?
+
+A knife, because it seems to be the most useful item to help me survive.
+
+### If there was one person you could take with you to an uninhibited island, who would it be? Why?
+
+Nobody, since I could not forgive myself for putting someone else through the same ordeal.
+I love what thousands of years of society has brought us, and I don't want to be without its fruits. So it would be cruel for me to subject someone else to this punishment.
+
+
+
+---
+
+
+
+## 🔍 Spotlight on some lesser-know FreeSewing features
+
+Regardless of whether you've only recently discovered FreeSewing, or have been a user for many years, here are some things you might not have discovered on your own:
+
+### Multilingualism
+
+FreeSewing is available in 5 languages, each with their own website. In addition to [English at freesewing.org](https://freesewing.org/), we have websites in [French](https://fr.freesewing.org/), [German](https://de.freesewing.org/), [Dutch](https://nl.freesewing.org/), and [Spanish](https://es.freesewing.org/).
+
+If you'd like to help us add more languages, [get in touch](https://discord.freesewing.org/).
+
+### Paperless patterns
+
+Not a fan of printing and sticking pages together? Or perhaps you don't have a printer? Don't despair, because FreeSewing provides **paperless patterns**.
+
+You'll find the **paperless** option under the **Pattern options**. Flick it on and now you'll have dimensions as well as a grid in either metric or imperial so you can transfer your pattern directly to fabric or another medium like pattern paper.
+
+### Custom layout/tiler
+
+Laying out the different pattern parts on your pattern happens automatically. But alas, it's one of those things that computers are far worse at that humans. Often you can save a bunch of pages by squishing things together yourself. If only you could, right?
+
+Turns out you can. Simply **Export** your pattern as **SVG** and fire up **Inkscape** (which you can [download for free](https://inkscape.org/)).
+
+When you open the pattern in Inkscape, the entire pattern will be in a _group_, so first thing to do is to **select** it and **right-click** and choose **ungroup**. Now you can rotate and flip each part around and arrange them just as you like. When you're happy, click **File** -> **Document properties** and choose **Resize page to content**.
+
+When you're done, save the SVG and upload it to our custom tiler: https://tiler.freesewing.org/
+There you can upload the SVG and pick your page size, and you'll get a PDF just like on the website. Only this time, with your own layout 👍
+
+### Remove details from a pattern
+
+This option was originally intended for laser cutters, but has other uses too.
+
+For this, you'll have to enable so-called **Expert mode**. Under **Pattern options**, click **Expert mode** and set it to **Show**.
+Now, you'll have the **Advanced** option under which you'll find **Detail**. If you set it to **Hide**, your pattern will not only show the outline of the different pattern parts.
+
+This is also handy for when you are making doll clothes as the titles, logo, and size box end up being taking up more space than the pattern itself.
+
+### Include only certain pattern parts
+
+Since we've unlocked **Expert mode**, here's another tip you mightn't be aware of: the **Contents** option. This option allows you to not draft the entire pattern, but only those parts that you want.
+
+This can be handy if you want to make a change to a pattern and only print those parts that are affected. But also if you want to combine different styles. For example you can generate a complete Simon pattern, and then additional collar or cuff styles where only the collar/cuffs are included in the pattern.
+
+Got an idea for some other cool feature you'd like to see? Make sure to [let us know](https://discord.freesewing.org/).
+
+
+
+---
+
+
+
+## 🤯 Some of the more crazy ideas on our drawing board
+
+We're rarely stuck for things to do, because some work is never finished: adding more patterns, writing more or better documentation, improving user experience, and so on.
+
+But sometimes, we also like to shoot the breeze and come up with some ideas that are a bit off the beaten path. Here's a selection of them that we've been mulling over. Don't consider it a sneak preview though, some of these are bona fide moonshots:
+
+### Allowing users to create their own pattern layouts on the site
+
+The pattern layout — the way the individual pattern pieces are laid out on the page — seems like the low-hanging fruit of improvements. Almost without exception, your pattern will not be the most optimal layout.
+
+Thing is, computers are not very good at this sort of spacial problem that's called _packing_. We could try to tweak the algorithm, but human beings are just intuitively better at it than computers are.
+
+**The goal**
+To make it possible (and ideally easy) for people to do their own layout. So that before you export your pattern, you have the option to arrange it just as you like it.
+
+**What it would take**
+This is something that's been on the drawing board for quite some time. FreeSewing core already has support for custom layouts, so it's really _just_ a matter of creating the frontend interface to handle the layouting.
+
+**Roadblocks**
+Doing the SVG layout on mobile is a minefield.
+
+**Chances of this happening**
+High. We're almost certainly going to do this at some point.
+
+### Using 3D renders to showcase patterns or options
+
+3D in general is something we have our eye on, but in this case it's really about presenting the patterns to the user. People want to know what they're going to get, and line drawings and showcases can only go so far to show that.
+
+The idea would be to be able to show patterns on a 3D avatar. However, a big caveat is that we would have to be able to somehow automate this process since we can't go manually creating a 3D render of every pattern & option.
+
+**The goal**
+Create 3D renders of different patterns and the effect of pattern options. Integrating this with our build pipeline so those renders can be auto-generated.
+
+**What it would take**
+Some work has been done already. Last year we wrote a DXF-exporter plugin that can export patterns as DXF, a popular format in 3D tools. We did some initial tests with CLO3D but the lack of automation options not to mention the fact that it's a closed-source commercial product made us abandon that path.
+
+The right thing to do would be using Blender so that this work would benefit the open source community.
+
+**Roadblocks**
+Blender is not that easy to learn. Automation and plugins in Blender need to be written in Python, and we're a JavaScript project. Basically, we have nobody who knows how to even start on this today.
+
+**Chances of this happening**
+Medium. Could really use some help on this.
+
+### Frankenstein patterns
+
+The name _Frankenstein pattern_ is something that came up during one of our contributor calls, and the name sort of stuck. The idea is that you could mix and match parts from different patterns to create your own combinations. Like, pick a top and combine it with the sleeves from another top and perhaps the collar from yet another top.
+
+**The goal**
+Allow patterns to be created by combining different building blocks.
+
+**Roadblocks**
+This would require some sort of inter-pattern API or interface specification.
+
+**Chances of this happening**
+Low. For pattern developers, combining parts from different patterns is already possible via inheritance. Exposing this sort of functionality to the user level would already be a significant challenge. But doing it in a way that requires no code and merely some clicking around is pretty far out there.
+
+
+
+---
+
+
+
+## ❤️ FreeSewing is brought to you by the kindness of strangers
+
+On April 5th 2011, a Tuesday of all days, I published a sewing pattern on my blog.
+BXR-M01A was a pattern for boxer briefs that came in one size only, and was free to download under a Creative Commons license.
+
+It was also the very first pattern I ever published.
+
+The event as such doesn’t deserve much attention, but it just happens to have occurred 10 years ago — almost to the day.
+So it seemed a good starting point for a brief history of how we got from there to here.
+
+### The Early Days
+
+I started drafting my own sewing patterns because I had fitting issues with store-bought ones.
+Drafting my own patterns held the promise of flawless fit with just a bit of effort (Oh, how naive I was!).
+The fiddling about with paper had me bored in no time, so I set out to try to automate that part of the process.
+I came up with a way to reduce the pattern to a number of steps, and abstract away the measurements.
+Now, you could feed it whatever measurements you wanted, and it would re-draft the pattern for you.
+
+I launched the beta version of my little pattern machine in February of 2012.
+It wasn’t an immediate success.
+As a matter of fact, to the best of my knowledge, only one person ever tested it.
+That person was Nico in Copenhagen (who I've sadly lost track of) who wrote:
+
+> _That is sooo cool._ > _I will enter my thoughts about your project using your feed back thingy on the pattern web site._ > _But you should know that the overall fit is amazing! I think I have a new favourite pattern :-)_
+
+### makemypattern.com
+
+One good review is perhaps not much to go on, but I found it rather encouraging and set out to walk this path a bit further.
+Fast-forward six months and I’d rewritten the thing from scratch, and with four patterns available officially launched makemypattern.com in September of 2012.
+
+Things sort of trickled along as I added a pattern every now and then.
+Then, in January 2014 I got an email from Tin Doan in Canada asking how they could donate to the site.
+I sort of expected this to be some sort of scam, but I still answered the email asking “Are you for real?”. Tin answered:
+
+> _Yes Joost, I'm serious. Please kindly accept $200.00 from me._
+
+Sure enough, I soon found myself at the receiving end of a $200 donation.
+To this day, it remains the highest amount I've ever received in a single donation.
+
+This unexpected yet very tangible token of support felt like a fork in the road.
+I'd been happy building this thing mostly as a learning experience.
+Now it felt like perhaps it needed a bit more devotion and care.
+
+In retrospect, this point probably marks the end of my social life 😂 good thing I had found a partner by now (phew).
+
+### Pivot to Open Source and freesewing.org
+
+So of course I rewrote the whole thing — again — into what would turn out to be the last version of makemypattern.com.
+By the summer of 2016, five years after my first pattern release, and four years after launching makemypattern.com,
+my little hobby project had made a lot of headway, and I found myself at another turning point:
+Keep doing what I'm doing, or try to break through the next barrier.
+
+Up until this point, I had been doing makemypattern.com on my own.
+The code wasn’t even available. I wanted to make it into an open source project that people could contribute to.
+But I had never started it with that ambition, and it was going to take some serious refactoring
+to make it into something that people would be able to wrap their heads around.
+
+So I did exactly that, and in March 2017 I launched v1.0.0 of freesewing.org.
+A new name (and logo) to mark the transition to an open source project.
+This was a much more mature release, with a documented API and it led to the first patterns contributed by others.
+It also came with a hat I hadn't worn before, open source maintainer.
+
+### FreeSewing v2.0.0: It's JavaScript Now
+
+During all this time, the world of frontend development had changed and we could do so much more in a browser.
+Rather than picking a bunch of options and getting a pattern in the end, the idea of seeing
+the pattern update in your browser as you changed options was — at least in theory — attainable now.
+
+With that goal in mind, I started over again, this time in JavaScript.
+And in August of 2019 v2.0.0 landed on freesewing.org.
+A complete rewrite in JavaScript with a new website to boot.
+
+Since then, I've been able to keep myself from rewriting the entire thing again 🤞
+
+### The Family You Choose
+
+We're getting closer to present time, but there's one more moment that stands out for me,
+and that's a blog post from August 2020 where — maybe for the first time — I explicitly asked for help to grow the project.
+Since then, a community has developed around FreeSewing that feels more valuable to me than any code I could ever write.
+
+Motivation is a powerful thing, and I wonder whether FreeSewing would exist today if it wasn't for the full-on enthusiasm of Nico in the early days.
+Or whether it would have fizzled out without Tin injecting some rocket fuel in the form of a donation.
+Or whether perhaps I would have succumbed to burnout by now if I hadn't found such a great group of people to walk this road with me.
+
+Speaking of which: There are countless individuals who have contributed to get to where we are today.
+I couldn't possible mention them all. But what they have in common is that at one point, they were complete strangers to me, as I was to them.
+
+It’s the kindness of strangers that brought us here.
+
+Thank you strangers.
diff --git a/sites/orgdocs/newsletter/2021q3/index.mdx b/sites/orgdocs/newsletter/2021q3/index.mdx
new file mode 100644
index 00000000000..896f55e78d5
--- /dev/null
+++ b/sites/orgdocs/newsletter/2021q3/index.mdx
@@ -0,0 +1,290 @@
+---
+date: '2021-07-01'
+edition: '2021q3'
+intro: "Welcome to the 2021 Summer edition of the FreeSewing newsletter. Here's what we've included for you:"
+title: '2021 Summer edition'
+authors:
+ - 1
+ - 840
+ - 13050
+ - 19867
+toc_max_heading_level: 2
+---
+
+Welcome to the 2021 Summer edition of the FreeSewing newsletter.
+Here's what we've included for you:
+
+- 🩲 Pattern releases spring 2021 (1-minute read - by Natalia)
+- 👀 Help Sanne test her new bodice block (1-minute read - by Joost)
+- 😢 Farewell David: Remembering David Page Coffin (2-minute read - by Joost)
+- 🕵️ Behind the seams: An Gargouri (8-minute read - by Eleonore)
+- 🤓 Git good: Let’s walk through a simple FreeSewing contribution together (2-minute read - by Natalia)
+- ⚡ FreeSewing v2.16: This one's for the developers (1-minute read - by Joost)
+- 🤷 Gender inclusivity (3-minute read - by Karen)
+
+
+
+We hope you enjoy it.
+If not, mash that reply button and tell us what you'd like to read instead ¯\\\_(ツ)\_/¯
+
+
+
+
+
+## 🩲 Pattern releases spring 2021
+
+Here's a quick recap of the new patterns we released in the second quarter of this year:
+
+- [The Ursula undies](https://freesewing.org/blog/announcing-ursula/): A highly-customizable underwear pattern with plenty of options to achieve different styles. This is my first pattern design. My hope is that Ursula will help you customize undies with the perfect look and fit for your own body. Interested in making a test pair and helping to refine the pattern? I'd love to chat with you over in the [FreeSewing Discord](https://discord.freesewing.org/).
+- [The Charlie Chinos trousers](https://freesewing.org/blog/announcing-charlie/): Joost designed a new trouser pattern that will adapt better to differently shaped bodies. Charlie has 31 options that allow you to configure your trousers so you get them just as you like.
+
+Click through either of the links for the blog posts announcing these patterns.
+
+
+
+---
+
+
+
+## 👀 Help Sanne test her new bodice block
+
+Sanne is working on a bodice block that is based on her own drafting experience and the
+techniques she learned. She's hoping to get some feedback from a couple of more testers,
+particularly people with larger cup sizes.
+
+If you'd like to help out, you can [generate your own version of the block online](https://bodice-block-sannek.netlify.app/).
+
+
+
+---
+
+
+
+## 😢 Farewell David: Remembering David Page Coffin
+
+In early May, I received news of the passing of David Page Coffin. David was editor of Threads
+Magazine back when animals could talk, and his books on making trousers and shirts adorns my
+bookshelves, as I'm sure they do many others.
+David was also a friend of FreeSewing, and he reached out to me a couple of years ago to discuss plans
+he had for a new book. He wanted to make another book about shirts. Not so much about the basic grunt
+work of making a shirt that fits. But more about all the little style variations and creative
+embellishments one could add to a shirt to make it into something really special.
+
+Still, he also felt that somebody who would pick up a book about making shirts would also expect
+to, you know, make a shirt from it. So he was wondering whether he could point them to FreeSewing's
+Simon pattern instead of having to dedicate a section of the book to the basics.
+
+I really enjoyed talking to David at length about what he was working on, and his tacit endorsement
+felt like a big deal from someone who would have no trouble getting his foot in the door of a
+household-brand pattern company.
+
+Like so many other ideas and good intentions, this one too ended up in the time-deprived _maybe
+one day_ pile.
+
+Still, for a brief moment I was allowed to bask in the David's enthusiasm. It is a conversation I will
+continue to cherish. And also one that made one thing painfully clear to me: He will be sorely missed.
+
+
+
+---
+
+
+
+## 🕵️ Behind the seams: An Gargouri
+
+> _When we were discussing what kind of content we would like to create for_ > _the very newsletter you’re reading now, An didn’t have to think long._ > _She wanted to interview as many contributors as she could, and share_ > _what she found out with you. Why? “I’m just a curious person”, she says._ > _Which made us curious about her._
+
+### How did you learn about FreeSewing?
+
+I only started sewing last year, so I’m still very much a beginner.
+I started out with face masks and when those worked out okay,
+I got excited and started on the most complicated dress pattern I could find.
+Needless to say, that didn’t turn out great. So I backtracked and started looking for
+sewing patterns with accompanying instruction videos. I mean, those are basically
+free sewing lessons. Awesome, right?
+
+That’s how I found the pattern for
+the [Bruce boxer briefs](https://freesewing.org/designs/bruce/) with Joost’s
+video instructions. And honestly, once you understand how FreeSewing works,
+how could you not get hooked? I started entering measurements and watching the magic happen.
+I was so impressed that all of this was available for free, that I became a Patron.
+Joost sent me an e-mail with a link to [FreeSewing’s Discord](https://discord.freesewing.org/) —
+an online platform for community building — and that’s where
+I found out about the contributor calls. Being a curious person, the rest is history!
+
+### How did you become a contributor?
+
+That happened sort of by accident. Like I said, I’m curious.
+I wanted to know all about FreeSewing’s contributor team, so these interviews
+were a great way to ask all my nosy questions. Maybe I got a bit carried away.
+That [first interview with Wouter](https://freesewing.org/newsletter/2021q2/#%EF%B8%8F-behind-the-seams-wouter-van-wageningen) took
+so much time! But I’m also not one to quit when I’ve started something,
+so you’ll see more of these interviews in the next editions of the newsletter.
+By the way, if anyone would like to be interviewed, I’m here and I can’t wait to hear everything you have to say!
+
+### What do you enjoy the most about your interviews with contributors?
+
+I especially love people’s answers to the question what they would take with them to an
+uninhabited island. But I’m not giving anything away. You’ll have to wait to read the interviews yourself.
+
+### What would YOU take with you to an uninhabited island?
+
+Why didn’t I see this question coming?! I would take one of the books that I never get around to reading.
+Let’s see … ‘Making History’ by Stephen Fry. Or wait, is there food on this island? I’m not going to
+fish or anything, and I don’t think I’d be good at starting a fire. Maybe I should just take some canned food.
+And I’ll need my meds.
+
+### And if you could take one person?
+
+That’s easy. I’d take my husband, Bart. That would solve all my problems, anyway.
+Bart will fish and hunt and light a fire. He can do anything.
+
+### Are you a sewist? A coder? Both? Neither?
+
+Right now, I’m mostly a sewist. I did try to learn coding 15 years ago.
+That’s actually how I met my husband. And then, well, other priorities took over.
+I can feel the itch to pick it up again now. FreeSewing has me excited about pattern drafting and coding.
+I’d love to find out what I can do if I set my mind to it.
+
+### What are you working on right now?
+
+I’m proud to say I’ve just started using patterns without videos again and feeling good about it!
+I just made a muslin for a pretty blouse with a cut-out and little buttons, and it’s looking good.
+I’m going to have a go at it in my fashion fabric. You know, I’m a princess at heart.
+I love girly dresses and blouses, especially those vintage styles with cinched waists.
+Those aren’t the best silhouettes for me, though. That’s why I want to learn how to draft my own patterns.
+I love the idea of turning 2D pieces into a 3D garment and making it fit my body.
+I think that’s a really cool thing about sewing, by the way.
+The pattern pieces can look like such a puzzle, but once you start putting it together, it suddenly turns into a garment.
+
+### Anything you dislike about sewing?
+
+Honestly? I dislike most of the process other than actually sewing the pieces together.
+I also really hate cutting patterns out of fabric. That’s where Bart comes in, usually.
+I tend to buy less fabric than I’ll actually need, but Bart is so good at pattern
+tetris that he can make almost anything fit onto the fabric.
+
+### Any advice for fellow sewists?
+
+Just keep going. It can be so frustrating when things don’t work out the way you’d envisioned.
+But you just have to wait for things to ‘click’. And they will, eventually.
+I think, Haha! I’m still a beginner myself!
+
+### Do you sew more for yourself or for others?
+
+Bart dislikes new things, so if I make him anything, he’ll wait five years before he decides to wear it.
+And our son Luc has more clothes than he can wear already. He doesn’t need any more.
+So I sew for me. I’m the only one who’s actually grateful for handmade clothes!
+
+### What do you do outside of FreeSewing?
+
+Professionally, I’m a management assistant, although I’m not working at the moment.
+I’m really proud that I got my bachelor’s degree, even though people said I couldn’t do it.
+Clearly I could, and I’m so glad that I pushed through! I’m not sure where I’m headed right
+now in my career, but I’m taking this time to organize our home. Nothing Marie Kondo-style, mind you.
+I’d be terrible at that. I love having stuff around. But it sure would be nice if all that stuff was a bit more organized.
+
+### What else do we need to know about you?
+
+I can be a bit of a bull in a china shop. Forgive me!
+I’m impulsive, I’m honest and sometimes I should think twice before I say something.
+But it all comes from a good place!
+
+
+
+---
+
+
+
+## 🤓 Git(Hub) Good: Let’s walk through a simple FreeSewing contribution together
+
+You — yes, you — can contribute to FreeSewing. On the way, you can
+learn a little bit about GitHub. Don’t panic. You’ll love it.
+
+I think the easiest way to get your feet wet is cruising around the documentation
+at [FreeSewing.org](https://freesewing.org/) or [FreeSewing.dev](https://freesewing.dev).
+Occasionally you’ll find a typo or a broken link, or just an opportunity to phrase something more clearly.
+
+On [FreeSewing.dev](https://freesewing.dev), you can click on [For Editors](https://freesewing.dev/editors/)
+for a friendly reference guide. At time of writing, I did that and tried clicking
+the [Common tasks for editors](https://freesewing.dev/howtos/editors/) link at the bottom.
+It took me to a _Page not found_ message with a sad robot. Yippee!! Let’s fix it.
+
+First, let’s find the correct link. I know I’m looking for a page called _Common tasks for editors_,
+so I click the magnifying glass icon, put “Common tasks for editors” in the search bar and
+get this: https://freesewing.dev/editors/howtos. Looks good.
+
+Then, let’s go back to the _For editors_ page. Click the pencil icon next to the page title.
+
+Hey, now we’re in GitHub. Let’s create an account.
+
+After creating our account, we'll fork the FreeSewing markdown repository, or repo.
+The repo contains a bunch of FreeSewing’s files and the history of changes to those files.
+
+At this point, we're editing the _For editors_ file. We’ll swap out the old link with the
+new link we identified, and then propose changes. Let’s give the proposal a nice title and description.
+
+Time to submit a pull request! Now we’re cooking with fire. A pull request, or PR, is a way to
+tell FreeSewing that we are proposing a change. In this case we’re saying: "Hi, I found a broken link and I fixed it".
+
+Finally, someone at FreeSewing will review the PR and say: "Cool, this looks great,
+so I’ll accept the change; I’ll _merge_ it". That will send you, the author, a brief email,
+it’ll be updated in GitHub, and when Joost next deploys the site, typically within a week or so,
+you’ll see your contributions live on FreeSewing.org or FreeSewing.dev. Crushed it.
+
+
+
+---
+
+
+
+## ⚡ FreeSewing v2.16: This one's for the developers
+
+We rolled out FreeSewing 2.16 in May, and a minor version bump typically means a new pattern.
+Not this time though, because we've been working hard on updating our development environment
+to React 17, CRA 4, and Webpack 5.
+
+That's great news for (aspiring) developers and pattern designers, as React's new _FAST_REFRESH_
+makes everything just so much better.
+
+There's a lot of work that went into this release, but I also know it's all kinda technical and
+under-the-hood stuff. So rather than ramble on about it here,
+I will just [point you to the blog post on the matter](https://freesewing.org/blog/react-17/).
+
+
+
+---
+
+
+
+## 🤷 Gender Inclusivity
+
+A month or two back, some FreeSewing users asked a really great question
+on the [Discord](https://chat.freesewing.org/).
+What is the goal of having a "womenswear" and "menswear" tag on FreeSewing patterns,
+and is it really necessary? While some of our users found the tags helpful for sorting,
+others felt alienated by the terminology, or didn't feel like either term represented
+them. We thought we could do better, so we've made a few changes.
+
+**Tags are gone!** 🎉
+
+Instead, we now have departments. For the moment, these departments include
+Accessories, Bottoms, Tops, Coats & Jackets, Underwear, and Swimwear.
+The departments are listed at the top of the [Designs](https://freesewing.org/designs/) page,
+along with difficulty ratings and types of patterns (pattern or block).
+If you are looking for something in particular, you can use the departments to filter
+patterns, then decide what's right for you!
+
+**Why is this an improvement?** 🤔
+
+The old categories on FreeSewing's Designs page, including menswear and womenswear,
+were developed based on the types of categories you might find at a clothing shop.
+However, we're not a clothing shop. And that's kind of the point.
+FreeSewing patterns are made-to-measure because they're meant for everyone.
+We think these new departments are a better representation of that.
+
+These categories were also not visible on the Designs page - you had to do a little more
+work to filter patterns. As we add more patterns to FreeSewing, it made sense to add some filters,
+so you can more easily find just what you're looking for.
+
+Thanks to the users who started this discussion and helped make FreeSewing a little better! ♥
diff --git a/sites/orgdocs/newsletter/2021q4/index.mdx b/sites/orgdocs/newsletter/2021q4/index.mdx
new file mode 100644
index 00000000000..b2dff74ee75
--- /dev/null
+++ b/sites/orgdocs/newsletter/2021q4/index.mdx
@@ -0,0 +1,174 @@
+---
+date: '2021-10-01'
+edition: '2021q4'
+intro: '2021 Fall edition'
+title: '2021 Fall edition'
+authors:
+ - 1
+ - 840
+ - 13050
+ - 20400
+ - 20650
+toc_max_heading_level: 2
+---
+
+Welcome to the 2021 Autumn edition of the FreeSewing newsletter.
+Here's what we have included for you:
+
+- 🎉 Pattern releases fall 2021 (1-minute read - by Karen)
+- ✏ Call for feedback: Hellgy's user survey (1-minute read - by Karen, 5-minute survey by Hellgy)
+- ✨ Version 3 roadmap (3-minute read - by joost)
+- 🕵 Behind the seams: Anneke (5-minute read - by Anneke, An, and Eleonore)
+- 👻 Halloween 🕷 costume 👽 ideas (1-minute read - by bobgeorgethe3rd and Lucian)
+- 😋 We have a TikTok now! (1-minute read - by Lucian)
+- 🎧 Sew over 50 podcast, double-dose with Wouter and Joost (1-minute read - by Karen, over an hour of podcast fun by Maria)
+- 👕 Pattern Project (2-minute read - by joost)
+
+
+
+We hope you enjoy it.
+If not, mash that reply button and tell us what you'd like to read instead ¯\\\_(ツ)\_/¯
+
+
+
+
+
+## 🎉 Pattern releases fall 2021
+
+A new pattern is out that's perfect for fall, at least if you're in the northern hemisphere.
+
+[The Yuri hoodie](https://freesewing.org/blog/annnouncing-yuri/) is based on the [Hugo](https://freesewing.org/designs/hugo/) and [Huey](https://freesewing.org/designs/huey/) hoodie patterns, but it's got something a little extra.
+Or rather, it doesn't. Yuri has no zippers!
+
+Designed by [Hellgy](https://freesewing.org/makers/hellgy/) and coded by [Biou](https://github.com/biou/), Yuri uses overlapping panels secured with buttons to keep you cozy and stylish.
+
+
+
+---
+
+
+
+## ✏ Call for feedback: FreeSewing user survey
+
+FreeSewing rockstar Hellgy [didn't just release a new pattern this quarter](https://freesewing.org/blog/annnouncing-yuri/), they also put together [a FreeSewing user survey](https://forms.gle/7zFSJP7AbUeg3Tbo9)!
+Their goal: find out what our users like or dislike and find easy or difficult, then use that information to help with the UX/UI design of the site.
+
+Here's where we need you! Do you have 5 minutes and want to help out FreeSewing? [Fill out the FreeSewing user survey](https://forms.gle/7zFSJP7AbUeg3Tbo9) and let us know how you use the site and what your experience has been.
+
+
+
+---
+
+
+
+## ✨ Version 3 roadmap
+
+It's been a bit over 2 years [since FreeSewing v2.0.0 came out](https://freesewing.org/blog/announcing-v2/). Since its release, we've been working on adding new designs as well as improving things big and small, and it's fair to say that the v2.19 release that we're currently preparing is leaps and bounds ahead of that 2.0 version from 2 years ago.
+
+Still, there's a number of things we'd like to do but we can't. Or at least not without breaking a bunch of stuff, which we won't because FreeSewing practices something called [semantic versioning](https://semver.org/). That's a fancy term that boils down to version numbers that looks like major.minor.patch. For example: 2.18.1.
+
+The way it works is that for bugfixes, you increase the patch level. For new features, you increase the minor level. And the major number is only increased for so-called breaking changes.
+
+Another way to look at it is that when you practice semantic versioning, you make a promise to your users: As long as you stick to the same major version, we won't break your stuff.
+That is not super relevant for regular users of freesewing.org but is very important for people who are building on top of our software, and example of which you can read further down in this newsletter.
+
+In practical terms, everything we have a _ooh that would be nice but it would break things_ idea, we file it under _maybe in the next major release_. And after two years, we feel we've got enough of a grab-bag of ideas to start being serious about what we want to see in version 3.
+
+To that extend, we have published [the FreeSewing v3 roadmap](https://github.com/freesewing/freesewing/discussions/1278). It is a list of all the things that we would like to see happen in the next major release. And it's open for feedback, suggestions, and ideas. In other words, if there's something you always wanted to see in FreeSewing, or if you've got some great ideas for us, now is the time to chime in. You can [comment on the roadmap](https://github.com/freesewing/freesewing/discussions/1278), or [join us on Discord](https://discord.freesewing.org/).
+
+
+
+---
+
+
+
+## 🕵 Behind the seams: Anneke
+
+_We’re happy to introduce you to another of FreeSewing’s contributors. She’s multi-talented, has green hair and the best sense of humour. Anneke was around before FreeSewing was even a thing. Without her, FreeSewing wouldn’t have a face … or should we say, skull?_
+
+### How did you learn about FreeSewing?
+
+“I met Joost at a blog meet-up, way back in the day. You know it was a long time ago because Joost still left the house and socialising was still allowed. Anyway, we started following each other and that’s how I found about his patterns-to-measurements project. It was still called MakeMyPattern at that time. Apart from my work as a seamstress and getting a second degree in animal care, I’m also an illustrator. At some point Joost asked me to design a logo for FreeSewing, and that’s how Skully happened.”
+
+### What else have you been up to as a contributor?
+
+“Joost and I created a pattern together, Carlton and Carlita. They are two versions of the coat Benedict Cumberbatch wears in “Sherlock”. I also help out with translations, manage our Facebook group and test new patterns if they are something that I would wear.”
+
+### What drew you to sewing?
+
+“I started sewing over ten years ago. My mother had no inspiration for a birthday present but she saw me messing around with some fabric and gave me a sewing machine. It all went downhill from there. I currently work as a seamstress parttime, doing mostly repairs and alterations. It's very different from sewing from scratch, and interesting in its own way. I still sew for fun, too. I love how sewing gives me absolute control over my wardrobe. I'm no longer limited to what's on offer in shops, I can wear whatever I want in the materials that I want. As someone who can get very sensitive to textures and fit, this is a huge advantage.”
+
+### What’s the hardest part of sewing to you?
+
+“Finding the balance between doing something I enjoy and owning too many clothes. Sewing for others feels too much like work, so if I sew in my spare time, it’s always for me. But you do end up with a LOT of clothes, and that makes me feel guilty or wasteful sometimes. I try to see the giant wardrobe as a testimony to my learning process, and donate the things that are no longer worn so they get another chance. On a less serious note, I’m terrible at cleaning up after myself when I’m sewing. I’m a messy person and it’s a messy activity. What can you do?”
+
+### What would be your advise for starting sewists/sewistas?
+
+“Be ambitious. You will learn a lot from projects that challenge you. It's OK to start with very simple things just to learn how to use your machine, but don't be afraid of zippers or buttons or collars. The internet is full of information and tutorials, and if you mess it up, learn from it and try again. I’m still proud of my own “milestone” projects that tought me new skills and pushed me forward. My first real coat, first pair of jeans, first underwire bra.”
+
+### Are you a dog or a cat person?
+
+“I’m an animal person. All animals are good in my book. Except for mosquitos, they can go fuck themselves. Can I say that?” (You can, and you did.)
+
+### Where can we find you on social media?
+
+You can find my (relatively quiet) blog at www.annekecaramin.com or my Instagram at [@annekecaramin](https://www.instagram.com/annekecaramin/).
+
+
+
+---
+
+
+
+## 👻 Halloween 🕷 costume 👽 ideas
+
+With Halloween just four weeks away, we've got something special lined up for you: Lucian and bobgeorgethe3rd are putting the finishing touches on a list of ideas for awesome costumes to sew.
+And — best of all — you can make all of them from FreeSewing patterns!
+
+The ideas range all the way from recreating a Victorian-esque look with extravagant sleeves, to embodying the role of Spongebob.
+
+There's plenty of options, for all ages, so keep on eye on [our blog](https://freesewing.org/blog/) for spooky updates as Halloween draws closer.
+
+
+
+---
+
+
+
+## 😋 We have a TikTok now!
+
+You may have noticed that [our Instagram account](https://www.instagram.com/freesewing_org/) has been posting a lot more lately. True! But that's not the only social media work done; we have a TikTok account now! [You can find it under @freesewing_org](https://www.tiktok.com/@freesewing_org), which is the name all of our social accounts carry. Who knows what the future holds... 👀
+
+
+
+---
+
+
+
+## 🎧 Sew over 50 podcast, double-dose with Wouter and Joost
+
+FreeSewing's very own Wouter (you may remember him from the interview in the first FreeSewing newsletter) has been interviewed for the Sew Over 50 podcast! Tune in to learn about how Wouter got into sewing, the projects that intrigue him, his advice for new sewists, and his work with FreeSewing!
+
+And just under the wire for this newsletter, Joost has also been recently interviewed by Sew Organised Style, sharing how FreeSewing came to be, how you can get involved, and what brought Joost to sewing in the first place! Plus bonus thoughts on finding the perfect shoes.
+
+Find out more on the [Sew Organised Style page](https://seworganisedstylepodcast.com/), and listen to Wouter's podcast [here](https://seworganisedstylepodcast.com/2021/08/12/wouter-vdub/) and Joost's podcast [here](https://seworganisedstylepodcast.com/2021/09/27/freesewing-org/), or look for Sew Organised Style on your favorite podcast app.
+
+
+
+---
+
+
+
+## 👕 Pattern project
+
+To be clear: This is not an ad. But I do want to talk about a new clothing company based in the UK named Pattern Project. They describe themselves on [their website](https://www.pattern-project.com/) as:
+
+> _Pattern Project is a South London micro-factory. We make clean, urban, local manufacturing of clothing possible and cost-effective. We produce clothing after it is sold in a matter of days._
+>
+> _We sell Sew-It-Yourself Kits and Ready-To-Wear clothes. The kits contain precut and annotated fabric are easy to make and take less time than regular sewing._
+
+The reason I'm writing about them in our newsletter can't be glanced from their website, nor will you [read about it in the press](https://www.theguardian.com/lifeandstyle/2021/sep/28/sew-it-yourself-inside-the-zero-waste-zero-sweatshop-revolution). But behind the scenes of this micro-factory, FreeSewing churns out the patterns for the laser machines that cut the fabric.
+
+It feels significant somehow to cross that threshold from _nice hobby website you've got there_ into a place where FreeSewing is a project on which other build their business, and in a very tangible way, their livelihood.
+
+I don't even know if the achievement this unlocks carries a name. But I wanted to share it and thank all our contributors and patrons for their support without which we would have never gotten this far.
diff --git a/sites/orgdocs/newsletter/2022q1/index.mdx b/sites/orgdocs/newsletter/2022q1/index.mdx
new file mode 100644
index 00000000000..b1cb7ed9574
--- /dev/null
+++ b/sites/orgdocs/newsletter/2022q1/index.mdx
@@ -0,0 +1,188 @@
+---
+date: '2022-01-01'
+edition: '2022q1'
+intro: 'Welcome to the 2022 Winter edition of the FreeSewing newsletter.'
+title: '2022 Winter edition'
+authors: 1
+toc_max_heading_level: 2
+---
+
+Welcome to the 2022 Winter edition of the FreeSewing newsletter.
+
+Unlike other editions where we drop a Smörgåsbord of blurbs from various contributors in your mailbox, you're going to have to do with just me this time around. That means a bunch of em dashes — everyone's favorite punctuation mark — and I'm happy to report that two paragraphs in I've already managed to squeeze in one of them A's with a circle over it. Nice!
+
+So much for form, let's talk content. Here's what I'll be covering:
+
+- 🎉 2021 is salted and burned
+- 🧐 What our contributors have been up to in 2021
+- 🎖️ FreeSewing is now an '_all contributors_' project
+- 🚧 Why version 3 has been put on hold
+- 🤓 What I've been up to in 2021
+- 🐛 FreeSewing's bug bounty program
+- ⛑️ Yearly revenue and where it went (spoiler: same as always)
+- 🤞 What I hope will happen this year
+
+
+
+Y'all ready for this? Let's do it.
+
+
+
+
+
+## 🎉 2021 is salted and burned
+
+Well yes I binge-watched all 15 seasons of [Supernatural]() this year because what else were we supposed to do, locked in our homes as we were. And if that dreamboat Dean has taught me anything, it's that you should salt, then burn whatever you want to get rid of for good.
+
+I don't mean to say there was nothing good about 2021. As a matter of fact, within the context of FreeSewing it was another absolutely fantastic year.
+
+But I find it in poor taste to be jubilant about a year that for many people was — yet again — about hanging in there and dealing with the many-faced monster that is the COVID pandemic.
+
+I hope you are all ok and that you did not have to bid farewell to any of your loved ones. I hope that your mental health is resilient enough to deal with all this. And if it's not, then I hope you have people to talk to. If you don't have those, you can talk to me. Hit reply and we'll figure it out somehow. We should not have to deal with any of this on our own, so don't be shy.
+
+With that out of the way, let's look at some of the good things that happened over the course of last year.
+
+
+
+---
+
+
+
+## 🧐 What our contributors have been up to last year
+
+We put out 53 FreeSewing releases this year, on average more than one per week. It speaks to the continuous churn that goes on in a healthy and thriving open source project. [Work is never over](https://www.youtube.com/watch?v=yydNF8tuVmU), and an ever growing number of people drive FreeSewing forward.
+
+The most visible of those changes are in our growing catalog of designs, with the [Bella Bodice Block](https://freesewing.org/designs/bella/), the [Hortensia Handbag](https://freesewing.org/designs/hortensia/), the [Cornelius Cycling Breeches](https://freesewing.org/designs/cornelius/), the [Charlie Chinos](https://freesewing.org/designs/charlie/), the [Bee Bikini Top](https://freesewing.org/designs/bee/), the [Lunetius Lacerna](https://freesewing.org/designs/lunetius/), the [Tiberius Tunic](https://freesewing.org/designs/tiberius/), the [Walburga Wappenrock](https://freesewing.org/designs/walburga/), and the [Yuri Hoodie](https://freesewing.org/designs/yuri/) all new patterns that were added in 2021.
+
+What I am personally very excited about is that a variety of people were involved in these new patterns, which means the list of people capable of independently cranking out parametric designs is steadily increasing. That is great news for the future.
+
+There is more of course. I think we've added more [showcases](https://freesewing.org/showcase/) this year than any previous year, and [our community on Discord](https://discord.freesewing.org/) is thriving in ways that I never would have dared to imagine.
+
+I'd like to thank all of those people for lending a hand, being part of our community, and just being awesome. If you had told me a couple of years ago that FreeSewing would evolve into a thriving D&D community with a sewing website attached I would not have believed you 😂
+
+
+
+---
+
+
+
+## 🎖️ FreeSewing is now an '_all contributors_' project
+
+Since we're singing the contributors praise — which I really can't do enough — now would be a good time to point out that FreeSewing is now officially an [all contributors](https://allcontributors.org/) project.
+
+Traditionally, contributions in open source are measured by commits, in other words: contributions to code. The revision control system (git in our case) tracks those contributors automatically, so it's easy enough to pull up a list of people who've pushed code.
+
+But there are many other ways that people contribute to FreeSewing. From translation to proofreading, community building, design work, you name it.
+
+As an all-contributors project, we want to value those contributions in a similar way and so we now maintain a list of contributors rather than relying on get's list of contributors. We are also showcasing that list of contributors prominently both [in our Readme](https://github.com/freesewing/freesewing#contributors-) and on our (future) websites (more on that later).
+
+So anybody who contributes can be added, and should be added. Doing so is a shared responsibility, since the big downside of such a maintained list is of course that we risk forgetting people. If that's the case, do reach out and let us know, we'll be happy to add you.
+
+
+
+---
+
+
+
+## 🚧 Why version 3 has been put on hold
+
+As you may know, we put out [our roadmap for FreeSewing version 3](https://github.com/freesewing/freesewing/discussions/1278) which reads like a wish list of things people would like to see in the next major release.
+
+After some initial testing-of-the-waters for some of these new features, and I have decided to put v3 on hold for now.
+
+The reason is that many of the things on the wish list don't require a new major version. In other words, we can add them without breaking backwards compatibility. Case in point, several of the v3 proposals/ideas have already been implemented in the current release.
+
+On the other hand, one of the things that will cause breaking changes is moving to ESM-only releases. It gets a bit technical but there's different ways to bundle up your Javascript code, and we currently publish both CJS and ESM bundles. One of the goals of v3 was to move to ESM-only, but I feel that we were putting too many things in this v3 basket making the entire effort an unwieldy affair and difficult to wrap your head around.
+
+So, I'm putting those things that will cause breaking changes (like pure-ESM) on hold until we've implemented all the changes we can already implement today. So by delaying it, we're actually going to see new features sooner because most of the breaking stuff is so far under the hood that you probably wouldn't even notice when it changes.
+
+
+
+---
+
+
+
+## 🤓 What I've been up to last year
+
+As I mentioned earlier, the fact that more people than ever are now contributing patterns is one of of my personal highlights of the year. But it did not come about by divine intervention.
+
+16 months ago, at the end of August 2020, I wrote about the challenges of scaling my own labour, and how I wanted to [see FreeSewing grow beyond what I can do on my own](https://freesewing.org/blog/a-call-for-help/).
+
+In retrospect, I feel that post marks the moment where I pivoted from guy-working-on-open-source-thing to an open source maintainer.
+My efforts ever since have been preliminary focused on facilitating the work of others, clearing hurdles for aspiring contributors, and simplifying the developer experience.
+
+Which is why I am not concerned that I _only_ designed two patterns in 2021. More patterns are always nice, but I prefer to focus on things that are hard for other people to do. Like the [migration to React 17 and Webpack 5](https://freesewing.org/blog/react-17/) which happened in release 2.16 and brought with it an improved developer experience.
+
+But all of that remains on the '_pattern design_' side of things. But there's a lot more that goes into running FreeSewing.
+
+Last summer, I set out to work on [project 2022](https://freesewing.dev/blog/project-2022) in which I wanted to bring a similar easy on-ramp to other aspects of the project. Working on our backend code, our websites, writing blog posts, and so on.
+
+I'm happy to say there's been a lot of progress in this area. Perhaps a good illustration of this is our move to Strapi — a so-called [headless CMS](https://strapi.io/) — for our blog and showcase posts as well as for our newsletter content. Prior to the move, we had several years worth of blog posts, all written by yours truly. Since the move, we've had other people writing blog posts, and I can't even remember last time I published a showcase posts because ever since we moved to Strapi, that's taken care of by others now.
+
+We're also consolidating as much work & code as possible into [our monorepo on Github](https://github.com/freesewing/freesewing) as that makes it easier to wrap your head around the project, and track transversal changes — such as when changes to the website necessitate accompanying backend changes.
+
+Our markdown content and backend code has been consolidated into our monorepo. We were able to [merge our two translation projects on Crowdin into one](https://crowdin.com/project/freesewing), and the efforts started this summer to migrate our frontend code from GatsbyJS to [NextJS](https://nextjs.org/) paid dividends at the last day of the year when I deployed [our new freesewing.dev website](https://freesewing.dev/) in production.
+
+It's been re-written from the ground up to be better, faster, and perhaps most importantly, easier for people new(ish) to the project to work on, improve, or just see in what novel ways they can break it.
+
+The new FreeSewing.dev was built from the start to share code with what shall become the new FreeSewing.org, so that's something to look forward to this year.
+
+
+
+---
+
+
+
+## 🐛 FreeSewing's bug bounty program
+
+One of my personal low points of this year was when one of our users reached out because of an issue in their shirt pattern. An issue that I was able to trace back to a regression bug that was triggered by a new feature request we had implemented some time prior.
+
+To have, what I personally consider to be one of our flagship patterns, hobbled by a bug that passed under the radar made my heart sink. I can't help but think about all the people who tried the pattern in the meanwhile, didn't get good results, and in completely understandable fashion most likely concluded that this entire FreeSewing thing is utter garbage.
+After all, sewing patterns are traditionally a finished product. Not one that receives numerous improvements and bug fixes throughout the year.
+
+We have taken steps to try and prevent similar mishaps from happening. There's been a significant effort made to increase the number of unit tests that help us spot issues. I wrote a new plugin specifically for this reason that allows us to compare generated patterns across FreeSewing versions/changes. We now also keep sampled output for each and every pattern option under version control, so that we can trace exactly what patterns are being impacted by changes to the codebase.
+
+But, things will still slip under the radar from time to time, which is why we're launching **the FreeSewing bug bounty program**:
+
+> If you find a bug in one of our patterns, or in our core library, we will (with your permission) add you to our list of contributors, and send you a little something to say thanks.
+
+Obviously, we're no Apple or Google, so we can't fork over cold hard cash as reward, but we have nice stickers, so that's something :)
+
+
+
+---
+
+
+
+## ⛑️ Yearly revenue and where it went (spoiler: same as always)
+
+Yearly revenue for FreeSewing in 2021 was 10,070.77 euro. In accordance with [our revenue pledge](https://freesewing.org/docs/various/pledge/), it was all donated to [Doctors Without Borders/Médecins Sans Frontières](http://msf.org/).
+
+And, for the second year in a row MSF deployed its teams not just in the South, but also in Europe and the US to help manage the COVID pandemic.
+
+In the hospital where my wife works — one of the main hubs for COVID care in the country — the COVID ward was at one point was even run by teams from MSF as their experience in running healthcare facilities in the middle of a crisis is simply unparalleled.
+
+There were probably similar initiatives and MSF teams working in your vicinity, often under the radar, but always there where they are needed the most.
+
+FreeSewing's revenue is 100% made up of patron contributions, and I feel an enormous depth of gratitude towards those kind-hearted and generous souls who make this possible. 2020 was an absolute bumper year for FreeSewing with an influx of COVID-inspired goodwill pushing our revenue beyond 5 figures for the first time. I did not expect that to hold in 2021 yet once again our patrons delivered.
+
+They are the real heroes of this story. I can't thank them enough.
+
+
+
+---
+
+
+
+## 🤞 What I hope will happen this year
+
+- I hope we'll be able to rebuild FreeSewing.org and make it better, faster, and more feature-packed
+- I hope we'll be able to continue to chip away at gendered terminology, and strive to make patterns that _just work_ to support you and how you express yourself
+- I hope we'll continue to welcome new contributors who are excited to build this thing together
+- I hope we'll continue to bask in the love and support of our patrons so we can pay it forward and help those in dire straits
+- I hope you all have a great year filled with health, happiness, and hugs
+
+
+
+love
+joost
diff --git a/sites/orgdocs/newsletter/2022q2/index.mdx b/sites/orgdocs/newsletter/2022q2/index.mdx
new file mode 100644
index 00000000000..93ac082f337
--- /dev/null
+++ b/sites/orgdocs/newsletter/2022q2/index.mdx
@@ -0,0 +1,225 @@
+---
+date: '2022-04-01'
+edition: '2022q2'
+intro: 'Welcome to the 2022 Spring edition of the FreeSewing newsletter.'
+title: '2022 Spring edition'
+authors:
+ - 1
+ - 13050
+toc_max_heading_level: 2
+---
+
+Welcome to the 2022 Spring edition of the FreeSewing newsletter.
+
+Today is April 1st, so to be clear; None of these are jokes:
+
+- 👸 All hail the Showcase Queen (by Karen)
+- 🕵 Behind the Seams: Eléonore (by An)
+- 🤓 FreeSewing's new lab as a preview of things to come (by Joost)
+- 🤝 Friendship ended with Netlify / Now Vercel is our best friend (by Joost)
+
+
+
+Let's go, we don't have all day.
+
+
+
+
+
+## 👸 All hail the Showcase Queen
+
+For just over a year, there's been one person at FreeSewing who, when someone posts a cool new FreeSewing project on
+[Discord](https://discord.freesewing.org) or on social media, made sure that it didn't just disappear into the internet ether
+like so much ephemeral web content. In fact, this person was so accomplished that we developed a special Discord role
+just for her: "Showcase Queen."
+
+During her tenure as the Showcase Queen, [Natalia](https://freesewing.org/makers/nataliasayang/) posted dozens of Showcases,
+first in the old format and more recently in Strapi. (Full disclosure, the number here is not specific because I stopped
+counting once I got into the thirties.) With Natalia's help, there are now examples of almost every FreeSewing pattern
+available on the website's Showcase. If you read that "almost" as a call to action, just wait, your time to shine is in one
+more brief paragraph, because...
+
+Now, after an unprecedented reign, our queen has decided to relinquish her post and turn her role over to the people.
+
+Here's the part where you come in.
+
+Have you used a FreeSewing pattern to make something you just can't wait to share with people? That you're proud of?
+That looks or fits or feels fantastic? If so, we would _love_ if you would consider adding it to the FreeSewing
+Showcase! Don't worry, the technical part [is easy](https://freesewing.dev/howtos/editors/showcase), and there are tons of folks in the FreeSewing community who can
+help if that bit is daunting.
+
+But there's one thing we can't help with, and that's creating great and helpful images for your Showcase.
+
+Or can we... 🤔
+
+Below are just a few easy tips and tricks for helping future sewists with your Showcase post. Of course, any
+Showcase is infinitely better than nothing, so go ahead and send us those low-light mirror selfies - we love them.
+
+But if you want to take things to the next level, a few things to consider:
+
+- Show the whole garment! From multiple angles, if possible. It's awesome to see garments from the front, but back
+ and side views can be really helpful, too. Bonus points for adding in a seated picture, which are especially great
+ for sewists who use a wheelchair.
+- Take pictures in the best light you can — that might be next to a bright window, in a room where you've turned
+ on all the extra lamps you could find, or that elusive "golden hour" outdoors. Bonus points if you can make it bright
+ enough to not need a flash.
+- A neutral background can be helpful for seeing details. So can close-up pictures! If you nailed that welt pocket
+ or hand-stitched all your buttonholes, go ahead and show them off.
+
+If you read all that and thought, "Yikes, that's intimidating!" never fear. The beauty of FreeSewing Showcase posts
+is that they're created by the entire FreeSewing community, and each of them, even the ones taken on a potato phone,
+make FreeSewing just a tiny bit better. But if they're really great, or you start making sure incredible garments
+get added to the site, you might just get the chance for your own title as "Showcase Queen."
+
+Thank you, Natalia! 👑
+
+
+
+---
+
+
+
+## 🕵 Behind the Seams: Eléonore
+
+### How did you learn about freesewing?
+
+I met Joost through some mutual sewing friends back when FreeSewing was still Makemypattern.com. I loved what he was doing with the project and how he wanted to make it grow, so I stuck around.
+
+### How did you become a contributor?
+
+I'm really bad at saying "no" when someone needs help.
+
+### What has been your contributor work so far?
+
+I manage our Instagram (badly) and help out with translations (occasionally).
+
+### When and why did you start sewing?
+
+I learned the basics from my mum, but never heard about the concept of sewing from a pattern. I just more or less winged it whenever I wanted to make anything. Those projects all turned out terrible, of course. Then when I went through a long period of depression years ago, my parents gave me a sewing machine and I started looking into making my own clothes more seriously. It kept my hands busy when my mind was wading through the mud. That machine was the best gift I've ever received. I seriously think sewing saved me.
+
+### What is your daily job, outside of freesewing?
+
+I am a copy editor and I do communications and training for a healthcare IT company. That last job is very new and was sort of sprung on me in the middle of the COVID crisis. It's been A LOT, but it's so rewarding.
+
+### What are you currently working on?
+
+In sewing? I am working on clothes that fit my behind. I'm not going to lie, my butt is proving a tough nut to crack.
+
+### Which project did you just finish?
+
+I took a break from my own fitting woes and made a pair of trousers for my husband. He said the previous pair I made him was perfect, so I made no adjustments. And wouldn’t you know it: he’s gained weight. THEY DON’T FIT. Always take new measurements, kids.
+
+### What sewing/coding project are you most proud of?
+
+I once made a TARDIS outfit for a wedding. It was what I imagined the TARDIS would look like if she were invited to a fancy party. It was nerdy and glorious and it included a corset with a hand-embroidered patch that said "bigger on the inside".
+
+### What in your life are you most proud of?
+
+That I'm still here.
+
+### What do you love the most about sewing?
+
+The certainty that if you just keep at it, you will see progress.
+
+### What do you hate the most about sewing?
+
+That sometimes you have to keep at it for a VERY long time.
+
+### What’s the hardest part of sewing to you?
+
+Fit. Always and forever, fit. I find it fascinating how a 2D pattern translates into a 3D garment, but wow, it can be frustrating when it doesn't translate the way you want it to!
+
+### What would be your advice for starting sewists/sewistas?
+
+To keep at it! And not to get too hung up on "fails". If you end up with a garment that you love: that's great. If you don't, that's fine: you've spent a few hours doing something you enjoy and that's worth just as much, if not more.
+
+### Are you a dog person or a cat person?
+
+Definitely a cat person.
+
+### Do you have pets?
+
+Cats! We have two: sweet, reserved, anxious Aiko (who takes after me) and hyperactive, talkative, goofy Asra (who takes after my husband).
+
+### If there was one thing you could take with you to an uninhabited island what would it be? Why?
+
+Oh, do I have to choose? My Kindle, my sewing machine, my piano? No, the piano would hate the salty air and I'm guessing there are no power outlets on this island for my sewing machine. I'll take the Kindle. Wait, I would need to charge that too. But just one book would never be enough. I'm getting anxious about this whole island thing.
+
+### If there was one person you could take with you to an uninhabited island, who would it be? Why?
+
+I'll have to say my husband, since there's a good reason that I married him. He can come. If he's quiet and serves me drinks.
+
+
+
+---
+
+
+
+## 🤓 FreeSewing's new lab is a preview of things to come
+
+On the very last day of 2021, we published our new website for developers, available at [freesewing.dev](https://freesewing.dev/). It was the first major milestone in our migration from GastbyJS to NextJS and the consolidation of our frontend code in our monorepo. [Our roadmap](https://github.com/freesewing/freesewing/discussions/1278) has all the details.
+
+The next logical step would be freesewing.org, our flagship website for makers and the one you're most likely to be familiar with. But in parallel we're also looking to provide a better developer experience for people working in our monorepo.
+
+So, I decided that I would start by tackling the very heart of what makes our website meaningful: The interface to generate, test, and export patterns. It is by a wide margin the most complex thing to make happen (not to mention make intuitive) and the thinking is that whatever problems we're going to run into, this is where they will prop up.
+
+The result of that work so far is now available on https://lab.freesewing.dev/ If you're expecting a freesewing.org-equivalent site there, you're probably going to be disappointed. It really is only about the pattern configuration. But there's some things that I think are worthy of some excitement.
+
+### One website, many languages
+
+FreeSewing currently supports 5 languages (en, fr, es, de, nl) and the way we handle that is by having a subdomain for each language (eg the Spanish site lives at https://es.freesewing.org/). On the surface, that is an elegant solution and it works well when it works well. In practice, what we've found is that sometimes language-specific bugs crop up, more often than not because some malformed content generated by the translation software. Problem is, when this happens, it's not always picked up/noticed and the result is that it's not uncommon for the non-English versions of the site to lag behind one of more releases.
+
+There's also the fact that building 5 sites for each change requires 5x the build minutes, and recently we've been overshooting our build minutes graciously provided by Netlify pretty much every month.
+
+The lab site implements a different solution that we hope to use as the blueprint for the future freesewing.org. It's one site that carries all languages with the language changes handled in the URL. That means one single build for all languages, keeping all our users on the latest and greatest release.
+
+### One development environment, many patterns
+
+Currently, each pattern has its own development environment, which is the same as what you get running `npx create-freesewing-pattern`. For developers working in our monorepo, that adds friction, in particular when working on patterns that extend another pattern.
+
+The new lab is one development environment for _all_ our patterns making it easy to make cross-cutting changes to various patterns. Furthermore, when you spin it up in development mode in our monorepo, it will load all pattern code from source and seamlessly update whenever you make changes to any pattern.
+
+### One development environment, many versions
+
+This improvement is aimed squarely at making it easier to track down regression bugs in patterns. A regression bug is when things worked fine before, but now for some reason they do not. This typically happens when a new feature or improvement has unintended side-effects.
+
+Previously, there was no simple way to compare the (result of the) latest version of the code with the previous version. Our new lab however has a dropdown that simply lets you pick the version of your choice and will create that version of the pattern. This should be a real boon for tracking down those bugs.
+
+### Custom layout (work-in-progress)
+
+If your eyes has somewhat glazed over from all that developer talk, fear not, there's also some cool features for end users in this new code.
+
+For one thing, I started working on one of our most popular feature requests: Custom layouts. The idea is that you can change yourself the way the pattern is laid out since computers are actually not very good at choosing the optimal layout.
+
+This has been divided into two different layouts: One layout for printing (where you can try to cram everything into as small a space as possible), and one layout for your fabric (where you will want to keep grainlines and so on into account).
+
+It's still a work-in-progress and certainly rough around the edges (as is the entire lab to be honest) but the intent is clear: We absolutely want this to be part of freesewing.org on the very first day of our migration.
+
+If you're interested in seeing what work working on, or just curious, head over to https://lab.freesewing.dev/ and we'd love to hear your feedback [on Discord](https://discord.freesewing.org/).
+
+
+
+---
+
+
+
+## 🤝 Friendship ended with Netlify / Now Vercel is our best friend
+
+Ok, so I kinda wanted to reference [this meme](https://knowyourmeme.com/memes/friendship-ended-with-mudasir) but let me be absolutely clear: Friendship with [Netlify](https://www.netlify.com/) is not over. As a matter of fact, they are a really great company and I can't recommend them enough.
+
+But, some of our plans and ambitions bump into the limits of what can be done in a static site (looking at you i18n routing) and so we ended up with these great plans/ideas but no obvious way to deploy them without breaking the bank.
+
+Which is why I am very happy to let you know that [Vercel](https://www.vercel.com/?utm_source=freesewing&utm_campaign=oss) — the very company behind the [NextJS](https://nextjs.org/) framework that we're migrating to — has agreed to become a FreeSewing sponsor; In other words, Vercel will host and build FreeSewing's websites free of charge, much like Netlify has been doing for us for years.
+
+But unlike Netlify, which is a pure static hosting service, Vercel runs a server-side NextJS instance which means we can do all sorts of cool stuff server-side.
+
+This is really exciting news and I'm very happy that Vercel has agreed to sponsor FreeSewing. We also want to thank Netlify for the many years that we've benefited from their service.
+And, while we're at it, I feel obliged to point out that we have more sponsors:
+
+- [Algolia](https://www.algolia.com/) handles our search
+- [Bugsnag](https://www.bugsnag.com/) handles our bug reports
+- [Crowdin](https://www.crowdin.com/) handles translation
+
+To be clear: We don't receive money from any of these companies and this is not some sort of paid advertising. But all of these companies wave their fees for FreeSewing because they believe that what we do is worthwhile.
+
+And I for one do not think that's something we should take for granted.
diff --git a/sites/orgdocs/newsletter/2022q3/index.mdx b/sites/orgdocs/newsletter/2022q3/index.mdx
new file mode 100644
index 00000000000..95d150b10d0
--- /dev/null
+++ b/sites/orgdocs/newsletter/2022q3/index.mdx
@@ -0,0 +1,251 @@
+---
+date: '2022-07-01'
+edition: '2022q3'
+intro: '2022 Summer edition'
+title: '2022 Summer edition'
+authors:
+ - 1
+ - 13050
+ - 19867
+ - 20400
+toc_max_heading_level: 2
+---
+
+Welcome to the 2022 Summer edition of the FreeSewing newsletter.
+Here's what's in it for you today:
+
+- 🦈 FreeSewing 2.21 adds five new patterns (4-minute read - by Karen)
+- 🔨 Changes to our monorepo structure (2-minute read - by Natalia)
+- 🚸 Honey, we shrunk FreeSewing: Adapting FreeSewing designs for kiddos (2-minute read - by Natalia)
+- 👨💻 FreeSewing _afk_ (1-minute read - by Lexander)
+- 🕵️ Behind the Seams: Starfetcher (4-minute read - by Karen & Starfetcher)
+- 💰 Should we be down because FreeSewing's revenue is down? (2-minute read - by Joost)
+
+
+
+Let's jump right in!
+
+
+
+
+
+## 🦈 FreeSewing 2.21 adds five new patterns
+
+FreeSewing 2.21 adds Bob, Hi, Lucy, Noble and Unice designs.
+
+### Bob the bib
+
+Long-time followers of FreeSewing may recognize Bob, a classic bib, and the result of the FreeSewing pattern design tutorial. Want to sew up Bob without learning how to develop a FreeSewing pattern? Now you can! Although we think you should still learn how to develop a FreeSewing pattern, like the folks below.
+
+[Discover Bob on FreeSewing.org](https://freesewing.org/designs/bob)
+
+### BLÅHAJ, nay Hi
+
+When (the UK branch of) a certain Swedish yellow/blue colored furniture giant announced that it would discontinue its universally beloved plush shark, the internet did not handle it very well.
+People love soft and cuddly sharks and the idea of ever being without one to keep you company when things are rough was quite frankly unsettling.
+
+So plans were made, strategies discussed, but for a while it seemed we were just going to have to accept defeat.
+Smash cut to Wouter Van Wageningen, one of FreeSewings' most senior pattern designers, who embarked on a singular mission: To save the sharks.
+Suffice to say. He did. Because of course he did.
+
+Wouter named the pattern Hi and those of you who share his Dutch roots will get the play on words here 🦈
+So now you can sew up your very own Hi, a friendly and fabulous plush shark and frankly an internet icon.
+
+This is FreeSewing's first plush pattern, and as such it is not be tailored to any measurements, but it's still parametric! You can sew up Hi in any size from roughly 5 centimeters to 5 meters, and you can modify its mouth, its nose pointiness, and make your Hi "aggressive" (that's when you give it pointy teeth). Another great thing about Hi: it'll fit anyone in your life! Does your sibling, cat, in-law, crush, boss, GM, barista, or anyone else in your life need a Hi? Probably. Do you need a Hi? Almost definitely.
+Does it need to be 5 meters long? No, but it wants to.
+
+[Discover Hi on FreeSewing.org](https://freesewing.org/designs/hi)
+
+### Lucy
+
+[Lucy](https://en.wikipedia.org/wiki/Lucy_Locket) is a perfect accessory for the historically-inspired sewist, a historical pocket that you can tie around your waist, designed by SeaZeeZee. Traditionally, these could have been worn under other layers of clothing, creating an easy way to carry things that was obscured by skirts or aprons, but there's no requirement to hide your Lucy under a bushel (or a bustle). Make one in just about any fabric you like - Lucy looks great in that cute quilting cotton you couldn't resist, that scrap you love too much to throw away, or the textile that you're intimidated by but want to take for a test drive. A Lucy in sequins, velvet, or vinyl? Definitely cool. 😎
+
+[Discover Lucy on FreeSewing.org](https://freesewing.org/designs/lucy)
+
+### Noble
+
+Hi isn't the only pattern release from Wouter Van Wageningen this quarter. For those looking to experiment with their own pattern drafting, Wouter has created the Noble block, a sleeveless prince(ss) seam block based on the Bella block pattern. Blocks are the basis for other patterns, so Noble doesn't have finishes or closures, but it makes a great, made-to-measure starting point for self-drafted patterns.
+
+[Discover Noble on FreeSewing.org](https://freesewing.org/designs/noble)
+
+### Unice
+
+Last but not least, first-time FreeSewing designer Anna Puk has released a new underwear pattern, Unice! Unice is a variation on Ursula, a basic, highly customizable underwear pattern. Trying to figure out whether to sew up Ursula or Unice? Unice was designed to accommodate a full rear, so it might be a good one to try if you find that undies in your size don't provide adequate coverage in the back, or if your jeans are always tighter across the seat than the thighs or waist. Or, even better, make them both! After all, you can never have too many undies. (And if you do, please hop into the [Discord](https://freesewing.org/community/where/discord/) or onto our social channels, @freesewing_org on Instagram and Twitter, and let us know how they work out for you!)
+
+[Discover Unice on FreeSewing.org](https://freesewing.org/designs/unice)
+
+
+
+---
+
+
+
+## 🔨 Changes to our monorepo structure
+
+Big things are happening.
+
+There have been some changes in the monorepo structure. With the previous single yarn workspace in packages now split up in:
+
+- designs for designs
+- plugins for plugins
+- packages for NPM packages that are neither design nor plugin
+- sites for websites, backend code, our svg tiler and so on
+
+The monorepo has been stripped of the individual development environments for designs. Instead, all development on designs should now happen in the lab.
+There's a new command `yarn tips` that you can run that will give you a quick summary of how to work within our monorepo.
+And you can run `yarn lab` to start the lab from the root of the repo, or from any design or plugin folder.
+
+If you want to add a new design, run `yarn new design` and everything will be taken care of for you.
+
+The old stand-alone development environment (`npx create-freesewing-pattern`) is deprecated (ever since v2.21 running it will show a warning about that) but still available.
+Those who are looking for stand-alone development should try out the replacement that uses that same improved development environment as our monorepo.
+To launch it run: `npx @freesewing/new-design`
+
+Want a full list of what's new? Check out the [notes from the latest contributor call](https://github.com/freesewing/freesewing/discussions/2270).
+
+
+
+---
+
+
+
+## 🚸 Honey, we shrunk FreeSewing: Adapting FreeSewing designs for kiddos
+
+First dolls, now children?! FreeSewing contributors seem intent on making mini versions of our designs.
+
+We wanted to talk a moment to highlight some of the great projects folks are making for their kids and some of the lessons they've shared. Don't miss the photos in the [showcase](https://freesewing.org/showcase/).
+
+If you're interested in adapting a FreeSewing design for a young person, a few things to consider:
+
+- **Make test garments!** Making a muslin is a good habit in general, and especially important when sewing for people whose measurements may not have been tested yet with a FreeSewing design as their proportions won't necessarily work smoothly the first time around. `comixminx` is the undisputed champion of Shin sewing trunks, having sewn several test pairs on the way to making wearable pairs for each of [her](https://freesewing.org/showcase/shin-swim-trunks-for-comixminxs-kid/) [kids](https://freesewing.org/showcase/more-shin-swim-shorts/).
+- **Consider trying out a block.** As evidenced in `Bob3000`'s adorable [chore coat](https://freesewing.org/showcase/bob3000-chore-coat/) for his kid, based on the Brian block, the basic shape of a block might be a good starting point to which you can add design elements.
+- **Use lots of ease when designing for toddlers.** `mathstitch` ended up drafting their own collared shirt and it turned out rather wonderfully. They shared some tips for anyone who might try to adapt an existing design in the future! They suggest adding heaps of ease because toddlers are so active and uncoordinated, tend to adopt unusual postures all the time like crouching and crawling, and some have big bellies and lots of puppy fat. 🐶 A short sleevecap is appropriate. If your kiddo is still in diapers, the shirt needs to flare at the hips to accommodate that, and you'll want to ensure the buttons end far enough up from the bottom of the shirt.
+- **Add adjustable elements to make garments fit for longer.** `Rowan` made a tiny [Albert apron](https://freesewing.org/showcase/a-tiny-albert-apron/) for their kid's birthday and added adjusters to the straps. Great idea to maximize the number of wears they can get out of this very cute accessory.
+- **Sew quickly.** `AMJ` reports having seen kids change sizes between fitting and sewing. 😀
+
+If you're trying out one of our designs with your kid, we hope you'll come chat about it in [Discord](https://discord.freesewing.org/).
+
+
+
+---
+
+
+
+## 👨💻 FreeSewing _afk_
+
+FreeSewing is going outside! FreeSewing will be part of the [May Contain Hackers](https://mch2022.org/) camp as a short talk by Lexander. Mark your calendar for July 24th, 09:40 PM CEST; it can be followed with a livestream.
+
+Lexander will describe about what FreeSewing is, Joost’s (and other volunteers’) motivations behind it, a bit about the tech, and why it’s important for fashion and clothing as a whole. More info is in the full description [on the event’s site](https://program.mch2022.org/mch2021-2020/talk/M9JWKM/).
+
+
+
+---
+
+
+
+## 🕵️ Behind the Seams: Starfetcher
+
+### How did you learn about FreeSewing?
+
+I can't quite remember, but I think I was searching for sewing patterns one day and had the glorious insight to use "open source sewing pattern" as a keyword. The search engine did its job.
+
+### How did you become a contributor?
+
+While reading the developer docs I found a few typos and decided to correct them, while starting on translations I found some more, and suddenly I was a contributor. Joining the contributor calls was the next logical step, and I haven't looked back since.
+
+### What has been your contributor work so far?
+
+Apart from fixing typos and broken links, I sporadically do some translation work and have coded three historically inspired patterns: Lunetius, Tiberius and Walburga.
+
+### Are you a sewist? A coder? Both? Neither?
+
+Both, and it depends on my mood what I like to do more.
+
+### When and why did you start sewing?
+
+As a child, my mother taught me the basics, but it wasn't until my late teens that I started to take it seriously when I decided to sew my own costume for my birthday party (my birthday parties were and still are always costume parties). I did lots of mistakes (like finishing the edges before sewing the parts together), but I was (and still am) incredibly proud of it. Then I took a break from sewing again, but rediscovered it in my middle tweens when I got back into cosplay.
+
+### What is your daily job, outside of FreeSewing?
+
+Right now I'm doing my PhD in experimental physics, so I have a good mixture of hands-on work at the machine and cursing a lot at the computer at 11PM.
+
+### What are you currently working on?
+
+Currently I'm working on making foam armour to complement the fabric parts of my costume (consisting of Lunetius, Tiberius and Walburga, of course). It's a new technique for me so it's lots of fun to play around with.
+
+### Which project did you just finish?
+
+I just finished coding and sewing Pythia the paenula, my upcoming FreeSewing pattern for another type of historically inspired cloak. Now I'm procrastinating on hunting down the last bugs.
+
+### What sewing/coding project are you most proud of?
+
+On the sewing side, I'm still very proud of the first costume I sew by myself, but the trickiest one so far is the Sailor Fuku I made a few years back. Oh, and the Victorian shirt with lots of pleating on the front, where I also had to adjust the sizing of basically everything (an experience that ultimately led me to FreeSewing).
+Coding-wise, that's probably a work-related thing where I made some nice graphical representations with Python and LaTeX.
+
+### What in your life are you most proud of?
+
+That's a hard question! Probably all the combined experiences that taught me everything I know today.
+
+### What do you love the most about sewing?
+
+The magical feeling when you finish something and you put it on and it's just perfect.
+
+### What do you hate the most about sewing?
+
+The sinking feeling when you finish something and you realise something went wrong and your immediate future probably involves the thread picker or the cutting mat if you're unlucky. Oh, and hemming skirts, especially hemming two combined full circle skirts because you wanted the volume at 2AM.
+
+### What’s the hardest part of sewing to you?
+
+Laying out pattern pieces with the correct grainline and cutting things out without forgetting the seam allowance.
+
+### What would be your advice for starting sewists?
+
+Just dive right in! Don't be afraid to make mistakes and don't be afraid to ask for help, but just try.
+
+### Do you sew mostly for yourself, or for others like friends and family?
+
+Mostly just for me, though I tried to sew something as a present a few times - so far I never finished any.
+
+### What are you up to when you’re not making clothes or designing patterns? - Would you like to share ways to follow you on social media?
+
+I like table top roleplaying games (DSA, Cthulhu, ...), video games, reading, photography, fencing and archery (still an amateur, mind). I'm also responsible for directing the acting portion of my old schools musical group. No social media for me.
+
+### Do you have pets? Family?
+
+Sadly no pets, although my SO has a cute dog. I'm pretty close to my parents.
+
+### Are you a dog person or a cat person?
+
+Both! Though if I were forced to choose, I'd pick... a penguin.
+
+### If there was one thing you could take with you to an uninhabited island, what would it be? Why?
+
+Apart from things like water and food and a knife? Probably my ebook reader, upgraded with solar cells, and loaded to the brim with books for entertainment and survival.
+
+### If there was one person you could take with you to an uninhabited island, who would it be? Why?
+
+That's tricky! If it's voluntary, my SO, but they'd have hard time without electricity and other perks of civilization. If it's not voluntary, someone who increases my chances of survival, like a really strong doctor.
+
+
+
+---
+
+
+
+## 💰 Should we be down because FreeSewing's revenue is down?
+
+I'm going to assume you're familiar with [FreeSewing's revenue pledge](https://freesewing.org/docs/various/pledge/)? If not, go ahead and read it. I'll wait.
+
+Over the first 6 months of 2022, FreeSewing's revenue was 25% lower than the (average) revenue of 2021.
+
+This is not entirely unexpected. There was an influx of new patrons during the Covid pandemic, and we are now on the down-slope of that wave.
+Many patrons who discovered FreeSewing because of our facemask pattern are now leaving us because they don't see the point in extending their support. Others are feeling the cost-of-living crisis and have either lowered their contributions or cancelled them altogether.
+
+I am truly appreciative of all these contributions, but seeing patrons leave does tend to make me wonder whether we have a problem?
+I personally don't think so. But I'm not a 100% certain about that either. And on the bad days, it certainly feeds into my doubts about... well, everything really.
+
+There are many different metrics you could point to that show FreeSewing is thriving. Whether it's the number of designs we have available, the size and activity of the community, or something as easy to measure as number of commits.
+
+Yet still...
+
+After mulling it for a while, I figured the best thing to do is just be transparent about what's going on: FreeSewing is doing fine, but we are seeing less financial support than we used to. Revenue will be lower this year, from the looks of things by at least 25%.
diff --git a/sites/orgdocs/newsletter/2022q4/index.mdx b/sites/orgdocs/newsletter/2022q4/index.mdx
new file mode 100644
index 00000000000..9e4be5ecc9b
--- /dev/null
+++ b/sites/orgdocs/newsletter/2022q4/index.mdx
@@ -0,0 +1,200 @@
+---
+date: '2022-10-01'
+edition: '2022q4'
+intro: '2022 Autumn edition'
+title: '2022 Autumn edition'
+authors:
+ - 1
+ - 13050
+ - 20400
+toc_max_heading_level: 2
+---
+
+Welcome to the 2022 Autumn edition of the FreeSewing newsletter.
+Here's what's in it for you today:
+
+- 🏁 FreeSewing 2.22 is out and will be the final v2 release (1-minute read - by Joost)
+- 🔱 FreeSewing version 3; What is it, and when can you expect it? (3-minute read - by Joost)
+- 🚀 We've crossed the 50.000 commits milestone (1-minute read - by Joost)
+- ⛵ FreeSewing at the Serendiep in Rotterdam (1-minute read - by Lexander)
+- 🕵️ Behind the Seams: Enoch (4-minute read - by Karen & Enoch)
+
+
+
+Let's jump right in!
+
+
+
+
+
+## 🏁 FreeSewing 2.22 is out and will be the final v2 release
+
+FreeSewing 2.22 came out towards the end of August, featuring a new plushie
+design by Wouter — who also signed for Hi the shark. This time, it's
+[Octoplushy](https://freesewing.org/designs/octoplushy/) which is, you guessed
+it, an octopus.
+
+What's certainly less adorable but perhaps not relevant is that this will be the
+final minor release under version 2. That's right, version 3 of FreeSewing is
+coming, and while we continue to support version 2 — not to mention that it's
+still powering FreeSewing.org — our focus is now very much on the next major
+version: FreeSewing v3.
+
+
+
+---
+
+
+
+## 🔱 FreeSewing version 3; What is it, and when can you expect it?
+
+For a bit over a month now, we've put the version 2 code base in long-term storage and have started working towards version 3.
+And while it will be a while before this lands in production — which means FreeSewing.org for us — I'd like to give a very brief highlight tour of some of the things that are happening with FreeSewing version 3 right now that I am personally most excited about.
+
+### Part-level configuration, aka pack support
+
+On [our road map](https://github.com/freesewing/freesewing/discussions/1278) — which if you have been paying attention has ever more things under the _already implemented_ heading — we had so-called support for _packs_. The idea was that we'd love to make it possible to create designs by freely combining different components. Like perhaps you'd get the sleeves from a _sleeve pack_ and the collar from a _collar pack_, add some pockets from a _collar pack_ and so on.
+
+It's one of those things that makes a lot of sense, but begs the question: How will all of this work under the hood?
+In v2 of FreeSewing, implementing these ideas would have been non-trivial because even though we support extending patterns into other designs, the process is too cumbersome for this level of ad-hoc mashing together different designs.
+
+So that's something we wanted to address in version 3, and to do so we've essentially move all configuration to the part level. For example a sleeve part will have it's own options defined and list what measurements it needs and so on. You can now just pull that sleeve part out of the design (or in the future a sleeve pack) and use it in your own design without having to worry about measurements and options and so on.
+
+It's the most fundamental change in V3, but it's something that will open the door to a lot of creative combinations of various designs in the future.
+
+### Support for multiple sets of settings, or as we call them: Multisets
+
+Patterns are ultimately drafted for users by passing them a bunch of _settings_. The measurements to use, how you'd like the options to be just your way and so on.
+
+In FreeSewing version 3, you'll still be able to pass multiple sets of these settings to the pattern.
+This has a bunch of interesting applications. For example, if you're working with an asymmetric body, you'd be able to pass in two different sets of measurements and say "_give me those and those parts with these measurements, and the other parts with those measurements_".
+
+We also use this new feature under the hood to handle how we _sample_ patterns. Which is when we compare various iterations of a pattern with each other. This used to be somewhat bolted on top in a semi-awkward way. But in version 3, it's as simple as compiling a list of different sets of settings (since one gets tired of typing/saying _sets of settings_ rather quickly, we refer to them as _multisets_) and then we can _simply_ pass them to the pattern and it _just works_.
+
+### Stack support
+
+Closely related to multiset support is support for stacks in the layout phase.
+Stacks are a bit like _layers_. Typically, when lay-outing each part is its own thing and we would lay them out individually.
+Now, you can say that different parts are part of the same _stack_ and they would be stacked on top of each other in the layout, like layers.
+
+It's once again something we use internally for some of our sampling/comparing work, but also opens up interesting possibilities and I'm curious to see how people will end up using these features.
+
+### And so much more
+
+There's really is a lot more going on in version 3, with improvements and tweaks big and small.
+But these are some of the more fundamental changes. We're also still working on it, so if you have a great idea, [our road map](https://github.com/freesewing/freesewing/discussions/1278) is the more formal way to propose them. For a more informal chat, stop by [the FreeSewing Discord](https://discord.freesewing.org/) where we hang out and coordinate our work.
+
+### When can you expect version 3?
+
+The short answer to when you can expect version 3 is _sometime in 2023_. If that seems long, it's because we're really re-working things from the ground up. The changes outlined above are really foundational changes, and they need to ripple through the entire machinery built on top of those foundations before it can all come together in something that can be released on FreeSewing.org.
+
+And we also want to make sure we get it right. So we're going to keep on keeping on, and release it when it's ready.
+
+
+
+---
+
+
+
+## 🚀 We've crossed the 50.000 commits milestone
+
+A couple of days ago, we crossed the threshold of 50.000 commits [on our monorepo](https://github.com/freesewing/freesewing).
+
+Numbers in itself aren't really that meaningful, not to mention that you can always game the system. So I don't mean to imply that this milestone in itself has some sort of special significance. But I do feel that at a time that most work (on v3) is happening behind the scenes, it serves as a good reminder that FreeSewing is a bit like a swan. It might seem to glide forward seemingly effortlessly at a steady pace, but there is frantic pedaling going on beneath the surface.
+
+
+
+---
+
+
+
+## ⛵ FreeSewing at the Serendiep in Rotterdam (1-minute read - by Lexander)
+
+FreeSewing was invited to join an exposition hosted by Serendiep, which is a ship that's home to art and science, with a theater space and machines inside. The week-long exposition was part of a bigger whole: the city of Rotterdam is celebrating the 150th birthday of one of their canals.
+
+The workshop began with me, Lexander, introducing FreeSewing and explaining the concept, and we spent the evening making a sleeveless Teagan as a sleeping shirt. We were with a group of a few people and did the whole FreeSewing process: taking the measurements, assembling the paper pattern, cutting the fabric pieces and sewing them together.
+
+The Teagan fit nicely and overall it was a really fun experience! I’m looking forward to what the future will bring.
+
+
+
+---
+
+
+
+## 🕵️ Behind the Seams: Enoch
+
+One of our Contributor Call hosts sat down (virtually) with Enoch to learn a little more about hir background and journey to becoming a FreeSewing contributor! The interview below has been edited for length, and any errors, oversights, etc. are entirely the fault of the interviewer.
+
+### How did you learn about FreeSewing?
+
+I learned to sew in grade school, but since then hadn’t done much sewing until the pandemic. In March 2020, just before lockdown, I wrapped up a long-time project, so, like many people, I found myself with some free time. Just prior to that I had finally received a diagnosis to explain my decades-long struggle with exhaustion (Restless Legs Syndrome, of all things), and medicating it meant that for the first time ever I had enough energy to have interests and hobbies.
+
+So I dusted off my old sewing machine and started playing around. At some point I was trying to make a piece that I couldn’t find a pattern for, so I learned enough pattern drafting to pull something together to make it happen. Because I'm a coder with an interest in open source, once I had done it in paper for myself, I wanted to automate it, and in automating it I wanted to make it available for as many bodies as possible. I decided I needed a parametric pattern, and tried out a few different things before finding FreeSewing.
+
+### How did you become a contributor?
+
+Once I started developing patterns in FreeSewing, I found myself thinking, “It would be cool if there were this. It would be cool if there were that.” For instance, as I was designing, I wanted to be able to generate line drawings to preview how different settings and measurements would impact the finished garments, and then I wanted to be able to drop in my fabrics and see how they would look on the designs. Adding the custom option types I wanted wasn't very straightforward, so my first PR was me trying to make it easier to replace small parts of the workbench. My first few PRs broke some stuff, so I got more involved just trying to clean up after myself. And then I really got into it.
+
+I've worked on open source software before in small amounts, and I've been the sole developer on software that was technically open sourced, but this is my first time being in the community of an open source software, and I'm finding that part of it really rewarding. To have all these people focusing on all these different areas of making it good, and all in basically constant communication with one another is super cool. The human element really matters, and FreeSewing is so much about the human element at all levels. Iit drives me to contribute at a higher and more consistent level. And I think Joost deserves a lot of credit for having written this massive thing and still managing to really foster this community around building and bettering it.
+
+### What has been your contributor work so far?
+
+I've done a few smaller things, but there are two big things I’ve worked on, and one still in the works!
+
+The first is getting Gitpod set up. Gitpod allows you to do your development in the browser, so that you don’t have to manage dependencies locally. This is especially useful for Windows developers because our environment isn't very Windows friendly, and it's not officially supported. I've also recently submitted some updates to the environment to help smooth things for Windows folks who really prefer to develop locally.
+
+The second is an update to the Printing Layout tool for the Lab. I reworked the moving and rotating functionality so that it works more smoothly and we now have snapped rotation in addition to free rotation. I also overhauled our export to PDF system so that when you export it looks as you would expect it to based on how you laid it out. We have a lot more control over the tiling now, and Joost doesn't have to maintain any C code alongside everything else.
+
+Still In progress is the Cutting Layout tool, which will allow you to specify a fabric width and lay out all the pieces (and if you're supposed to cut two, it'll give you two of them) so you can figure out how much fabric your pattern needs.
+
+### Are you a sewist? A coder? Both? Neither?
+
+Both! But I’ve definitely done more coding. That’s my job, so I’ve done it most days for ten years.
+
+### When and why did you start sewing?
+
+I started sewing early – I took sewing classes in elementary school, and my dad bought me a sewing machine in exchange for promising to hem all his pants (which I never did). Then, except for a semester or two of costume design in college, I hardly sewed again until more recently. I did learn to use an industrial machine, though!
+
+### What are you currently working on?
+
+I've been slow recently, but I always have ideas – I have a whole backlog of things I want to make for my partner, and I also do woodworking and am restoring a steel tanker desk and some rosewood mid-century side tables, and I’m working on a design for the back and front yard of my home. I learned a lot of 3D modeling during the pandemic, and it’s cooling off enough now (in the southern US) to work in the yard.
+
+### What project did you just finish?
+
+I just finished a tunic for my partner, and I designed the suit I wore to my sister’s wedding.. I handed the design off to a tailor, but when the suit was delivered, the sleeves were attached in the most baffling manner, and I ended up having to attach them myself. It turned out beautiful, although I’m still unhappy with the sleeves.
+
+### What do you love the most about sewing?
+
+I like that sewing opens up the world. You can realize or fix or customize whatever you want, and sewing allows you to get a perfect fit (or at least try…), whatever that means to you. I'm a very aesthetically driven person who was raised by very aesthetically driven people, and I believe in the transformative power of clothes, so it's great to be able to take that control for yourself.
+Plus, I love to have any skill, and sewing is really a whole category of skills that really allows you to imagine a thing and say, “Yeah, we can do that.”
+
+### What do you hate the most about sewing?
+
+Seam ripping – which I have to do a ton of. And I sometimes feel there are too many steps to making the things it interests me to make.
+
+I think in reality I don’t often actually find sewing an enjoyable activity – on the one hand, I'm very ambitious, but on the other hand I'm very risk-averse and a massive perfectionist, so I have to do like 3 muslins before a final version of anything. But then I get distracted, which results in a lot of prototypes that I just wear even though they’re more a proof of concept than an actual garment. The most extreme example is from when I was a teen: I was experimenting with making my own chest binders, and the first one I made that worked out, which I wore for probably two years, was held together with ribbons and safety pins. Eventually I needed a new one, which I sewed fully, but for those first two years you can see the outline of safety pins through my shirt in every picture.
+
+### What would be your advice for starting sewists?
+
+Start with something that interests you. Lots of folks are taught to start with samplers, zipper bags, etc., and that works if it will interest you to develop the fundamentals. But if you want to tackle something ambitious, buy some cheap fabric and go for it! It won’t be nearly as bad as you think it is, and there’s always more fabric.
+
+### Do you sew mostly for yourself, or for others like friends and family?
+
+I mostly sew for other people, but I’ll make things sometimes because it seems easier to make a piece of clothing than to go and find it. I guess I’m a “make it if I don’t think it exists in the world” kind of sewer, but I’ll buy a tee shirt even though I could sew one. Or one time I sewed a pair of pants the day before a trip because I didn't have enough pants and going shopping sounded more inconvenient.
+
+### What are you up to when you’re not making clothes or designing patterns?
+
+I’m always doing something – woodworking, design, I occasionally code other things, I’m always washing dishes… I like puzzles, and finally finished a 1500 piece one that I kept taking months-long breaks from. I made a little free puzzle library for the finished ones, but nobody ever comes and takes any puzzles from me.
+
+### Do you have pets? Family?
+
+I prefer people to animals, and I live with a partner in a beautiful, pet-free home. My partner and I share a philosophy of "the loved ones of my loved ones are my loved ones", which allows us to think about family really lovingly and expansively. I'm also lucky to have a great adult relationship with my family of origin, though I don't currently live close to them.
+
+### If there was one person you could take with you to an uninhabited island, who would it be? Why?
+
+Honestly, my partner is the person – we’ve lived together for almost 5 years, and being around each other constantly during the pandemic really brought us closer, (and taught us how to set better boundaries!) so I feel confident we'd be ok in a deserted island scenario. They would grow us food and I would build us shelter, and it would be great.
+
+### Would you like to share ways to follow you on social media?
+
+You can follow me on Instagram at @enoch_tries_everything, but be warned it’s very rarely updated.
diff --git a/sites/orgdocs/newsletter/2023q1/index.mdx b/sites/orgdocs/newsletter/2023q1/index.mdx
new file mode 100644
index 00000000000..618e37f44f6
--- /dev/null
+++ b/sites/orgdocs/newsletter/2023q1/index.mdx
@@ -0,0 +1,176 @@
+---
+date: '2023-01-01'
+edition: '2023q1'
+intro: 'Welcome to the 2023 Winter edition of the FreeSewing newsletter.'
+title: '2023 Winter edition'
+authors:
+ - 1
+ - 13050
+toc_max_heading_level: 2
+---
+
+Welcome to the 2023 Winter edition of the FreeSewing newsletter.
+
+First up: Happy new year to those who celebrate. May 2023 bring you everything you've hoped for, and perhaps some nice surprises too.
+
+As is a tradition this time of the year, our contributors enjoy a break to enjoy the holidays, and what you'll find below is made up almost entirely of the ramblings of me, Joost.
+
+In addition, it's new year's day, so I'm not going to make this too long. Here's what's in store today:
+
+- 🏁 2022 was the year of FreeSewing 2.22 (1-minute read - by Joost)
+- ✋ 2023 will be the year of FreeSewing 3 (1-minute read - by Joost)
+- 💜 The cost of loving (2-minute read - by Joost)
+- 🕵️ Behind the Seams: Zwaluw (4-minute read - by Karen & Zwaluw)
+
+
+
+Let's get right to it.
+
+
+
+
+
+## 🏁 2022 was the year of FreeSewing 2.22
+
+You won't find this on the list of any 2022 retrospective, but this is not a newsletter for hot takes about the news, this is the FreeSewing newsletter. And for us, 2022 was the year we release FreeSewing v2.22 and decided it would be the last v2 release ever.
+
+The [FreeSewing contributor call of 20 august 2022](https://github.com/freesewing/freesewing/discussions/2582) marks the official moment were we decided to wrap up development of v2 with one final release, and then turn our attention to version 3.
+
+In the months leading up to this moment, we had already made great strides in trying to implement many of the things on [our road map](https://github.com/freesewing/freesewing/discussions/1278), and it feels weird to me somehow that only four months have passed since when I think about all the work that has been done on v3.
+
+On the developer side of things, we've completely switched over already. FreeSewing.dev holds our developer documentation for v3, while the _legacy_ v2 documentation is relegated to v2.freesewing.dev.
+
+Our development environment for v3 is also ready — run `npx @freesewing/new-design@next` to try it yourself — and we also rewrote our backend to support our future plans, like hooking up our development environment to the backend so designers can use the measurements data they have stored in their FreeSewing account to test their designs.
+
+
+
+---
+
+
+
+## ✋ 2023 will be the year of FreeSewing 3
+
+The current `next` release of FreeSewing is v3.0.0-alpha.4. The race has started now to turn that into `beta` and then finally put it in production on FreeSewing.org.
+
+I've talked about some of the new things in FreeSewing v3 in [our last newsletter](https://freesewing.org/newsletter/2022q4/).
+I could talk about it more, but talk is cheap. You want to see it, right? Well you can't. It's not ready.
+It was also not supposed to be ready. We started the effort late in August this year, and from the very start put the release at _sometime in 2023_.
+
+But, you can start the clock today and I promise that it will be out before the end of the year. If it's Q4, I will be a bit disappointed. If it's Q3, I will be happy. If it's Q2 I will be thrilled. And if it's Q1 I'll be very surprised.
+
+The only thing that's really left to do right now — apart from copious amounts of polish and bug fixes obviously — is to write a new frontend. In other words, a new FreeSewing.org where you can actually use all of the cool stuff we've been working on.
+
+In many ways, it will be the crowning achievement of version 3. The thing that brings everything together.
+
+No pressure.
+
+
+
+---
+
+
+
+## 💜 The cost of loving
+
+FreeSewing's revenue during 2022 was `9.325,54` euro. That's down from `10.070,77` in 2021, which was in turn lower than the `10.736,82` of revenue in 2020. Still, it's more than double of the `4.109,38` euro revenue of 2019 and I think that's worth pointing out because 2019 was the last pre-pandemic year.
+
+We've seen an enormous influx of users, patrons, and revenue in 2020 undoubtedly because [our face mask pattern](https://freesewing.org/designs/florence/) was wildly popular during the PPE shortage that year. That peak has been tapering off ever since, and has pushed year-on-year revenue into a downward trend. Furthermore, inflation and the cost of living crisis has been particularly tangible this year, and I've received more than one apologetic message from patrons who wanted to continue supporting us but felt obliged to cut us from their monthly budget to ensure they would be able to support themselves and/or their families.
+
+So I don't feel bad about revenue being lower this year. I think it's been a difficult year for many people, and we have always been looking for support from those who could spare it without hardship. Yes, it's nice to break the `10.000` barrier. Yes, I would love to get to `12.000` and reach `1.000` MRR (monthly recurring revenue) but I'm not going to let that get in the way of being proud of the work we do.
+
+I am proud not only of the work we do, but because FreeSewing is a force for good in this world.
+With the addition of this year's `9.325,54`, FreeSewing's contributions to [Médecins sans frontières/Doctors Without Borders](https://www.msf.org/) stands at `38.814,94` euro or about 41.6k US dollar. Money that helps people who are in a worse situation than we all are.
+
+So I am proud of those numbers, and most of all I am proud of the FreeSewing patrons who are behind them. They are the real heroes.
+
+
+
+---
+
+
+
+## 🕵️ Behind the Seams: Zwaluw
+
+One of our Contributor Call hosts sat down (virtually) with Zwaluw (who goes by Z or Zee) to learn a little more about their background and journey to becoming a FreeSewing contributor! The interview below has been edited for length, and any errors, oversights, etc. are entirely the fault of the interviewer!
+
+### How did you learn about FreeSewing?
+
+I don’t remember! I’m very active now, but I remember looking at the site a long while back and thinking it was cool, but I don’t remember how I got there… Maybe googling made-to-measure patterns?
+
+### How did you become a contributor?
+
+That I do remember, it was writing documentation! I don’t remember if Starf asked or I offered, but my first project was writing the documentation for [Lunetius](https://freesewing.org/designs/lunetius/), a historical Roman cloak.
+
+### What has been your contributor work so far?
+
+My first contribution work was the documentation for Lunetius, and I still help with documentation sometimes, but I’ve also started developing patterns. In particular, I’ve made [Lucy](https://freesewing.org/designs/lucy/), a historical tie-on pocket, and Jane. Jane is a to-be-released shift pattern (or underwear for historical garments), and there’s not a lot of patterns out there for those. For so many people in the historical sewing community, you make a shift and get it over with, and that’s not me. Jane gives you options on a pattern that’s pretty loosely fitted, but you might want more or less ease, different sleeves, etc.
+
+### Are you a sewist? A coder? Both? Neither?
+
+I’m definitely both! I’ve sewn for much longer, and FreeSewing is how I started to learn Javascript and Markdown. I’d wanted to learn, but I had done absolutely no coding before, and something about FreeSewing really appealed. I think because I thought, “If I learn this, I can make a pattern.” It’s a really cool way to learn about web design and how to build websites, and I love joining the Contributor Calls. (Note from the interviewer: you too can join the Contributor Calls, every other Saturday! Schedules and agendas are posted in the [Discussions](https://github.com/freesewing/freesewing/discussions) section of the FreeSewing monorepo on Github. The next one is [January 7th!](https://github.com/freesewing/freesewing/discussions/3201))
+
+### When and why did you start sewing?
+
+I first started sewing around when I was ten years old, so sixteen years ago, and I’ve been making my own clothes for most of that time. At some point, I got into historical sewing, and it definitely influences my modern clothing. I like to make historical things that also work for me in my daily life. For example, I wear a lot of walking skirts.
+
+My dream project is a Victorian bustle gown, but it’s a lot of work. I do have a lobster bustle and corset, so maybe I will do a corset cover next…
+
+### What are you currently working on?
+
+Right now, I’m working on a quilt in shades of blue that is all hand sewn.
+
+I like to have multiple types of projects going at once, though, so I am also working on a warm winter skirt made from IKEA flannel bedsheets in a beautiful gray and white plaid. Currently, I’m debating how to create the flannel waistband while keeping it from getting too bulky. I’ve also got some 1780s stays that are hand sewn except for the boning channels, with synthetic whalebone boning, and I need to make a bunch of new shifts, as some of my current ones are getting worn out.
+
+### Which project did you just finish?
+
+The skirt I’m wearing! It’s a wool skirt for going to Tromsø, Norway in the Arctic Circle and I needed very warm stuff for that. While I was there, I also made so many napkins for the people whose house I was staying in. Sometimes I’ll use handcrafts as a fidget.
+
+### What sewing/coding project are you most proud of?
+
+I think I’m most proud of Jane, a shift designed on FreeSewing that’s slated for release in 2023. That was my first coding project, and it’s done now, and functional! [Lucy](https://freesewing.org/designs/lucy/) I slapped together in a weekend, while Jane I’ve been working on for a year.
+
+### What in your life are you most proud of?
+
+My family isn’t super crafty, but both my grandmothers were sewists, and my Dutch grandmother was a weaver, and I’m definitely proud that I’m continuing that, even though they never got a chance to teach me. I have my grandmother’s old looms, and my great grandmother's sewing machine. Looms are too big for a studio, but the sewing machine is one of those ancient black cast iron Singers that you crank by hand, and it still works! I can’t date it specifically, because it is from before they had serial numbers (which means it’s pre-1860s).
+
+### What do you love the most about sewing?
+
+I love the meditative aspect of sewing. I can’t do meditation, and I’m not a mindfulness person, but when I sit down with a project and hand stitch, it’s very calming. I will machine stitch some things, too, but I find myself thinking: “This is so fast, I don’t enjoy this.”
+
+### What’s the hardest part of sewing to you?
+
+The historical sewing community can be pretty inaccessible – if you don’t have a lot of money or time, then getting into this hobby can be really hard, and I wish that wasn’t the case. It’s part of what makes FreeSewing so cool – everyone’s donating their time and skills, so you’re not paying $30 for a pattern that doesn’t even properly fit you.
+
+For me personally, I think the hardest part is pacing, and making sure I don’t overdo it and hurt my hands. I do my best to have projects in different buckets: complicated, easy, practical… And I switch between them to not completely burn myself out. I need to recognize when I need to not sew for a few days, and then usually I end up switching to FreeSewing things!
+
+### What would be your advice for starting sewists?
+
+Do something you enjoy. Even if it’s a big project and it’s overwhelming, it’s more fun to do that than to do something easy. And don’t forget your thimble. Historical costuming folks so often don’t have a thimble, or don’t stitch ergonomically, and it can really hurt your hands. I did not start out as a hand sewist – I took a class with Sarah at Williamsburg. I basically spent an hour sewing, and my hands hurt, and it didn’t work, and she saw and taught me her method. I’ve been handsewing ever since. (You can find Sarah on Instagram at [@sewnstories](https://www.instagram.com/sewnstories/).)
+
+### Do you sew mostly for yourself, or for others like friends and family?
+
+I sew mostly for myself. I have made things for other people occasionally, but not a lot. Sometimes I have a time where I don’t have enough spoons and I really want to make things, but I already have enough towels, aprons, etc. So then I’ll make things for other people. And I am theoretically available for commissions (but it’s slow).
+
+### What are you up to when you’re not making clothes or designing patterns?
+
+Reading books – I don’t have any favorite genres, but my favorite author is Terry Pratchett. I’m excited that we’re finally getting a Discworld movie version that looks good! Besides reading, I spend some of my time playing video games (I’m currently playing Destiny 2) and resting.
+
+### Would you like to share ways to follow you on social media?
+
+I’m bad about posting, but my Instagram is [@zwaluwz](https://www.instagram.com/zwaluwz/). It also includes pictures of my cat, who was leash-trained!
+
+### Do you have pets? Family?
+
+I had a cat named Q, but he passed away last April. I’m hoping to move, so that I can have a cat again, because my landlord won’t let me get a new cat.
+
+### Are you a dog person or a cat person?
+
+Both! I do not discriminate in animals. I got to handle a bunch of snakes once, and it was the happiest I’ve ever been. Maybe I should just get a lizard… Or a hognose snake…
+
+### If there was one thing you could take with you to an uninhabited island, what would it be? Why?
+
+A sewing project!
+
+### If there was one person you could take with you to an uninhabited island, who would it be? Why?
+
+I don’t think I would take people, I’d just have a nice quiet time.
diff --git a/sites/orgdocs/newsletter/2023q2/index.mdx b/sites/orgdocs/newsletter/2023q2/index.mdx
new file mode 100644
index 00000000000..9f35970f13d
--- /dev/null
+++ b/sites/orgdocs/newsletter/2023q2/index.mdx
@@ -0,0 +1,183 @@
+---
+date: '2023-04-01'
+edition: '2023q2'
+intro: 'Welcome to the 2023 Spring edition of the FreeSewing newsletter.'
+title: '2023 Spring edition'
+authors:
+ - 1
+ - 13050
+ - 28838
+toc_max_heading_level: 2
+---
+
+Welcome to the 2023 Spring edition of the FreeSewing newsletter.
+
+Here's what's we've included for you today:
+
+- ☕ Keeping up with all the hottest FreeSewing gossip (3-minute read - by Karen)
+- 🐑 Call for pattern shepherds (2-minute read - by Karen)
+- 💵 Looking for a 1000 true fans (3-minute read - by Joost)
+- 🕵️ Behind the Seams: Benjamin F. (4-minute read - by Benjamin & Karen)
+- 🦈 Want to write for the newsletter? (1-minute read - by Karen)
+
+
+
+
+
+
+
+## ☕ Keeping up with all the hottest FreeSewing gossip
+
+Okay, so you're a fan of FreeSewing, you're excited for V3, and in the meantime, you're wondering where to get all the hottest gossip about what's going on behind the scenes. Fear not! We've got solutions for you.
+
+First off, have you checked out our [Discord](https://freesewing.org/community/where/discord/)? This is where you can catch all the fun previews, like what patterns are slated for release in V3, recommendations and tips from fabric types to hard-to-find hardware to sewing machine maintenance, all the cool tinkering developers are working on behind the scenes, and more. If you want to be truly in the know, this is where it's at. (It's also literally where it's at, if you want to join FreeSewing's biweekly contributor calls, which happen in the voice chat.)
+
+If you hate Discord, there are still options for you, though. Benjamin F. (of "Behind the Seams" fame) has been recapping the highlights from Discord as a GitHub discussion here: [Discord recaps](https://github.com/freesewing/freesewing/discussions/3523). Check it out for a quick perusal of recent hot topics.
+
+And last but not least, there is of course the FreeSewing site itself. While some updates are on hold pending V3, you can still check out our Showcases to get a peek into some of the wonderful and impressive things that FreeSewing users have been making in recent months. A few highlights:
+
+- The tiniest Hi ever made: [MicroHi](https://freesewing.org/showcase/microhi)
+- This detailed how-to on making a [drop-shoulder Sven](https://freesewing.org/showcase/drop-shoulder-sven)
+- A matching set of [multi-generational Florents](https://freesewing.org/showcase/matching-florents)
+- How to [modify Aaron into a tank dress](https://freesewing.org/showcase/aaron-dress-by-ts)
+- An incredible, impeccable [Classic Carlton by Boris](https://freesewing.org/showcase/carlton-by-boris) (check out the reinforcement embroidery!) -->
+
+...And a bunch more that didn't fit here but are equally incredible, and you'll just have to go check out the [Showcase](https://freesewing.org/showcase/) to find out more. 😉
+
+
+
+---
+
+
+
+## 🐑 Call for pattern shepherds
+
+Are you an expert at making a particular FreeSewing pattern? Maybe you've tried all the options, or you know why it goes haywire in certain edge cases, or you've made it for all your friends and fam as gifts? If this rings true, then yours is exactly the kind of expertise we're looking for.
+
+As you might have noticed, FreeSewing is growing and adding new capabilities! And when V3 rolls out, there are several new patterns that will come with it. But every pattern could use someone who is familiar with its foibles and intricacies. A lot of the time, this is the pattern designer. In other cases, it's the person who developed the pattern's documentation. And then there are the patterns that exist on FreeSewing's site, but their designer has moved on to new challenges, or no one has made the pattern in a while. These patterns can sometimes fall prey to problems that no one notices. Then, when new users try them out, it can be a needlessly rough experience.
+
+A pattern shepherd is someone who keeps an eye on things so this doesn't happen for their pattern. You don't need to be a programming prodigy or a sewing savant for this role, just someone who is familiar with the pattern, what goes into it, and how it goes together. If something breaks, you might fix it yourself, but you could also file a bug report to let the rest of the community know and recruit help. If this sounds like something you'd be interested in, reply to this email and let us know!
+
+Bonus: FreeSewing has a bug bounty program that nets you (a) our undying appreciation, and (b) sometimes cool swag.
+
+
+
+---
+
+
+
+## 💵 Looking for a 1000 true fans
+
+I realized a few weeks ago that it has now been more than 6 months that we started working on version 3 of FreeSewing, and that's both an eternity and not very long at all.
+
+It's an eternity if you've been waiting with bated breath for its release. (If you're in this group, then please bear with us because gosh have we been busy).
+But it's not very long at all if you consider all the changes that we are cramming into this new major version. I took stock the other day and I realized there is almost nothing that we aren't completely redesigning or doing differently and better. A brief list from the top of my mind:
+
+- Database: From MongoDB to Sqlite
+- Backend: Completely rewritten
+- Javascript: From CJS/ESM to pure ESM, and from default exports to named exports
+- Bundler: From Rollup to Esbuild
+- Hosting: From Netlify to Vercel
+- FreeSewing.dev: From Gatsby to NextJS
+- FreeSewing.org: From Gatsby to NextJS, and being completely rewritten
+- Development environment: From CRA (Create React App) to NextJS
+- Component library: From MaterialUI/MUI to TailwindCSS/DaisyUI
+
+I am sticking to technical changes here, there's obviously new features and other things that will be different/better.
+But these are the foundations that are changing, so is the kind of stuff that won't be immediately obvious to you.
+
+The one thing that is not on the list above is our payment processor (currently PayPal, we'll probably migrate to Stripe) which brings me to the one thing we haven't (yet) changed: Subscriptions.
+
+Currently, we have 3 tiers of subscriptions. 2, 4, and 8 euro per month.
+Some users have reached out to me because they wanted to do more for FreeSewing and [we've setup a 25$/month subscription plan for those generous souls](https://static.freesewing.org/fs-25/).
+
+That got me thinking about the subscription model and how the project is supported financially in general.
+You may remember that I wrote last year that FreeSewing's revenue was trending ever so slightly downward, and it's something that I tend to get nervous about when I consider how many changes we are making.
+People don't typically like change, and there is a certain risk that we'll alienate people with v3.
+
+Then again, mass appeal is never been our shtick. We don't need millions, [all you need is a 1000 true fans](https://kk.org/thetechnium/1000-true-fans/). So in v3, we will also overhaul subscriptions.
+We'll implement a pure [pay what you can](https://en.wikipedia.org/wiki/Pay_what_you_can) model.
+So today, you can either not pay, or pay 2, 4, 8, or 25 euro/dollar per month.
+In the future, you will still be able to not pay, or pay whatever you feel is right.
+Current subscriptions will not be terminated, although you are of course welcome to migrate to the new subscription model.
+
+The future will tell whether this will be good or bad move for FreeSewing.
+But I believe that betting on our true fans is our winning strategy. So that's what we'll do 🤞
+
+
+
+---
+
+
+
+## 🕵️ Behind the Seams: Benjamin F.
+
+FreeSewing contributor Benjamin (BenJamesBen on GitHub) has been absolutely astounding us lately with his work supporting FreeSewing. So, we asked him if he wouldn't mind being the subject of this quarter's newsletter, and of course he not only said yes, but came back with something fantastic, funny, and unique. As always, any errors, oversights, etc. are entirely the fault of the interviewer!
+
+### Tell us about your involvement with FreeSewing.
+
+Thank you for giving me the opportunity to talk about FreeSewing. I think that it's a pretty great organization in that it provides patterns free of charge to people. To me, that is the best thing that FreeSewing does. In the United States there is a retail store that regularly has sales where you can buy paper patterns for $2.00 USD, but I've heard that patterns are much more expensive in other countries. And, in some places paper patterns simply aren't available at all in stores. FreeSewing provides free patterns to everyone!
+
+### I see that you do a lot of coding-type work for FreeSewing?
+
+I used to work doing computer stuff (software QA and testing), and my education background is also in computer science. A lot of what I've done in the past involves looking at code that other people have written, figuring out what it does, and troubleshooting issues. So, I've just taken that background and applied it to FreeSewing, testing the website and patterns to make sure things are working correctly, trying to fix bugs that pop up.
+
+### Are you also a sewist?
+
+That's actually a good question, in a philosophical sense that is. I own a sewing machine and took sewing lessons. I have a fabric stash and multiple unfinished projects I should be working on. But, actual sewing? I don't seem to do much sewing. I do spend a lot of time watching sewing videos on YouTube. Does watching sewing videos count towards being a sewist?
+
+### What unfinished projects are you avoiding working on and watching YouTube instead?
+
+I started working on a pirate/18th century shirt design for FreeSewing. All the code is written, and it produces patterns just fine. However, I haven't actually tested it to see if the generated patterns make sense fit-wise. (I guessed at the pattern measurements, just inventing numbers that seemed to make sense.) The next step is to make a test garment to check fit, make alterations to the pattern, and change the code accordingly.
+
+I also owe my sister a pillow made to custom measurements. (I basically just need to sew a rectangular bag with a zipper closure that she can stuff it with extra memory foam that she has own hand.) And finally, my first, original unfinished project is a Hawaiian/bowling style camp shirt, Kwik Sew 3484. (I bought the pattern back when Kwik Sew was its own company and still made garment patterns, if that gives you an idea of just how long the project has been unfinished.)
+
+### The pirate shirt sounds interesting.
+
+I chose it because 1. I actually want a pirate shirt, and 2. It seemed like a good, easy design to make (all the pieces are rectangles!). However, although I am somewhat interested in historical clothing, I am not at all interested in historical sewing methods-- sewing by hand, that is. I plan to use a sewing machine to sew my pirate shirt.
+
+Fun fact: Pirates also sewed using sewing machines (that they took from the ships they plundered). However, instead of removing pins as they sewed, they would leave the pins in and sew over them-- which can be really dangerous. That is why so many pirates had to wear eye patches.
+
+### You said you owned a sewing machine?
+
+It's a Kenmore-badged machine that was made by Janome. I think it was the most basic model available at the time. No stitch length or width adjustment, 4-step buttonhole, front loading bobbin. I bought it new at Sears back when Sears still existed and sold sewing machines. (That should give you another clue about how long my camp shirt unfinished project has been unfinished!)
+
+### What sewing projects would you like to work on in the future, that is assuming you finish your existing unfinished projects?
+
+I would like to make my own tailor's ham. (Another simple pattern-- just two ovals.) I am considering making my own underpants since I need some new ones. Though, I am not sure whether it might be more practical or cost effective to simply buy them from the store. And, I am somewhat intimidated of sewing knit fabric. I've also gotten interested in patterns for sewing your own custom, made-to-measure dress form/mannequin. However, that seems like it might be too difficult a project.
+
+Finally, someday I would like to make a garment out of upholstery or curtain fabric. It seems like it might be an interesting challenge to use that type of fabric. Plus, Scarlett O'Hara wore a dress made from curtains, and as a result she got to marry Rhett Butler. Maria made clothes from curtains, and she got to marry Captain Von Trapp. (And, she was almost a nun!) If I were to make clothes out of curtains, imagine who I could marry!?
+
+### Getting back to coding, is it a difficult task to create a FreeSewing pattern? I'm thinking about people who might be experienced sewists who can design patterns but who don't have coding knowledge.
+
+It isn't necessarily difficult converting an existing pattern into code. The first challenge is to learn how to think about how the pattern is drafted and describe it in terms of measurements and angles. Sort of like if you had to describe how to draft a pattern to someone over the phone or through text messages. Once you are able to write down instructions like, "draw a Point A", "draw another point 10 cm at a 45 degree angle above and to the right of A and label it Point B", "draw a line between Point A and Point B", etc., you can translate the drafting instructions into code.
+
+The next challenge might be to take the existing pattern which was made for one specific person and think about how it might be converted to patterns for other people with different measurements. You would have to think, "why was this part's fabric measurement 10 cm"? If it is because it was slightly larger than the wrist circumference, then perhaps the measurement could instead be converted to "the wrist circumference, plus 10%". I think that the skillset might be similar to that of pattern grading.
+
+For the coding itself, perhaps the best way to learn (apart from taking a formal coding course of which there are plenty of free ones on the internet) might be to look at the code for an existing FreeSewing design. I suspect that many people learn how to code by looking at existing code, copying it, and making changes to it to see what the changes do. FreeSewing provides a lab tool that allows you to view changes to the designs that you make or edit, so you can play around with things and learn from experimentation. If you need any help or get stuck, there are plenty of people on the Discord who would be happy to help!
+
+### Thank you. Any final words?
+
+I find it somewhat amazing that the FreeSewing community is so geographically diverse, spread throughout the world, and still able to communicate with and help each other. I am glad to be part of this community. Though, it occurs to me that with the anonymity of the internet, nobody has actually seen me or knows who I am. For all anybody knows, I could be a cat on the internet just pretending to be a person. (If I were a cat, this wouldn't be considered "catfishing". We cats just call it "fishing"!)
+
+
+
+---
+
+
+
+## 🦈 Want to write for the newsletter?
+
+Hey! It's Karen, your friend from the [contributor calls](https://freesewing.org/community/calls/), the [Discord](https://discord.freesewing.org/), and a bunch of the stuff written in this newsletter! Every quarter, we put out this newsletter as a way of keeping folks caught up on what's new with FreeSewing, cool updates, impressive accomplishments, weird projects, etc. But it only works because there's a whole incredible cohort of folks creating, designing, and contributing. (Here's where you come in.)
+
+If you read this newsletter and thought:
+
+- "But what about fill-in-the-blank question?" or
+- "Ooh, that reminds me of a FreeSewing project I've been working on behind the scenes..." or
+- "Wow, I wish someone would do a deep dive on this topic!"
+
+...We would love to know that. And if you want to write that article yourself, well then I will personally be overjoyed and will help you in any way I can to make that possibility a reality.
+
+Maybe you made a garment that required some clever hacking or took on a life of its own, and you're really proud of it. Maybe you've got a fork of the FreeSewing monorepo where you're tinkering away with something exciting. Maybe you don't know what you'd like to write about, but you love FreeSewing and want to contribute, or you're hoping to build your cred as a reputable wordsmith. (Okay, actually, reputable might be a stretch, but that's part of our charm.)
+
+Reach out! You can find us on [Discord](https://discord.freesewing.org/), or on [Github](https://github.com/freesewing/), or you can just reply to this email. We'd love to hear from you. 🧡
diff --git a/sites/orgdocs/newsletter/2023q3/index.mdx b/sites/orgdocs/newsletter/2023q3/index.mdx
new file mode 100644
index 00000000000..feb92f8c75b
--- /dev/null
+++ b/sites/orgdocs/newsletter/2023q3/index.mdx
@@ -0,0 +1,300 @@
+---
+date: '2023-07-01'
+edition: '2023q3'
+intro: 'Welcome to the 2023 Summer edition of the FreeSewing newsletter.'
+title: '2023 Summer edition'
+authors:
+ - 1
+ - 13050
+ - 20650
+toc_max_heading_level: 2
+---
+
+Welcome to the 2023 Summer edition of the FreeSewing newsletter.
+
+Here's what's we've included for you today:
+
+- 🚨 Intermittent signup trouble as v2 infrastructure struggles with load (2-minute read by Joost)
+- 🕵️ Behind the Seams: Jasmine (6-minute read - by Jasmine & Karen)
+- 🪡 Technique of the week (2-minute read - by Karen)
+- 🙏 Help us with social media (2-minute read - by Bob & Karen)
+- ⚫ It's always darkest before dawn (3-minute read by Joost)
+
+
+
+
+
+---
+
+
+
+## 🚨 Intermittent signup trouble as v2 infrastructure struggles with load
+
+FreeSewing has recently been experiencing intermittent email delivery issues,
+which causes problems for new users trying to sign up, or other actions that
+rely on transactional emails, such as password resets.
+
+The underlying issue is that we are getting rate-limited by the SMTP relays we
+use to send out these transactional emails, and this causes people to wait in
+vain for their signup email, password reset, and so on.
+
+We have been using a free-tier service for the delivery of these messages, and
+historically this has worked fine for us. There's been moments in the past
+where a large influx of new users would trigger these problems, for example
+during the height of the PPE shortage in the early stages of the COVID pandemic
+when FreeSewing (and our face mask pattern) was linked to in the
+New York Times, Forbes, and several other new outlets that dwarf us in scale.
+
+What used to be an exceptional event is now becoming more common, and it's
+something that I personally tend to lose sleep over because it
+disproportionately impacts the on-boarding process. Sure, there's going to be
+the occasional user who will have trouble resetting their password. But the
+vast majority of people who are impacted by this are new users, who are
+attempting to sign up.
+
+It is a bad first impression when they can't get in, and as we all know, bad
+first impressions can be hard to recover from.
+
+After mulling it over for a while, I've decided to... do nothing. Or rather, to
+keep working on the more permanent fix, which is the v3 infrastructure where
+we've switched transactional email to a different partner where we are a paying
+customer, so there will be no rate limiting. Downing tools now to go
+firefighting on the current production v2 infrastructure would only delay the
+release of v3, which will resolve this problem once and for all.
+
+As a mitigating factor, we have already migrated the delivery of this newsletter to our new infrastructure, as this will lighten the
+load on our _budget_ of transactional emails per day. So
+unlike before, we're actually paying money to get this to your inbox. It's not
+a lot of money per email of course, but it's just one of the many changes we
+need to make to scale up FreeSewing.
+
+So, apologies to all those people who have been impacted by these intermittent
+issues. I know that nothing I say here can undo the frustration of hitting
+refresh on your inbox and not getting that email. But I wanted to be open about
+the underlying issues and why -- confronted with a lot of work and limited
+resources -- I've decided to keep my eye on the prize.
+
+
+
+---
+
+
+
+## 🕵️ Behind the Seams: Jasmine
+
+If you haven't met Jasmine yet, you're missing out (and you should come hang out in our [Discord](https://discord.freesewing.org/)). She's got some cool sewing projects under her belt, but another big reason we reached out to interview her was the exceptional contributions Jasmine makes to the FreeSewing community. Have a question, a problem, or a celebration to share? Jasmine has cheered on and helped out countless folks in the community and brings support and joy (and incredibly cute puppies) to the folks of FreeSewing. So without further ado, here's a little bit more about one of our favorite FreeSewists!
+
+### How did you learn about FreeSewing?
+
+I think it was in search of a way to draft a body block...
+
+My body is proportioned in a way I don't really find easily in ready made patterns. So the idea was to figure out a basic block to use as a template when adjusting patterns.
+
+### How did you become a contributor?
+
+I'm a contributor? When did that happen? I guess it started with sharing my makes with the community, and then hacking the Sven sweater to emulate an oversized sweater I loved but absolutely couldn't afford.
+
+### What has been your contributor work so far?
+
+The [family of Florents](https://freesewing.org/showcase/matching-florents/) have found their way onto the showcase pages, and the [hacked Sven](https://freesewing.org/showcase/drop-shoulder-sven/) did as well. I also wrote out how I adapted the design to an oversized drop-shoulder style.
+
+### Are you a sewist? A coder? Both? Neither?
+
+A sewist. Learning to code is on my wish list, but I don't have the bandwidth for it at the moment.
+
+### When and why did you start sewing?
+
+I've wanted to learn to mend for a long time, as well as adjusting the fit on bought items. The same proportions that don't fit into sewing patterns easily also make it so I can get into standard sized clothes. But they never fit me properly. Everything tends to gape at my waist.
+
+### What is your daily job, outside of FreeSewing?
+
+I'm an X-ray technician at a small hospital. For the most part, I do hospital radiology, but a small portion of my hours is spent on patient radiation dose management and optimisation.
+
+### What are you currently working on?
+
+Sewing is mostly paused at the moment as my partner and I have a lot of renovation projects we need to focus on right now. There's a small handsewing project I'll work on to kill time during a quiet night shift at work, but nothing concrete at the moment.
+
+### Which project did you just finish?
+
+I just finished some adjustments on a pair of trousers I made two years ago. They're a loose fit with a drawstring waist, and my first sewing project. I was thrilled even just managing to follow the instructions at that point, but the back and front panels are identical. With my body shape and rear estate, to use coined FreeSewing lingo, that's not ideal. So I removed some material from the front, and added patch pockets from some scraps I had left of the fabric.
+
+### What sewing/coding project are you most proud of?
+
+The loose fitted pleated trousers I made after the Folkwear Rosie the Riveter pattern. It included a lot of new challenges I'd never taken on before. I'm sort of still picking projects in a way that forces me to learn a new thing each time, and this one definitely pushed the limits of my confidence.
+
+### What in your life are you most proud of?
+
+There's so much to choose from. Some pieces of my writing? The ones where I dragged my guts and tears and snot across the page? I don't know. Stories and art matter. Certainly. But I think right now it's the puppies we raised. Seeing them come into the world, watching them waddle around and explore, and help them grow into wonderful family members for their future humans? That might be it. I'm already both dreading and looking forward to our second litter.
+
+### What do you love the most about sewing?
+
+The way the tactile work helps settle the chaos in my brain. When I hit the right rhythm, it can feel meditative.
+And I end up with garments that do what I want them to, rather than having to search endlessly for what will end up as a compromise both in terms of fit and style, and sustainability and fair labour issues. Plus-sized shopping can feel like one of the seven levels of hell.
+
+### What do you hate the most about sewing?
+
+Cutting.
+
+### What’s the hardest part of sewing to you?
+
+Usually, that's knowing when to stop. I will either fall into a hyperfocused rabbit hole and then realise it's 4am and possibly time to go to sleep, or I'll just keep doing one more seam and then one more, and then I get so tired I make a stupid mistake.
+
+### What would be your advice for starting sewists?
+
+Sew things you're excited about. Practice projects like bags and bookmarks are great, but if you're motivated to finish a thing and use it, it becomes so much more fun. If you're prone to self-doubt, picking projects to expand or solidify your skills gradually can really work well. But if you're excited about it, and eager to get to work, by all means, go for that lined coat with lovely construction details and tailored elements. (Thinking of the lovely coats and jackets FreeSewing features.)
+
+### Do you sew mostly for yourself, or for others like friends and family?
+
+Mostly myself, but two of my Florent triplets were made for relatives, and last winter I made a bunch of wristwarmers out of offcuts of sweater fabric, as stocking stuffer gifts for my family.
+
+### What are you up to when you’re not making clothes or designing patterns? Would you like to share ways to follow you on social media?
+
+Lol, how much space do we have here? As already mentioned, my partner and I ate licensed breeders of Belgian Tervuren Shepherds, though we stick to a litter every two years, pretty much. With the amount of time and energy invested in the puppies, more would not be sustainable. We also compete with our girls at dog agility trials and conformation shows.
+And then I'm also a writer, poet, narrator, and podcaster. Links to my creative work can be found at [jasmineArch.com](https://jasmineArch.com/), and I also venture onto Tiktok now and then, where I'm [@jaztellsstories](https://www.tiktok.com/@jaztellsstories).
+
+### Do you have pets? Family?
+
+We currently have four dogs, though that number is set to grow in the coming years, I suspect.
+
+### Are you a dog person or a cat person?
+
+I like cats and will definitely want one as soon as my Lucie girl is not with us anymore. She loves cats too, but a little too much, I'm afraid. The cat would not be amused. But dogs are closer to my heart. The connection we have through working and training with our dogs is something I don't see happening with a cat anytime soon.
+
+### If there was one thing you could take with you to an uninhabited island, what would it be? Why?
+
+Oomph. Only one? A well-stocked ereader that has a solar cell to recharge.
+
+### If there was one person you could take with you to an uninhabited island, who would it be? Why?
+
+Shit. Can't I go alone? The older I get, the more of an introvert I'm becoming. Otherwise, I'd want one of my dogs. My youngest, Vroni, makes an excellent blanket in the evening, and she's always happy, cheerful, and ready for a game of some sort. While some humans make for excellent company, they're usually a bit heavy to use as a blanket.
+
+
+
+---
+
+
+
+## 🪡 Technique of the week (X-minute read - by Karen)
+
+First things first, yes, this newsletter comes out quarterly, so this title's moderately apocryphal. "Technique of the quarter" lacks panache, so here we are. Just work with us.
+
+In a recent [Contributor Call](https://freesewing.org/community/calls/), some FreeSewing contributors mentioned that great tips and techniques sometimes get shared between the community on [Discord](https://discord.freesewing.org/), and it would be great to share them more broadly. So, here goes!
+
+A few weeks ago, a new sewist was having trouble with the top thread snapping over and over, and it led to some great troubleshooting tips. While this time, it didn't work (sometimes you have to throw in the towel and get your machine serviced, like if the timing's off), we thought the suggestions would be great to share!
+
+### Is your thread snapping when you try to sew? A few things that might be worth checking...
+
+- The tension might be off. It's usually a numbered dial near the top of the machine, and it should generally be set to around 4 or 4.5, unless you're tinkering with it or more familiar with tension. If you're having problems and the tension is set to 2 or 7 or something, odds are high that's the problem.
+- Do you have the presser foot up while you're threading the machine? This separates the tension discs, so your thread can slip between them.
+- Maybe something's up with your tension discs themselves. These are the little discs that your thread travels between before it goes through the takeup lever. They hold the thread at the right tension, and if your thread slips outside of them, it can cause all sorts of problems. If the thread's definitely between the tension discs, but you think they're the source of the issue, make sure they're all cleaned out and no lint or dust is caught between them.
+- Make sure you've got the right bobbin. Sometimes they look right, but even a minor variation from what's recommended for your specific machine can cause major problems. Once you're sure of that, make sure the bobbin is loaded in the right direction!
+- It's also always worth making sure you've got a good fresh needle! The wrong size needle for the fabric can mess up your thread tension and your fabric.
+
+Good luck sewing!
+
+
+
+---
+
+
+
+## 🙏 Help us with social media
+
+Hey! Did you know FreeSewing is on social media? If the answer to that question is no, well, you're not alone. We could use some interested parties who are socially savvy to pick up the loose ends we've left trailing around Instagram, Reddit, and other platforms.
+
+### What platforms do you need help with?
+
+Currently, FreeSewing is on [Discord](https://discord.freesewing.org/), [Facebook](https://www.facebook.com/groups/627769821272714), [Instagram](https://instagram.com/freesewing_org), [Reddit](https://www.reddit.com/r/freesewing/), [Twitter](https://twitter.com/freesewing_org), and [YouTube](https://youtube.com/channel/UCLAyxEL72gHvuKBpa-GmCvQ). (If you want to check out the whole list again later, you can find all of them here: [Where to find us](https://freesewing.org/community/where/).)
+
+Frankly, I don't think we're going to say no to support with any of them, but in particular our Instagram and Reddit accounts could use someone at the helm, and it's been a while since our YouTube had exciting new content.
+
+### What would I actually be doing?
+
+Great question! It's important to FreeSewing that people volunteering their time are getting to work on things that they find interesting, joyful, motivating, etc. So, if you've got strong thoughts on the way one of these items could or should be managed, we're all ears. That being said, sometimes guidelines are helpful, so here's a little info.
+
+**Instagram**: This person would at least monitor messages and tags, and would re-post cool makes from FreeSewing users that tagged us or used one of the [FreeSewing hashtags](https://freesewing.org/community/hashtags/). You would abide by the [Community Standards](https://freesewing.org/docs/various/community-standards/) in all of their interactions on behalf of FreeSewing. If you wanted to go above and beyond, you might actually create content, pulling from makes posted in the showcase, cool things happening on [Github](https://github.com/freesewing/) or [Discord](https://discord.freesewing.org/), updates from [Contributor Calls](https://freesewing.org/community/calls/), etc.
+
+**Reddit**: This person would moderate the [FreeSewing subreddit], making sure that contributors were adhering to FreeSewing's [Community Standards](https://freesewing.org/docs/various/community-standards/). You would answer questions where possible and function as a connector to the rest of the FreeSewing community in cases where questions and contributions should be shared with more contributors.
+
+### What if, like so many before me, I can't commit long-term but would like to contribute _something_?
+
+**Create a YouTube tutorial**: You know how we said that our YouTube could use some new content? If you're ever inclined to make, for instance, a tutorial for a pattern, a video on how you hacked something to work for you, a how-to on some aspect of developing and contributing code to FreeSewing... Well, this list could go on, but the short version is that we'd love to see it.
+
+**Join our Facebook group or Discord**: It's only fun if it's a community.
+
+**Write for the newsletter**: If you've used a FreeSewing pattern for something interesting, developed a cool new contribution for FreeSewing, would love to share a deep dive on a sewing technique, we'll gladly help get it into the newsletter, onto the Showcase, or wherever it best fits.
+
+You can let us know if you're game to help out with any of these by simply replying to this email, or by hopping in the Discord.
+
+
+
+---
+
+
+
+## ⚫ It's always darkest before dawn
+
+I had to look it up but at the beginning of this year, I wrote the following
+about the release of FreeSewing version 3:
+
+> _You can start the clock today and I promise that it will be out before the end of the year._ > _If it's Q4, I will be a bit disappointed. If it's Q3, I will be happy._ > _If it's Q2 I will be thrilled. And if it's Q1 I'll be very surprised._
+
+Today marks the start of Q3 and so the pressure mounts to deliver on that promise.
+I had initially penciled in the 25th of August as a bit of a hard deadline
+because it marks 6 years to the day since I launched FreeSewing.org.
+
+If I had been smart, I would have gone back to [that announcement blog
+post](https://freesewing.org/blog/open-for-business/) and heeded the warning in
+its prophetic opening sentence:
+
+> _When I released freesewing core back in March, I did not expect it to take
+> another 5 months to finally have a proper front-end for it, but here we are._
+
+Because this is exactly the situation we find ourselves in today. The
+foundational work is largely completed. We may still tweak things left and right
+as we make progress, but the main effort is now on building a new frontend for
+our flagship website. Somehow, we need to make all of that work under the hood
+available to you in a way that is simple yet powerful, and intuitive despite
+FreeSewing providing functionality that is not what people typically expect from
+_a sewing pattern website_.
+
+I am no longer certain that I'll make that self-imposed August 25 deadline.
+Although I am still cautiously optimistic that by the end of this quarter, when
+the next edition of this newsletter rolls around, we'll have reasons to
+celebrate. Still, it will be ready when it's ready. Estimating the amount of
+time it will take to write software is notoriously difficult when it's your day
+job, it gets increasingly more hand-wavy when you are limited to your evenings
+and weekends to move the needle.
+
+This somewhat stoic _it will be ready when it's ready_ attitude does not mean I
+am less determined to make it happen. It's more the realization that as much as
+I want to sprint to the finish line, this is more like a marathon. And blowing
+up before the finish line is a clear and present danger.
+
+The last month or so has been difficult for me. The increasing pressure to
+deliver had sucked most of the joy out of my FreeSewing work, and I found
+myself irritable and easily triggered. I was attending a session on burnout
+prevention at work recently, and I recognized so many of the warning flags in
+myself that I realized that staying the course was too dangerous.
+
+My commitment to the success and growth of FreeSewing remains unwavering. On
+the other hand, I felt something had to give, so I ultimately decided that the
+best way forward for the foreseeable future would be to _only_ focus on getting
+v3 out the door.
+
+So for the time being, and probably at least until v3 is ready, I am taking a
+step back from the community to allow me to work on FreeSewing free of
+distractions. It is this same somewhat hermit-like focus that has brought
+FreeSewing into this world, it's what brought you (the current) FreeSewing v2,
+and I believe it will get us to FreeSewing v3 as well.
+
+I'm in a better place now. It was touch-and-go there for a moment, and I'd like
+to apologize to those members of the community who had to deal with my
+increasingly frazzled mental health in the weeks leading up to my course
+correction.
+
+I'm still not sure I'll make the deadlines I've set out for myself. But I feel
+positive and hopeful again that the work we're doing is worthwhile and will pay
+off in the end. And -- should there by any doubt about that -- I know for a
+fact that the FreeSewing community is perfectly wonderful without me around too.
+And on some of my more difficult days, probably even more so.
diff --git a/sites/orgdocs/newsletter/2023q4/index.mdx b/sites/orgdocs/newsletter/2023q4/index.mdx
new file mode 100644
index 00000000000..68c9307b0fb
--- /dev/null
+++ b/sites/orgdocs/newsletter/2023q4/index.mdx
@@ -0,0 +1,381 @@
+---
+date: '2023-10-01'
+edition: '2023q4'
+intro: 'Welcome to the 2023 Autumn edition of the FreeSewing newsletter.'
+title: '2023 Autumn edition'
+authors:
+ - 1
+ - 13050
+toc_max_heading_level: 2
+---
+
+Welcome to the 2023 Autumn edition of the FreeSewing newsletter.
+
+Here's what's we've included for you today:
+
+- 🎉 Announcing FreeSewing v3.0 (2-minute read - by joost)
+- ⚠️ Breaking changes in FreeSewing v3 (1-minute read - by joost)
+- 📦 FreeSewing designs are now JBOP (1-minute read - by joost)
+- 🕵️ Behind the Seams: Jenni (6-minute read - by Jenni & Karen)
+- 🙏 You have measurements, and I want them for our new site (2-minute read - by joost)
+- 🇺🇦 Support for Ukrainian and a newsletter in multiple languages (1-minute read - by joost)
+- 🤔 So when will FreeSewing.org run on version 3? (1-minute read - by joost)
+
+
+
+
+
+---
+
+
+
+## 🎉 Announcing FreeSewing v3.0
+
+FreeSewing 3.0 is finally here.
+
+The 3.0 release culminates more than a year of work, and comes just over four
+years after the v2.0 release. What I’m saying is: I don’t make announcements
+like this often, and it’s a big deal. You should get excited.
+
+A lot of work went into this release, and I couldn’t possibly cover all of it.
+To give you a rough idea, FreeSewing's monorepo -- which holds all our code --
+was created in early July 2018 when I migrated to a monorepo approach. Its
+current state is the result of over 92K commits since that day.
+
+Of those 92K commits, more than 45K are the work on v3, as you can see in this
+output from when I finally got to merge v3 into the main branch (which was frozen since
+August last year):
+
+```
+joost@machine:~/git/freesewing$ git status
+On branch main
+Your branch is ahead of 'origin/main' by 45197 commits.
+ (use "git push" to publish your local commits)
+
+nothing to commit, working tree clean
+```
+
+Would it surprise you if I told you there were a few merge conflicts to resolve?
+
+Anyway, I know commit count is a crude way to measure things. But it's somewhat
+indicative of the effort expended that the work done over the last 13 months to
+get to v3 by commit count is roughly similar to the work done in the 4 years
+prior to that.
+
+It's been an ambitious leap forward, and as I wrote in the previous edition of
+this newsletter, at times it felt like I had bitten off more than I can chew.
+Sticking the landing was also fraught with its own set of challenges, as
+deciding what the release would look like requierd some tough decisions.
+
+But we're in a great place now. After 15 alpha versions and 1 beta version,
+version 3.0.0 of FreeSewing is now generally available.
+
+I want to thank FreeSewing's patrons for their continued support, as well as
+all those who contributed to this release, gave their input and feedback,
+helped with translation, or just had a few nice words of encouragement to
+spare. It was all needed to get to where we are today, and I'm very
+appreciative to all of you.
+
+
+
+---
+
+
+
+## ⚠️ Breaking changes in FreeSewing v3
+
+3.0.0 is a major release so there are breaking changes.
+Listing all of them would be rather challenging, and probably not that
+useful. But here are three changes that are super obviously going to break your
+stuff if you rely on FreeSewing code:
+
+- **FreeSewing 3 is ESM only**: Migrating a large Javascript project to ESM
+ modules is enough to make even the most seasoned developers break down and
+ cry, but it’s done.
+- **FreeSewing 3 uses named exports**: There are obviously some places where a
+ default export is required (looking at you NextJS) but whereever we can, we
+ now use named exports exclusively because we all know those are better.
+- **FreeSewing 3 requires Node 18 or newer**: I recommend lts/hydrogen
+
+With that out of the way, let’s talk about what’s new.
+
+
+
+---
+
+
+
+## 📦 FreeSewing designs are now JBOP
+
+A big driver for the decision to freeze the v2 branch and start working on v3
+was to make it easier to mix-and-match parts from various designs.
+
+Design inheritance was already possible in v2, but because the configuration
+was handled on the design level, it required careful re-configuration of
+(required) measurements, options, part dependencies, and so on. It was possible
+but came with a lot of friction.
+
+In v3, all configuration is moved to the part level, and a design is now not
+much more than just a bunch of parts (JBOP). It is the parts themselves that
+configure what they need. This includes anything from the measurements they
+require, the options they provide, the plugins they use, their dependencies,
+and so on.
+This way, you can re-use parts from various designs, and all of their
+configuration, dependencies, plugins, and so on will follow.
+
+For our own designs, I expect to see this new modularity result in the
+consolidation of common parts into a number of utility designs that are not
+intended as stand-alone patterns, but rather as providers of common features.
+As an example, plenty of designs need welt pockets, and today they each
+implement their own. In the future, I expect a welt pocket will be something
+you can just grab as an _off-the-shelf_ part so to speak.
+
+It's but one example, but it goes to show that the move to part-based
+configuration not only makes things easier, it also opens up exciting new
+avenues that weren't previously accessible.
+
+
+
+---
+
+
+
+## 🕵️ Behind the Seams: Jenni
+
+Fans of the [FreeSewing Discord](https://discord.freesewing.org/) have probably
+seen some of the awesome clothes Jenni has made for everyone in her family. We
+chatted with Jenni to learn a little more about her background and journey to
+becoming a FreeSewing contributor! The interview below has been edited for
+length, and any errors, oversights, etc. are entirely the fault of the
+interviewer.
+
+### When and why did you start sewing? How did you learn about FreeSewing? Do you sew mostly for yourself, or for others like friends and family?
+
+I gradually became aware of FreeSewing when I first started sewing and was
+pretty confused by all this idea of 'hacking' patterns and modifying them to
+fit your body. Being able to take really detailed measurements and then
+generating a pattern to fit you well seemed like a great idea! I looked at it
+longingly for a bit, I played with it for a bit but didn't actually try any of
+the patterns for quite a while. Instead I used the patterns produced by one
+indie designer in particular - Oliver + S kids patterns and Liesl & Co adult
+sizes, produced by the same designer. Her patterns are very well explained and
+the kids' patterns take into consideration the needs of that group very
+directly (proportions, ease, usability). So I got better at sewing in general.
+I sewed for myself and some family members and friends, mostly tops for other
+people, but I also made some clothes for my kids. More and more I found that I
+was ending up sewing stuff for my eldest more than other family members: my kid
+is skinny anyway so there are some fitting challenges, but also they were / are
+going through some gender dysphoria experiences as they grew older and came out
+as non-binary.
+
+There was a tipping point one day when they refused to wear any sort of
+feminine-gendered swimming costume - and there was school swimming lessons
+coming up shortly. Sewing to the rescue! I created a pattern for a Teagan and
+Shin combo to make a swimming costume with separate top and bottom in a gender
+neutral style that was acceptable. In fact due to timings we also ended up
+buying a commercial onesie so that they had a choice of options, but being able
+to confidently assure my kid that yes, there was something we could definitely
+do, was very helpful in the moment. I made that Shin / Teagan combo for them,
+but also a pair of Shin trunks for my younger kid (in a smashing flamey lycra!)
+and one for my partner, who hates flappy boxer type swimmers and was a bit
+short on useable speedos. My sister saw the Shin in the bright flame pattern
+lycra and wanted one too, so I made another one! And I can see more being
+needed as the originals grown out of, so I won't stop there.
+
+I've also made my kid a number of Bruce boxers, with a flat front. They are
+very gender euphoric as underwear! Lovely and jolly too, because of course you
+can use all sorts of small bits of various knits so they end up very colourful.
+And now I am starting to make some Aarons for my kid, to be used instead of a
+commercial crop top / bralette. I will have to work out how to make them snug
+without being too compressive although they do like some compression so we will
+have to iterate I guess.
+
+### How did you become a contributor? What has been your contributor work so far?
+
+I'm not sure that I am much of a contributor really, despite vaguely wanting to
+help. What I do do is to share my makes on Discord, and include information
+about what was challenging and what went well. For instance, using FS patterns
+for kids does have some difficulties in that clothing can come out as very snug
+in the body (not enough ease proportionally) or in key areas like the neckline
+(where it is snug to the neck but not really large enough to get a kid's head
+through easily - again due to proportions). These are all things that can be
+handled but it is worth looking out for specifically when trying something new.
+
+I did manage to write a couple of Showcase posts and in principle I would be
+happy to do some more of that, but I have so much going on at present in my
+home and work life that realistically it gets squeezed out. For now I will
+stick to gradually trying new patterns and feeding back on them in Discord!
+
+### What sewing/coding project are you most proud of?
+
+A standout project was a big cycling cape I made myself, based on the Folkwear
+Patterns "Australian Drover's Coat". It hearks back to the rugged leather or
+oilskin coats that you might wear as a rider in the Outback, only with more
+hi-vis reflection for use in the (not so) mean streets of Oxford, UK. Not sure
+whether it is the sewing project I am most proud of as such, though I am
+definitely very pleased to have finished it! It was a real marathon, and
+putting the press studs in was great fun (though also a bit nerve-wracking). My
+partner wants me to make one for him, so that's pretty good too - once I can
+face another marathon!
+
+### What do you love the most about sewing? What do you hate the most about sewing? What’s the hardest part of sewing to you?
+
+I enjoy the process of sewing (most of it! Buttonholes are a bit
+nerve-wracking) and I enjoy the results too - looking at it, looking at others
+wearing or using it, using it myself. Fitting things well is still a big
+challenge, I don’t feel I really understand it yet. I want to try Top Down
+Centre Out for trouser fitting and I think I understand the concept but have
+been a bit nervous of taking it on properly, I need to dedicate a slot of time.
+
+### What would be your advice for starting sewists?
+
+There's a sense in which a certain contradictory set of phrases are both true.
+People like to say "If a thing's worth doing, it's worth doing properly" and of
+course that's true; but I think that the converse is also true, at the same
+time: "If a thing's worth doing, it's worth doing badly". Even if you can't do
+it fully or completely, still do the thing! If you can only do part of it now
+and part of it tomorrow and the last bit of it next week, still do the thing!
+Sewing for kids was very liberating - even if it is far from perfect they will
+still dig it (and even if it is super perfect they may take against it and
+never end up actually wearing it). Do it, or don't do it - don't let the
+question of 'can I do it well' be the thing that holds you back.
+
+Pick a project where even if you do make mistakes it will still bring
+enjoyment. A project where you learn a lot, or where you can give it away to
+someone, or where you can enjoy the recipient when they wear it, or where you
+will love the fabric even if there are things you will change next time.
+
+More prosaically I would also say a project that either has really good robust
+instructions or where you can ask others for help is going to be easier than
+struggling away by yourself. I mean, unless that is the way you personally
+learn best - for me, I need a scaffolding of understanding first.
+
+
+
+---
+
+
+
+## 🙏 You have measurements, and I want them for our new site
+
+TL;DR: I would like to use your measurements. Read on for all details.
+
+Ok, this requires a bit of backstory to explain so hear me out: FreeSewing is
+all about made-to-measure sewing patterns. It's our thing, it's what we do, and
+if you want to get the most value out of FreeSewing, then taking accurate
+measurements is a necessary first step.
+
+But here's the rub: To the casual visitor on our website -- say someone who
+Googled _free sewing patterns_ -- that's _a lot_ of effort to go through just
+to try the platform. This is why at some point we rolled out a range of
+_standard sizes_ that people could use instead of their own measurements.
+
+But there's some obvious issues with this approach. First of all, standard sizing
+is a lie, and doesn't exist. But it doesn't stop people from complaining that
+_I know I am an XL but your XL did not fit me_. Which is of course our own fault
+because when it comes to standard sizes, the only way to win is to not play.
+
+Our sizing tables are also not at all perfect. For one thing, while they are
+based on real people, the other sizes are graded up or down from there. So the
+further you move away from the base model, the less confident I am that they
+make a whole lot of sense. That's because for the most part, the proprtions
+remain largely the same.
+
+And that brings us to the thing that bugs me the most about this approach. You
+see, we use this sizing table ourself to test the designs we put up at
+FreeSewing.org. And because the variation in proportions is somewhat limited, we
+are leaving some people behind, and that's not what we're about. It would be
+much better if we could test our patterns not with a smoothly graded up and
+down range of sizes, but rather on a selection of real people with all of the
+variation that that entails.
+
+In practical terms, we will be moving away from this idea of _standard sizes_
+and instead FreeSewing will provide a list of _curated measurements sets_.
+These will be complete sets of measurements from real people that we can use to
+test our designs, but that will also be available to users who want to try the
+platform.
+
+The new (v3) FreeSewing backend also integrates with our new development
+environment, so designers will be able to access these early in the design
+process.
+
+I have high hopes that such a readily available collection of curated
+measurments will make it much easier for designers to support a wider ranger
+of people and bodies. But, that is not going to happen until the grand total of
+available measurements sets gets a bit higher than the number of 1 it stands at
+today (that would be me).
+
+So here is what I am looking for:
+
+- You have to be willing to share a complete set of measurements
+- You are also willing to share your height
+- And you are willing to share a full-length frontal pictrue
+
+Then I'd like to ask if you would consider adding your measurements to
+FreeSewing's list of curated measurements sets. If so, just hit reply.
+
+It would really help me out, and you'd be in good company 😉
+
+
+
+---
+
+
+
+## 🇺🇦 Support for Ukrainian and a newsletter in multiple languages
+
+Something else that we've been working on -- spearheaded by some our our users
+from Ukraine -- is to add support for Ukrainian to the website. That brings
+the total of supported languages to 6, with English, Spanish, French, German,
+Dutch, and now Ukrainian.
+
+Internationalisation is a crucial aspect of making FreeSewing available to as
+many people as possible. In this case, there's obviously also a great deal of
+symbolism with the ongoing conflict in Ukraine. We could have thrown up a
+banner to say we stand with Ukraine, but instead we opted for something a bit
+more ambitious and made Ukrainian an officially supported language.
+
+I also want to extend the same multi-language support to this very newsletter.
+Once the new website goes live (more on that below) your language preference
+will be taken into account, and the goal is to deliver you the next newsletter
+in the language of your choice.
+
+The real challenge thare is that I will need to learn to not write this thing
+at the last minute 😂
+
+
+
+---
+
+
+
+## 🤔 So when will FreeSewing.org run on version 3?
+
+There’s a lot more in v3 that I could write about, but I need to address the
+elephant in the room: _So we have 3.0 now, when do non-developers get to use
+this?_
+
+Well… I’m going to need a bit more time. Everything is sort of ready, but some
+things always take more time because you can’t really do them in advance.
+Things like translation, and some more testing.
+
+So as a regular user of FreeSewing.org who is not itching to spin up a
+development environment, you will need to hold on a little longer. But clearly,
+it’s going to be soon now. I’d say a matter of weeks, rather than months.
+
+The biggest outstanding hurdle is migrating the 50k+ users to a completely
+different infrastructure. I've completely rewritten the FreeSewing backend (can't
+believe I did not write about the exciting new backend features, but ok), and
+switched from MongoDB to Sqlite as database, so this not only requires careful
+planning, it's also slow because all data is encrypted at rest. So everything
+needs to be decrypted, migrated, then re-encrypted again. And it's like, you
+start the process before going to bed and then the next morning you find out that
+user #32062 had some weird setting you didn't think about which caused things
+to go off the rails, and now you have to start over.
+
+Point is, FreeSewing has grown to a point where migrating all users has become
+its own mini-project that's too intricate to just throw in with the v3 release.
+But obviously, it will be my next move once I can uncross my fingers that 3.0.0
+is as good as I think it is.
+
+Thank you for sticking with me through all this. We're almost there now 😃
diff --git a/sites/orgdocs/newsletter/2024q1/index.mdx b/sites/orgdocs/newsletter/2024q1/index.mdx
new file mode 100644
index 00000000000..da4b103d459
--- /dev/null
+++ b/sites/orgdocs/newsletter/2024q1/index.mdx
@@ -0,0 +1,210 @@
+---
+date: '2024-01-01'
+edition: '2024q1'
+intro: 'Welcome to the 2024 Winter edition of the FreeSewing newsletter.'
+title: '2024 Winter edition'
+authors:
+ - 1
+ - 132
+ - 20400
+toc_max_heading_level: 2
+---
+
+Welcome to the 2024 Winter edition of the FreeSewing newsletter.
+
+Here's what we've got for you on this new year's day:
+
+- 🎉 Happy new year to (most of) you (1-minute read - by joost)
+- 🧵 FreeSewing evenings at De War (3-minute read - by Lexander)
+- 👖 Announcing Otis and Lumira, two new FreeSewing designs (2-minute read - by Wouter & joost)
+- 📷 We’re (barely) grammin’ (3-minute read - by joost)
+- 🌎 Anyone else forgot that this newsletter is multilingual now? (1-minute read - by joost)
+- 🙏 Thank you patrons and one-time donors for making it all worthwhile (2-minute read - by joost)
+
+
+
+Let's goooooo
+
+
+
+
+
+## 🎉 Happy new year to (most of) you
+
+For those who consider the Gregorian calendar to be the one calendar to rule
+them all -- which I believe to be the vast majority of you -- allow me to start
+by wishing you a happy new year 🎉
+
+I wish you the very best for 2024, and hope that at least in your book, this is
+going to be a great year. Perhaps there's things you're looking forward to, good
+intentions you've spelled out for yourself, or maybe it's just a time to
+reflect and be hopeful.
+
+Whatever floats your boat, I hope things work out for you in 2024. If nothing
+else, since you are reading this it seems you've made it through another year.
+That in itself is worth celebrating because living ain't easy. So kudos to
+you, and keep it going.
+
+
+
+---
+
+
+
+## 🧵 FreeSewing eventings at De War
+
+You may or may not remember an article in FreeSewing’s Autumn newsletter of
+2022 where I, Lexander, wrote that FreeSewing was invited to be part of an
+exposition, where we did the full FreeSewing garment making process with a
+small group. Well, I’m very happy to tell you that it wasn’t a one time thing:
+FreeSewing evenings have been part of their schedule bi-weekly for almost half
+a year now.
+
+The same organizers from the exposition own a building called De War (named
+after a former owner of their former building) in Amersfoort, The Netherlands,
+where they create and encourage projects for art, technology, science, and
+sustainability. For example, it houses a FabLab and repair café.
+
+The FreeSewing evenings are in their FabLab, where they have laser cutters to
+cut fabric with. We sit around the table and some take measurements, some sew,
+some get to know the site. I also sometimes write code for the Nicky pattern
+I’ve been making - so really, there’s room for any type of FreeSewing
+enthusiast to join!
+
+Feel free to pop by if you have the time.
+
+The FreeSewing evenings are on Thursdays of even weeks from 19:00 to 22:00. The
+upcoming ones are on January 4th and 18th. You can also find the dates on the
+FreeSewing Discord server’s Events tab (located top-left). You can message me
+at @lexander2002 on Discord or Diana (the main organizer) at
+dianawildschut@posteo.net to let us know you’re coming :-) You can find De War
+at Heiligenbergerweg 34, 3816 AK, in Amersfoort. People are invited to make
+use of the facilities, but also to contribute to the livelihood of De War. The
+place works on a donation basis, “perceived value pricing”.
+
+FreeSewing will also be part of their two-day event called Koppelting, where
+Diana will demonstrate how to use their laser cutter to cut a full pattern from
+fabric in one go. This will be on the weekend of 27 & 28 January.
+
+One of De War’s ambitions is to find a way to make durable, sustainable
+clothing more accessible to people. FreeSewing makes made-to-measure accessible
+and (for those with access to a FabLab) the laser cutter simplifies the pattern
+cutting and assembling process. Screen printing can be used to add prints to
+fabric (also available at some FabLabs). Now there is still the complex problem
+of good fabric, because most options today aren’t good for the environment or
+they are yielded through labor exploitation, often both. Perhaps there can be
+found a way to make fabric from local harvest, like flax, hemp, nettle, or
+similar ones - because if they could do this in medieval times, why can’t we
+find a way now? But a good technique to extract the fiber and process it into
+fabric that isn’t environmentally heavy, labor intensive, and costs a lot of
+resources or money to make, hasn’t been found yet. Don’t hesitate to reach out
+with ideas! Until then, we’ll see what the future holds.
+
+
+
+---
+
+
+
+## 👖 Announcing Otis and Lumira, two new FreeSewing designs (1-minute read - by joost)
+
+We've got two new designs up on FreeSewing.org that you may not yet know about. Shout-out to Wouter who signed for both of them, so let's hear what he has to say:
+
+[Otis](https://freesewing.org/designs/otis) is a baby romper:
+
+> _When my niece had a baby, I knew just what to do; sew her some clothes for the little one. And I had never made any clothes for infants. What they should look like was easy. I had kids of my own years ago, and the one-piece things should be easy to make._
+>
+> _What I did not have was a pattern. That meant that I should get one, or make one. That was not a hard decision; FreeSewing was definitely lacking in the infant-focused designs. Infants have the nice quality that while they are growing, they grow in each direction at the same pace. The only real challenge is that their head is a lot bigger in proportion than older specimens. A normal shirt with opening doesn’t work. But there are easy solutions to that, and these are used by all romper making manufacturers._
+>
+> _I incorporated the neck design with a simple body design, and a snap closure. Easy short or long sleeves completed the design._
+
+and [Lumira](https://freesewing.org/designs/lumira) is a pair of leggings:
+
+> _I started working on this design when I decided I needed more leggings to cycle in the fall and winter. My previous pair was made with a commercial pattern, and they have served me well. The easy solution would have been to just make some more. But if I need some of these, there should be more people that do._
+>
+> _I decided to make this pattern so it allows for a waistband to be part of it. This should make for a good fit on a wide range of body types. It can optionally create a gusset that is relatively large in the back. This is both a nice design feature, and provides support for the rear. To exemplify this, you could use a contrasting fabric for this part._
+>
+> _The pattern’s gusset can be extended to the front to allow for a bulge. And since I wanted this pattern to be able to be used for cycling, there is an option to use a chamois, the padding you find in most cycling shorts._
+>
+> _This is a pattern that has no outside seams, so interesting designs on the fabric will not be distorted._
+
+I really appreciate Wouter's approach where he has his own needs that are the instigator of these designs, but then is willing to go the extra mile to not only solve this problem for himself, but also for all of us. It is in a very tangible way the _raison d'être_ of FreeSewing.
+
+
+
+---
+
+
+
+## 📷 We're (barely) grammin'
+
+> *About that title: I *think* people younger than me refer to Instagram as *the gram* and so I took that and made it a verb because what better way to demonstrate that I have no idea what I'm talking about.* > _It's also a convoluted callback to [a 6-and-a-half year old blogpost](https://freesewing.org/blog/freesewing-goes-jamstack) so if you got that then kudos to you, but I digress._
+>
+> *Instagram. I am talking about Instagram. Or more generally all the things we do (and do not do) to *promote* FreeSewing, raise awwareness, and so on. Let's call it **marketing**.*
+
+For the last several months, our Instagram account has been managed by Natalia, who has been a fixture on FreeSewing's all-star team for many years.
+Natalia has indicated her desire to step down as FreeSewing's Instagram maintainer, so for the foreseeable future it will revert back to the usual neglect by yours truly.
+
+The account itself is edging closer to 10k followers which makes it our largest communication channel, or at least it would be if we forget for a moment that this newsletter itself has over 12k subscribers.
+
+Whether it's our Instagram account, this newsletter, or FreeSewing itself, they are all somewhat popular in spite of an almost complete absence of marketing.
+Whereas many moons ago I would have made more efforts to spread the word about FreeSewing, for years now I have done essentially nothing to do so, because there's just so much to do that this sort of stuff never gets to the top of the queue.
+
+However, since version 3 we are also no longer publishing regular new releases, because we don't need to. We are now utilizing what I tend to refer to as a _release stream_ where updates, improvementsand new features are drip-fed to FreeSewing.org as soon as they are finished. Fresh out of the oven so to speak, rather than bundled together in timely releases. We still release things (like v3.1 last week) but we don't need to do so for our own websites. We only do it for the benefit of those people using our software for their own purposes (and to be clear: we will continue to do so).
+
+With a million things on my plate, any sort of _marketing_ or even merely talking/writing about what we've been up to is always that can that gets kicked down the road.
+Releases were a natural stop to all that can-kicking. Whenever we put out a new release, it was a moment where I typically took the time to write about what went into the new release, what was new, improved and so on.
+Now that we'll see fewer releases (not fewer updates) there's even less nudging me to take the time to write/talk about what's going on in FreeSewing land.
+
+I feel like I should do better here, but I'm not entirely certain how to handle this.
+The obvious answer is to join the _content creators_ who use these platforms to push their personal brand or side-hustle.
+But I know from experience that trying to _compete_ in this space is something that tends to negatively impact my mental health, which is something I struggle plenty with without the need for all this.
+It's the reason I (personally) left Instagram in the first place. At that time -- now more than four years ago -- I wrote the following in my goodbye-post:
+
+> _I find that opening the Instagram app has a net negative effect on my motivation to invest the time and effort to make or build the things I believe are worthwhile._ > _There’s a shallowness that permeates the platform, and that I seem unable to completely block out. Long story short, the bad is now vastly outweighing the good, at least for me personally._
+
+So I'm a little trepidatious about joining the fray again, but I'm also concious of the fact that no amount of work really matters unless people at least can find out about it somehow.
+
+So I'm not sure how I'll manage this, and I'm afraid there's no grand conclusion here. I just wanted to share my thoughts on the matter.
+Guess we'll see how it goes. You can find out for yourself, we're [@freesewing_org](https://www.instagram.com/freesewing_org/) on _the gram_.
+
+
+
+---
+
+
+
+## 🌎 Anyone else forgot that this newsletter is multilingual now? (1-minute read - by joost)
+
+Raise your hand of you kinda lost track of the fact that FreeSewing's newsletter is now available in all 6 languages we support (English, Spanish, French, German, Dutch, Ukranian) and spent your new year's eve and day frantically making sure that sending out the newsletter in all those languages actually works.
+
+Just me?
+
+Ok, so here's hoping it all went well in the end. But as a reminder: You can get this newsletter in any of the languages mentioned above.
+
+
+
+---
+
+
+
+## 🙏 Thank you patrons and one-time donors for making it all worthwhile
+
+2023 has not been an easy year for me personally, or for FreeSewing for that matter. The amount of time and effort that went into v3 is something that takes a lot out of you, and I am not ashamed to admit that more than any other year before I've struggled with feelings of _why am I even doing this_.
+
+However, today I feel happy and proud because FreeSewing's revenue for 2023 clocked in at **€10.222,07** ($11.301).
+As you may or may not know, [all of FreeSewing's revenue goes to Doctors Without Borders](https://freesewing.org/docs/about/pledge), which means that's €10.222.07 that went to helping some of the most vulnerable people on this planet.
+
+I'm particularly happy that we've climbed above the 10k mark again, after having dipped below it a few years in a row.
+
+That being said, inflation is also a thing so 10k today doesn't do as much good as 10k yesteryear.
+I'd love to see us get to 12k as somehow 1k/month feels like a really meaningful number.
+
+Since v3 we've switched from a fixed pricing patron system to a model where you can set your own price, as well as send one-time donations.
+It's something to keep in mind as this season of gifts draws to a close and the days where we hear _Do they know it's Christmas time at all_ 25 times a day are behind us.
+
+So, if you want to start the new year with doing some good, I'd appreciate whatever you can spare. And you can be assured it goes to people who really really need it.
+
+Have a good one
+
+joost
diff --git a/sites/orgdocs/newsletter/2024q2/index.mdx b/sites/orgdocs/newsletter/2024q2/index.mdx
new file mode 100644
index 00000000000..96af373c450
--- /dev/null
+++ b/sites/orgdocs/newsletter/2024q2/index.mdx
@@ -0,0 +1,286 @@
+---
+date: '2024-04-01'
+edition: '2024q2'
+intro: 'Welcome to the 2024 Spring edition of the FreeSewing newsletter.'
+title: '2024 Spring edition'
+authors: 1
+toc_max_heading_level: 2
+---
+
+Welcome to the 2024 Spring edition of the FreeSewing newsletter.
+
+Here's what we've got for you today, no joke:
+
+- 👕 FreeSewing 3.2 brings Tristan, Lumina, Lumira, and more (3-minute read by joost)
+- 📨 Email just got harder, again (1-minute read by joost)
+- 🕸️ Building FreeSewing's web of trust in the wake of the XZ backdoor attempt (5-minute by joost)
+- 🤔 How FreeSewing's challenges have shifted over time (2-minute read by joost)
+
+
+
+Shall we get started?
+
+
+
+
+
+## 👕 FreeSewing 3.2 brings Tristan, Lumina, Lumira, and more
+
+We released FreeSewing v3.2 earlier during Q1 2024 and it includes 3 new
+designs, as well as a range of bug fixes and improvements.
+
+Let's have a look at the highlights:
+
+### The Tristan Top
+
+First up, there is [the Tristan Top](https://freesewing.org/designs/tristan). Tristan is a top with princess seams and (optional) lacing at front or/and back. It’s origin story is the need for a costume for a Renaissance festival, so that is probably a good indicator of what to expect.
+
+Tristan was design by Natalia who also [wrote a blog post about the new Tristan design](https://freesewing.org/blog/our-newest-design-is-the-tristan-top), so that's a great place to get all the details about this new design.
+
+### The Lumina and Lumira Leggings
+
+I’ll give you a second to scan that title again, but yes there are two different leggings patterns with similar names: [the Lumira Leggings](https://freesewing.org/designs/lumira) and the [Lumina Leggings](https://freesewing.org/designs/lumina).
+
+Both were born out of Wouter’s desire for good cycling gear, and I suggest you check out the designer notes for both [Lumina](https://freesewing.org/designs/lumina#notes) and [Lumira](https://freesewing.org/designs/lumira#notes) to fully appreciate the difference between these designs, why they differ, and what would work best for you.
+
+### Bug fixes and improvements
+
+Regular readers of the newsletter will know that we continiously roll out
+improvements on FreeSewing.org and that those are not tied to a new release,
+but it's a good opportunity to list them so here are some highlights of the bug
+fixes and improvements that went into the 3.2 release:
+
+- Sandy has [a new panels
+ option](https://freesewing.org/docs/designs/sandy/options/panels) that was
+ added by [Paula](https://github.com/freesewing/freesewing/pull/5861). You
+ could aways create your circle skirt out of a number of a similar patterns by
+ doing the match yourself, but now the pattern will take care of that for you.
+- What started out as [a bug report for the biceps ease on
+ Jaeger](https://github.com/freesewing/freesewing/issues/5999) ended with a
+ change to the way the armscye is calculated on Brian, in particular the depth
+ of the armhole. Given that Brian is our most foundational block, this will
+ have ripple effects on many other designs, you can expect that out-of-the-box
+ the armscye will reach a bit lower.
+- In [Carlton](https://freesewing.org/designs/carlton) — and thus in
+ [Carlita](https://freesewing.org/designs/carlita) — we have fixed and issue
+ where the seam allowance on the undercollar was incorrectly drawn.
+- In [Charlie](https://freesewing.org/designs/charlie), the back pocket welt
+ (4) and front pocket facing (8) incorrectly indicated to cut 2 instead of 4
+ in the cutlist. This too is resolved.
+- In [Hugo](https://freesewing.org/designs/hugo), we fixed a bug that caused
+ the design to error when the complete setting was off, and we fixed an issue
+ where the front pocket opening would get increasingly narrow as the hip
+ circumference increased.
+- We’ve added a new
+ [Path.combine()](https://freesewing.dev/reference/api/path/combine) method to
+ [our core API](https://freesewing.dev/reference/api). Its origins lie in a
+ discussion in [issue
+ #5976](https://github.com/freesewing/freesewing/issues/5976) which was
+ originally filed as a bug report about how Path.join() connects gaps in the
+ joined paths — caused by either `move` operations, or a difference between
+ the end and start point of joined paths — to be filled in with a line
+ segment. That behaviour is expected/intended, but we’ve added
+ `Path.combine()` to faciliate the other behavior: Combining different paths
+ into a single Path object without alterning any of its drawing operations.
+- The [title macro](https://freesewing.dev/reference/macros/title) now can be
+ configured with a `notes` and `classes.notes` setting in its config, allowing
+ designers to add notes to (the title of) a pattern part.
+- Our [i18n plugin](https://freesewing.dev/reference/plugins/i18n) now supports
+ now supports translation of nested arrays of strings, which gives designers
+ more flexibility to concatenate translated parts of strings.
+
+The [FreeSewing 3.2 announcement blog post](https://freesewing.org/blog/v3-2-0) has all the details.
+
+
+
+---
+
+
+
+## 📨 Email just got harder, again
+
+If you are reading this in your inbox, and not an archived copy on
+FreeSewing.org, then we were able to deliver this email to you, which is good
+news.
+
+What you may not realize is that doing so is not exactly trivial, and hasn't
+been for years. But recently, things have gotten even more complex. Gmail
+(Google) and Yahoo for example have [implemented new restrictions in the first
+quarter of
+2024](https://www.xomedia.io/blog/a-deep-dive-into-email-deliverability/) which
+requires additional work on our end to maximize the chances of this email
+actually landing in your inbox.
+
+Furthermore, so-called _bulk email senders_ are subject to the most stringent
+checks. If you send 5000 messages a day, you are considered a bulk sender and
+will be subject to extra scrutiny. As this newsletter has about 14k
+subscribers, we are being held to the highest possible standards.
+
+Obviously, nobody likes spam, and I am not advocating against these rules.
+It's just that the amount of time and effort required to make something as
+seeminly trivial as sending out an email work at scale is ever-increasing as
+the internet trends towards a de-facto pay-to-play model.
+
+For now, I am still making those efforts, and hopefully they proved sufficient
+to get this to your inbox. But it's something we may need to revisit at a later
+time if it becomes an increasing strain on our limited time and resources.
+
+
+
+---
+
+
+
+## 🕸️ Building FreeSewing's web of trust in the wake of the XZ backdoor attempt (5-minute by joost)
+
+Depending on where you get your news from, you might have heard or read about
+[the backdoor attempt of the xz compression
+utility](https://arstechnica.com/security/2024/03/backdoor-found-in-widely-used-linux-utility-breaks-encrypted-ssh-connections/).
+
+In a nutshell, a malicious actor attempted to introduce a backdoor in this
+utility, which ultimately was an attempt to smuggle a gated RCE exploit into
+SSHd.
+
+Or, in [ELI5](https://en.wiktionary.org/wiki/ELI5) terms: Somebody contributed
+code to a small library that had nefarious intent. It was done in a sneaky way
+and the ultimate target was not the library itself, but rather another software
+project that uses this library: The Secure Shell Deamon. A _daemon_ is just a
+cooler word for a _service_ on a computer, because why not make things cooler.
+This particular daemon or service, the _secure shell_ daemon is responsible for
+handling secure shell (SSH) connections. It's the gold standard for remote
+management of Linux (and unix) systems.
+
+The code smuggled in a gated RCE backdoor. RCE stands for _remote code
+execution_, meaning it allows you to _do stuff_ remotely without needing to
+authenticate or anything. Or to put it differently, it allows one to control
+a remote computer system they normally should not have access to.
+The fact that it is _gated_ means that the author of
+the malicious code took steps to ensure that only they could use the malicious
+code. Like a backdoor with a key.
+
+It's hard to overstate the gravity of this attempt at backdooring essentially
+every Linux system on the planet. It's not only the world's most widely used
+operating system, its dominance of server operating systems is overwhelming.
+Or as I often say: _Anything that matters runs on Linux_.
+
+This is an ongoing story and I for one am hoping it will be made into a Netflix
+mini-series starring David Cross in the role of [Andres
+Freund](https://github.com/anarazel), but I digress. This is the FreeSewing
+newsletter, so I wanted to lift something out of this story that I think
+is relevant to FreeSewing, or really to any open source project out there.
+
+### Maintainer burnout and the long con of gaining trust
+
+One of the fascinating elements of this story is _who_ contributed the changes,
+and why they were accepted without sufficient scrutiny to reveal the malicious
+intent of the contribution.
+
+Because the user who made them had been contributing for **years** to the project
+and in light of this work had risen in status to a level where there was a lot
+of implicit trust based on their work, despite knowing next to nothing about
+who or what goes behind username `JiaT75` (in this case). Such a _long con_ is
+a significant investment of time and effort, so the currently held assumption
+is that this was a nation-state actor (think NSA or some other country's
+equivalent). It's also important to note that the xy maintainer was having a
+hard time dealing with the long tail of responsibilities of maintaining
+software and was actively looking for help to stave off burnout. It's a
+scenario that is shockingly common across open source projects and creates a
+situation where malicious actors can all too easily take advantage of exhausted
+maintainers desperate to offload some of the work.
+
+### Establishing a web of trust
+
+This problem of _who can you trust_ is of course not new. One way to counter it
+is by establishing a _web of trust_. This is how things are done in larger
+open source software projects involving many volunteers, such as [the Debian
+project](https://www.debian.org/).
+
+In practical terms, such a web of trust is built upon relationships between
+people who know and have verified each other's true identity. For example,
+there's a number of people in the FreeSewing community that I have met in real
+life. We've not merely met face to face, but have spent time together, we know
+where we live, we know each other's partners or family, or have some other
+tangible way that provides a high level of assurance that this person really is
+who they claim to be.
+
+Those people, in turn, can have similar connections with others who they know,
+have met, and trust to a level that goes well beyond the online world. This
+creates a web of trust where you can trust your friends, and the friends of
+your friends and so on.
+
+In light of current events, and in acknowledgment of the rapid accelaration of
+what is possible with generatative artificial intelligence, FreeSewing will
+henceforth restrict all write access or elevated privileges to community
+members who are part of FreeSewing's web of trust.
+
+We will of course continue to accept -- or rather review -- contributions from
+everyone. But permissions that unlock the potential to do harm will be
+restricted to people for whom trust has been established AFK (away from
+keyboard).
+
+In order to facilitate building such a web of trust, we will start documenting
+these connections between people. This will allow people who are looking to
+take on more responsibilities within FreeSewing to look at its web of trust and
+see who lives close to them so they can hook in to our web of trust through
+that person.
+
+I realize that FreeSewing is extremely unlikely to be the target of a backdoor
+attempt by a nation state actor, but adopting best practices and being
+transparent about how we do things is a good idea regardless.
+
+So, I will start building and documenting this web of trust over the next couple
+of weeks, and review all access control and permissions to make sure we are
+doing everything we can to prevent even the most dedicated actors from poisoning
+the well.
+
+
+
+---
+
+
+
+## 🤔 How FreeSewing's challenges have shifted over time
+
+Did you know that [FreeSewing v1 was released 7 years and 7 days
+ago](https://freesewing.org/blog/announcing-freesewing)? Since that time we've
+made many changes big and small, and our core library and plugin system have
+matured into a reliable -- and certainly opinionated -- way to design parametric
+sewing patterns.
+
+The challenges that are most interesting from a technical point of view have
+been more or less solved. What's left is the user-facing side of things, or
+the user experience (UX) as we like to call it.
+
+FreeSewing can do a lot, so how make all of that functionality available to the
+users without overwhelming them? Is that even possible on mobile, which is the
+dominant way in which people go online now. How do you create it an intuitive experience,
+or guide someone who arrives on FreeSewing.org after a _free sewing patterns_
+Google search towards an understanding of what FreeSewing is and does in the handful of
+seconds that people are likely to give it a chance before moving on to the next
+link in their search results.
+
+To be clear: I do not know the answer to these questions. But it is
+increasingly what we spend our time on. The percentage of people out there who
+use our software directly is insignificant compared to the amount of people who
+(only) consume our software through our website. For most visitors, FreeSewing
+**is** a website and if it is anything else, that is probably not clear to them,
+or even relevant.
+
+Obviously there is room for improvement, but often there is no one obvious path
+forward. Perhaps -- or should I say almost certainly -- this is an area where I
+lack the talent or skill to come up with some sort of grand overarching
+strategy. But I find myself second-guessing a lot of my own ideas or impulses
+in this area.
+
+So, I was wondering if we could do a little experiment. An experiment where I
+ask you -- my dear reader -- a simple question. Are you ready for it? Here
+is the question:
+
+> **What is FreeSewing?**
+
+I'd love to hear your answer. You can simply hit reply to let me know.
+
+
+ _PS: I burried this question at the end because I feel if you read through all of what came
+ before, I probably want to hear your thoughts._
+
diff --git a/sites/orgdocs/newsletter/2024q3/index.mdx b/sites/orgdocs/newsletter/2024q3/index.mdx
new file mode 100644
index 00000000000..684d4933420
--- /dev/null
+++ b/sites/orgdocs/newsletter/2024q3/index.mdx
@@ -0,0 +1,221 @@
+---
+date: '2024-07-01'
+edition: '2024q3'
+intro: 'Welcome to the 2024 Summer edition of the FreeSewing newsletter.'
+title: '2024 Summer edition'
+authors: 1
+toc_max_heading_level: 2
+---
+
+Welcome to the 2024 Summer edition of the FreeSewing newsletter.
+
+Here's what we've cobbled together for you on this first day of July:
+
+- 💰 Vercel unilaterally cancelled our open source sponsorship, now what? (2-minute read by joost)
+- 🚢 Why FreeSewing 3.3 is delayed, and why you probably don't care (1-minute read by joost)
+- 🇨🇭But can you swizzle it? (3-minute read by joost)
+- 🤖 No AI was used to create this newsletter (only to translate it) (1-minute read by joost)
+
+
+
+Shall we get started?
+
+
+
+
+
+
+
+
+
+## 💰 Vercel unilaterally cancelled our open source sponsorship, now what?
+
+On the 18th of June, we received the following email:
+
+> _Hey there,_
+>
+> _Your team FreeSewing is currently enrolled in the Vercel sponsorship program._
+>
+> _Your 100% off discount is expiring on June 14. To give you time to handle this transition, we will automatically enroll your team into a $300/mo discount for the next 6 months, starting on June 14 and ending on December 14._
+>
+> _Thank you for partnering together with us._
+
+I should start by stating the obvious here: Vercel has graciously sponsored our
+hosting and deployments for a while now, and we're obviously very appreciative
+of that.
+
+That being said, the message is a bit ambiguous to the point of misleading.
+For starters, we're not the only open source project to have received this
+email. A little Googling shows others piping up who [received a
+[similar](https://x.com/Siddhant_K_code/status/1801447290076545099)
+[message](https://www.reddit.com/r/nextjs/comments/1dfh7ak/vercel_just_ended_my_opensource_sponsorship/?rdt=41666).
+
+What seems misleading is that Vercel makes it sound like the deal _expired_.
+But it seems more than a bit curious that all the reports I find about this are
+all expiring at the exact same date (14 June).
+
+Given that Vercel [no longer offers
+sponsorship](https://vercel.com/guides/can-vercel-sponsor-my-open-source-project),
+this feels like they decided to revoke the deal, and offer a 6-month credit to
+ease the transition.
+
+So while -- once again -- we are appreciative for the free service we've
+received, the messaging about these changes seems to muddle the waters
+about their reasons for doing do, as well as create uncertainty about what
+will happen next.
+
+We are now in the transition period where they will reduce our monthly bill by
+$300 for the next 6 months. So we didn't have any opportunity to act
+beforehand, given that the email reached us 4 days after the transition period
+started.
+
+So we'll keep an eye on things, consider alternatives and our options, but we
+may very well need to move some things around before December 14 rolls around.
+How this will impact our finances remains to be seen.
+
+
+
+---
+
+
+
+## 🚢 Why FreeSewing 3.3 is delayed, and why you probably don't care
+
+FreeSewing 3.3.0 is going to be the biggest release since 3.0. That is, when it
+will get released because it's been somewhat stuck for a while.
+
+Eagle-eyed FreeSewing users might have noticed that if you generate a pattern
+on [FreeSewing.org](https://freesewing.org/) today, it carries the version
+number `v3.3.0-rc.1`. That `rc` stands for _release candidate_, which signals
+that this is prerelease that we plan to at some point release as 3.3.0, but
+we're not there yet.
+
+The reasons we're not there yet have everything to do with our efforts to
+refactor our pattern editor -- more on that lower down this newsletter -- but
+these changes are being carefully kept isolated so that in the meanwhile we can
+just continue to offer the latest and greatest of our work on FreeSewing.org.
+
+So, you might continue seeing that `v3.3.0-rc.1` version for a while, or you
+might see a `v3.3.0-rc.2` or something, but rest assured that eventually,
+v3.3.0 is on its way.
+
+But once again, if FreeSewing.org is how you consumer our software, you have
+nothing to worry about.
+
+
+
+---
+
+
+
+## 🇨🇭 But can you swizzle it?
+
+As mentioned a few paragraphs up, the reason version 3.3.0 is delayed is
+because we are refactoring our pattern editor. Our motivation for this is that
+when we carried version 3 over the finish line, there were so many changes in
+core, designs, backend, and frontend that it was a mountainous task to tie them
+all together in a new FreeSewing.org.
+
+That is also why, at that time, we transplanted our previous pattern editor
+without too many changes. I can honestly say that at the time, I just did not
+have enough fuel left in the tank to tack that on to the end of the long march
+towards v3.
+
+We also opted to share code between our different web
+environments, so not only FreeSewing.org but also
+[FreeSewing.dev](https://freesewing.dev/) and out stand-alone development
+environment. Sharing code like that makes perfect sense, if you to handle dark
+and light mode for example -- or different themes altogether -- there's no need
+to re-implement that logic for each web environment.
+
+Our pattern editor is part of that _shared_ code, but it is of course a good
+bit more complex than handling themes. In principle the idea is still solid,
+but the practicalities of how it has been implemented are starting to slow us
+down.
+
+For one thing, it's easy to make changes to the editor that will break
+something else. The stand-alone development environment for people looking to
+develop new patterns being the number one victim of such breakages.
+
+But just because it's easy to break it does not mean its... easy. If anything,
+it's rather complicated to wrap your head around which creates an enormous
+hurdle for contributors to overcome, so it's only the most fearless who dare to
+go there.
+
+If I ever want to retire, we need to make it easier to understand, and easier
+to change. That was the main driver for creating a feature branch and setting
+out on the slightly daunting task of re-implementing it.
+
+But there's another reason too. Because we sometimes get questions like _can I
+integrate this in my own website to sell my own patterns?_ to which the answer
+is _yes, but ... it's not easy_. I wanted to make that easy -- or at least
+easier -- which includes the ability for people to use our pattern editor, but
+make it their own.
+
+In other words, have something ready to go that you can plug-in, but also have
+the flexibility to change those parts of it that you'd like to see differently.
+Which is where _swizzling_ comes in. To swizzle is to change an implementation
+with something else, typically changing a default implementation with something
+custom at run time.
+
+Let's say you want to use our pattern editor, but you really don't like the
+icon use for seam allowance. Well, you can just _swizzle_ that icon by passing
+in your own version, or of course something more ambitious.
+
+The end goal will be a React component that we publish on NPM that you can
+just pull in to your project, to then potentially override certain (sub-)
+components of it.
+
+It's a work-in-progress, but today it already supports swizzling of 143
+components (there's a lot that goes in a pattern editor). But you'll be also
+able to swizzle various hooks, for example the one that handles the editor
+state. Although it's worth pointing out that we already support 4 state
+backend: local storage, session storage, URL anchor state, and native React
+state.
+
+You will also be able to swizzle the various methods we use, like to provide
+translation, round numbers, and so on.
+
+While that is (should be?) exciting for people looking to build with
+FreeSewing, the main goal here is to have a foundation that is stable yet
+flexible enough to build cool stuff on. It's something that I for one
+are really excited about.
+
+
+
+---
+
+
+
+## 🤖 No AI was used to create this newsletter (only to translate it)
+
+If you're anything like me, you can't hear anything over the sound of your eyes
+rolling when people start talking about _AI_ but still, I need to clarify
+something.
+
+FreeSewing has a team of volunteer translators who do great work to make sure
+that as many people as possible can enjoy the fruits of our labour. The way it
+works is that we write everything in English first, and then they go to work to
+translate it bit by bit. If some parts haven't been translated yet, we just
+fall back to the English content.
+
+This works great for the website, where the bulk of the material is already
+translated and when something new gets added, it eventually will get translated
+too and with a bit of delay everything is OK.
+
+It does _not_ work well for this newsletter, and that is of course like
+everything else wrong with FreeSewing entirely my fault. You see, I am lazy to
+a fault and to make matters worse, I tend to work better towards a deadline.
+Which means that it is now -- checks the clock -- coming up to 17:00 on the day
+the newsletter has to be sent out, and I'm still writing it.
+
+Suffice to say that this leaves absolutely no time for people to translate my
+ramblings, so I then tend to revert to using a machine translation instead. I
+know our translators _hate it_ when I do that because it reflects poorly on all
+their hard work.
+
+So, if you are reading this as a non-English edition and you find the
+translation lacking, rest assured it's all my fault and our translators are not
+to blame.
+
+joost
diff --git a/sites/orgdocs/newsletter/2024q4/index.mdx b/sites/orgdocs/newsletter/2024q4/index.mdx
new file mode 100644
index 00000000000..e500e471cb1
--- /dev/null
+++ b/sites/orgdocs/newsletter/2024q4/index.mdx
@@ -0,0 +1,344 @@
+---
+date: '2024-10-01'
+edition: '2024q4'
+intro: 'Welcome to the 2024 Autumn edition of the FreeSewing newsletter.'
+title: '2024 Autumn edition'
+authors:
+ - 1
+ - 13050
+ - 28838
+ - 31336
+toc_max_heading_level: 2
+---
+
+Welcome to the 2024 Autumn edition of the FreeSewing newsletter.
+
+Here's what we've got for you for our last newsletter of this year:
+
+- 🕵️ Behind the Seams: Vili (7-minute read by Vili & Karen)
+- 🛟 Highlights from the Need Help channel on Discord (2-minute read by Ben)
+- 🏋️ Six languages weigh more than one (5-minute read buy Joost)
+
+
+
+Shall we get started?
+
+
+
+
+
+
+
+
+
+## 🕵️ Behind the Seams: Vili
+
+We chatted with Vili to learn a little more about their background and journey
+to becoming a FreeSewing contributor! Vili has consistently wowed us, both with
+their enthusiasm for tackling bugs, typos, and dead links on FreeSewing, as
+well as their dedication to a handmade wardrobe. And we mean truly handmade -
+Vili’s been working their way through a series of Simon’s created entirely
+without a sewing machine. (Note from Vili: I’ve since come around to the idea
+of supplementing my hand sewing with a machine.)
+
+The interview below has been edited for length, and any errors, oversights,
+etc. are entirely the fault of the interviewer.
+
+### How did you learn about FreeSewing?
+
+I started sewing about two years ago, and I had an ebook on things you can do
+without a pattern. I think it was called Radical Sewing. There were resources
+at the end that mentioned FreeSewing. Open source, programmatic, parametric
+patterns? Sold.
+
+### How did you become a contributor?
+
+I’m studying computer science, focusing on networking and system
+administration. I was interested early in contributing something back to the
+project, and then noticed a bug where some links to pattern option
+documentation weren’t showing up. I submitted an issue, and mentioned I could
+take a stab at it, and Joost being Joost came back with a super detailed list
+of what was wrong and how to fix it. So I did.
+
+### What has been your contributor work so far?
+
+Mostly I’ve contributed minor quality of life improvements. If there’s a bug in
+a pattern that’s causing a crash that’s easy to fix, I’ll take a look at it.
+Also a lot of dead links. My favorite was when there were quite a few dead
+links on the dev side of things, which went to a 404 page, and the “let us
+know” link on the 404 page was also a dead link.
+
+### How do you spend your time outside of FreeSewing?
+
+Besides FreeSewing and sewing, I spend my time on a lot of computer stuff. I
+host a lot of stuff for my own personal use.
+
+### What are you currently working on? Finish any projects recently?
+
+On the FreeSewing side of things, more of the same: fixing bugs, housekeeping,
+and dead link extermination on the freesewing.org side of the site.
+
+On the sewing side of things… Simons! I took a bit of a break, but am back at
+it with something that is starting to resemble a shirt. I’m 26.5 hours into
+making this current Simon. I don’t actually care how long it takes, but I want
+to know, plus I’m curious if I’m getting faster. My first one took 60 hours, so
+still plenty of time to come in under that.
+
+### Did you make any updates after your last Simon? Do you have plans to sew any other patterns?
+
+Well, first I retook all my measurements.Surprisingly enough, when your
+measurements aren’t complete garbage, the patterns come out nicer. When I had
+measurements that were more (or at all) accurate, all the things that I knew I
+needed to fix about the pattern kind of fixed themselves in a lot of cases.
+
+Beyond this Simon, I want to sew more Teagans, some Bruces, and I have four
+more Simons to go (I have the fabric for them).
+
+### What sewing/coding project are you most proud of?
+
+I thought this would be an easy question because you just say “the last Simon I
+made.” I think it still might be the last Simon I made, and when I get done
+with this one, it’s gonna be this Simon. I think the pride in a project comes
+from “we did something cool here,” but the enjoyment… if I learn something new
+on a project, that’s more enjoyable.
+
+### What in your life are you most proud of?
+
+In general, I try to have an overall positive impact on the people around me. I
+get a lot out of helping others, and supporting the people around me.
+
+### What do you love the most about sewing?
+
+I think what I love the most is the freedom to just decide for yourself what
+exactly you’re going to be wearing. If I want a specific garment, I’m not
+depending on someone else deciding it’s profitable, I can just make the garment
+I want.
+
+### What do you hate the most about sewing?
+
+Tracing and cutting out pattern pieces – If I could just get my patterns precut
+from the fabric I want, I think that’d be pretty good. I’m often working with
+fabrics where the grainline is extremely obvious, and any imperfection is going
+to show up immediately. I try to pattern match to an extent, the fronts and
+backs match, and that’s about as far as I will go.
+
+### What’s the hardest part of sewing to you?
+
+Actually, either getting the pattern pieces traced and cut out of fabric, or
+just getting the patterns to fit. For my second Simon, I didn’t do any fitting,
+because I could compare the pattern pieces to the first one. I looked at the
+differences, and felt pretty sure they’d fix the issues I was having. For the
+first Simon, I went through five or six muslins, cut out the pieces, and did a
+combination of running stitch and backstitch here and there to lock it in so it
+didn’t take forever. But it still took a long time.
+
+### What would be your advice for starting sewists?
+
+A lot of it is going to come down to finding your motivation for sewing, and
+picking a project that is going to motivate you. There’s a lot of beginner
+friendly projects, but if you’re not interested in it, you’re just going to
+stop doing it. Find out what you’re interested in, then figure out what skills
+you need to do it.
+
+My first two garments were hand-sewn Teagans – it was trial and error to figure
+out what stitches actually worked, and it eventually worked great, but the
+first one is a lot rougher, I think there are three or four types of stitches
+on the first Teagan. Eventually something is gonna stick.
+
+### Do you sew mostly for yourself, or for others like friends and family?
+
+I haven’t sewn any garments for anyone else. I did make three burp cloths for
+my brothers kids baby shower, but that’s the only thing.
+
+### Are you a dog person or a cat person?
+
+More of a dog person, but I will happily pet and cuddle both.
+
+### If there was one thing you could take with you to an uninhabited island, what would it be? Why?
+
+Is this a survival situation, or a get-away-from-civilization situation?
+
+For a get-away-from-civilization situation, I think it’s going to be a sewing
+project. That’s the one thing I do that’s properly unplugged from everything.
+One of the things I love about sewing by hand, I can just grab the fabric and a
+very minimal set of things and sew pretty much anywhere.
+
+I recently came up with a super-minimal sewing kit with a friend, and I’m
+pretty proud of it. A seam ripper, with the cover holding a pin, a needle, and
+some thread wrapped around the shaft of the seam ripper. Weighs absolutely
+nothing, takes up no space, has everything I need, you can take it anywhere.
+And if you do need to cut something, a seam ripper is better than nothing.
+
+### If there was one person you could take with you to an uninhabited island, who would it be? Why?
+
+Any single person you bring with you, you’re gonna hate by the end of a couple
+of weeks. But going alone, you’re also going to go insane. I’d gravitate most
+to picking a volunteer out of my friends or family.
+
+### Can we find you on social media?
+
+I’m not on any social media, but you can check out one of my FreeSewing
+showcases [here](https://freesewing.org/showcase/hand-sewn-test-of-florence)
+and stay tuned for some Simon showcases.
+
+
+
+---
+
+
+
+## 🛟 Highlights from the Need Help channel on Discord
+
+FreeSewing superstar Ben F. pulled together some recent highlights from the
+`#need-help` channel on the [FreeSewing
+Discord](https://discord.freesewing.org/).
+
+If you've run into trouble with a pattern, your answer might just be one of
+these. If you've run into an issue, hop on over to the Discord for support and
+discussion about ways to troubleshoot.
+
+### Jaeger sleeve circumference
+
+A sleeve that doesn't fit because sleeve circumference is smaller than biceps
+circumference? For v3 FreeSewing designs, it was noted that the "Waist to
+armpit", "HPS to waist", and "HPS to bust" measurements have become very
+important. Inaccurate measurements can result in incorrect armseye and sleeve
+circumferences.
+
+### Please help! Messed up Hugo measurements
+
+Too small sleevecap and armscye? Another issue with v3 FreeSewing sleeves due
+to an inaccurate "Waist to armpit" measurement. Enabling the "Legacy armhole
+depth" option to use v2 armholes (instead of using the "Waist to armpit"
+measurement) is another possible remedy.
+
+### My Bruce Pants are... Pants!
+
+An initial attempt at making Bruce boxer briefs resulted in a too-short
+garment? The fix was to correctly locate the location of the waist and retake
+the "Waist to upper leg" measurement.
+
+### Uneven shoulder measurements
+
+How to deal with a medical issue causing the left and right shoulder
+measurements to be significantly different? Ideas for creating garments to
+accommodate this issue could include generating separate patterns for left and
+right sides (using two different measurement sets), making garments with a
+center separating zipper, and using a diagonal/asymmetrical hem.
+
+### Sewing leather on a Singer
+
+Using a jeans needle successfully pokes holes in the leather, but the thread
+doesn't seem to be creating stitches? Tips to use a microtex or leather needle
+and to make sure the leather fabric is feeding properly.
+
+### Cross seam measurement:
+
+How do you measure the cross seam measurement: nude, with tight-fitting
+underwear, or with good-fitting pants on? Suggestions included measuring while
+wearing the underwear intended to be worn with the garment, tying a ribbon
+around the waist and using a second ribbon along the cross seam, and taking the
+measurement while walking. Also, double-check your vertical measurements if
+your pattern isn't fitting correctly in the crotch area.
+
+
+
+---
+
+
+
+## 🏋️ Six languages weigh more than one
+
+Without wanting to alarm anyone, I recently suffered a bit of a crisis
+feeling completely overwhelmed by all the work that is sitting in my inbox.
+It's arguably not really new, and I don't think anyone is waiting for yet another
+open source maintainer apologizing for being busy.
+
+However, this was the first time this feeling crossed over from _phew, this is
+a lot_ into _I can't do this any longer_ territory.
+
+It's always darkest before dawn, and now that I've acknowledged that there's a
+problem and came up with a plan to deal with it (which I'll get to in a second)
+I'm feeling much better already, so no need to worry about me. However, I want
+to be open and honest about where these changes are coming from and why I'm
+making them.
+
+What changes? Well, effective immediately, I will work towards making
+FreeSewing simpler to maintain, and put more strict boundaries and what we do
+and what we don't do.
+
+I've already ported [FreeSewing.dev](https://freesewing.dev/) to
+[Docusaurus](https://docusaurus.io/), which makes it a lot easier to maintain.
+There will be more under-the-hood changes like these that make our life easier,
+without creating a material difference to our users.
+
+Unfortunately, that alone won't cut it, so I also intent to drop support
+for translation, and only maintain English from now onward.
+This too will go unnoticed for the vast majority of our users, but obviously
+not for all of them.
+
+In May 2018, I wrote the following on the subject:
+
+> _I’ve decided to add a new challenge to the mix: i18n._
+>
+> _In case you’re wondering, i18n is short for internationalization, aka making
+> the site available in different languages._
+>
+> _Yes, May 25th will be here soon, and yes I need more work like I need
+> another hole in my head. But I feel it’s an important project to try and make
+> freesewing.org available to as many people as possible. And for this, we need
+> to get rid of the language barrier._
+
+Six and a half years later, I still believe that removing the language
+barrier is important to reach as many people as possible. But I also think that
+it's fair to say that if we are looking to do _less_ then this is the obvious
+candidate of things to drop.
+
+To put things in perspective: 87.9% of FreeSewing users have selected English
+as their language of choice and thus will be unaffected by such a move. Of the
+remaining users, those who prefer French form the largest contingent (7%)
+followed by Spanish (3.2%), German (1.7%), Dutch (1.1%) and finally Ukrainian
+(less then 0.1%). I don't have an easy way to extract similar data for our
+patrons, but I can safely say that if you combine the US, Canada, UK, Ireland,
+and Australia you have covered the vast majority of patrons too.
+
+To those users who are affected, I am sorry that it has come to this. While
+translation as such does not add too much overhead (although I handle most of
+the Dutch translation so it's not nothing), the main culprit is the technical
+complexity that comes from supporting multiple languages.
+This is also why dropping one or more languages does not make a meaningful
+difference.
+
+I'm sharing these numbers because they provide context to frame these changes.
+They are not a justification for these changes. All users matter, and all
+patrons matter the world to me.
+Just because one group is smaller than another does not mean we should throw
+them under the bus. I hope that's something that needs no explaining. That
+being said, when something's gotta give, I feel dropping translation is the
+least impactful because in practice, I'm not convinced it matters all that much.
+
+Today's browsers will translate pages on the fly, and I've more than once seen
+people interact with the site in non-English, not because they opted for a
+different language, but rather because their browser is in the habit of
+translating all English content to whatever is their preferred language.
+Furthermore, despite the great work of our many volunteer translators, a
+significant amount of FreeSewing content remains machine-translated because
+there's just _a lot_ of it. Does it really matter all that much whether it's
+us providing the (machine) translation or the browser?
+I don't believe it matters all that much.
+
+To come full circle, I feel it's worth pointing out that nobody has ever asked
+me to add translation to FreeSewing. I decided to add it because I felt that in
+a perfect world, everyone could access FreeSewing in the language of their
+choice. With the way machine learning (or _AI_ if you want) is going, that
+reality is perhaps already upon us.
+
+I apologize to those of you for which this is bad news, and if you are using
+FreeSewing in your own projects, rest assured that this does not mean we are
+removing translation support from our core library.
+
+Long story short: I have come to realize I've bitten of more than I can chew,
+and I am making adjustments to lighten the load.
+If you have a better idea on how to do that, I'm all ears.
+
+joost
diff --git a/sites/orgdocs/package.json b/sites/orgdocs/package.json
index ef764185ac6..f2817b6a786 100644
--- a/sites/orgdocs/package.json
+++ b/sites/orgdocs/package.json
@@ -9,7 +9,7 @@
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
- "prebuild": "node scripts/prebuild-step1.mjs && node scripts/prebuild-step2.mjs",
+ "prebuild": "node scripts/prebuild-step1.mjs && node scripts/prebuild-step2.mjs && node scripts/prebuild-step3.mjs",
"predev": "npm run prebuild",
"prestart": "npm run prebuild",
"serve": "docusaurus serve",
@@ -17,20 +17,24 @@
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
- "@docusaurus/core": "3.5.2",
- "@docusaurus/preset-classic": "3.5.2",
+ "@docusaurus/core": "^3.6.1",
+ "@docusaurus/preset-classic": "^3.6.1",
"@mdx-js/react": "^3.0.0",
+ "autoprefixer": "^10.4.20",
"clsx": "^2.0.0",
+ "postcss": "^8.4.47",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-markdown": "^9.0.1",
- "tailwindcss": "^3.4.13"
+ "tailwindcss": "^3.4.14"
},
"devDependencies": {
"@babel/plugin-syntax-import-attributes": "^7.25.6",
- "@docusaurus/module-type-aliases": "3.5.2",
- "@docusaurus/types": "3.5.2",
+ "@docusaurus/module-type-aliases": "^3.6.1",
+ "@docusaurus/types": "^3.6.1",
+ "glob": "^11.0.0",
+ "gray-matter": "^4.0.3",
"yaml-loader": "^0.8.1"
},
"browserslist": {
diff --git a/sites/orgdocs/scripts/prebuild-step2.mjs b/sites/orgdocs/scripts/prebuild-step2.mjs
index b1af42595b1..70986f41f8d 100644
--- a/sites/orgdocs/scripts/prebuild-step2.mjs
+++ b/sites/orgdocs/scripts/prebuild-step2.mjs
@@ -94,6 +94,7 @@ function mmOption(option) {
/*
* Generate options page for each design
+ * Also create placeholder /designs/NAME page
*/
async function generateDesignsDocs() {
// Iterate over designs
@@ -163,6 +164,7 @@ async function generateDesignsDocs() {
await ensuredir(dir)
fs.writeFileSync(`${dir}/readme.mdx`, content.join('\n'))
}
+ fs.writeFileSync(`./src/pages/designs/${name}.md`, name)
}
}
}
diff --git a/sites/orgdocs/scripts/prebuild-step3.mjs b/sites/orgdocs/scripts/prebuild-step3.mjs
new file mode 100644
index 00000000000..48778af70db
--- /dev/null
+++ b/sites/orgdocs/scripts/prebuild-step3.mjs
@@ -0,0 +1,76 @@
+import fs from 'fs'
+import { glob } from 'glob'
+import matter from 'gray-matter'
+
+const loadTagsAndAuthors = async () => {
+ const lists = {
+ blog: await glob('./blog/*/index.mdx'),
+ newsletter: await glob('./newsletter/*/index.mdx'),
+ showcase: await glob('./showcase/*/index.mdx'),
+ }
+
+ const tags = []
+ const authors = []
+ for (const type of Object.keys(lists)) {
+ for (const file of lists[type]) {
+ const content = await fs.readFileSync(file, 'utf-8')
+ const data = matter(content)
+ if (data.data.tags) {
+ if (Array.isArray(data.data.tags)) tags.push(...data.data.tags)
+ else tags.push(data.data.tags)
+ } else if (type === 'showcase')
+ console.log('Missing design tag in showcase post:', { file, data: data.data })
+ if (data.data.authors) {
+ if (Array.isArray(data.data.authors)) authors.push(...data.data.authors)
+ else authors.push(data.data.authors)
+ } else if (type === 'showcase') console.warn('Missing authors in showcase post:', file)
+ else if (type === 'blog') console.warn('Missing authors in blog post:', file)
+ else if (type === 'newsletter') console.warn('Missing authors in newsletter edition:', file)
+ }
+ }
+
+ return {
+ authors: [...new Set(authors.sort())], // Make them unique
+ tags: [...new Set(tags.sort())], // Make them unique
+ }
+}
+
+const titles = {
+ admin: 'FreeSewing Maintainer',
+ user: 'FreeSewing User',
+}
+
+const userAsAuthor = (user) => ({
+ name: user.profile.username,
+ title: titles[user.profile.role],
+ url: `https://freesewing.org/users/user?id=${user.profile.id}`,
+ image_url: `https://imagedelivery.net/ouSuR9yY1bHt-fuAokSA5Q/uid-${user.profile.ihash}/public`,
+ bio: user.profile.bio,
+})
+
+const loadUser = async (id) => {
+ let result
+ try {
+ result = await fetch(`https://backend3.freesewing.org/users/${id}`)
+ } catch (err) {
+ console.warn(`Failed to load user with id ${id}`, err)
+ }
+
+ if (result) return await result.json()
+}
+
+async function prebuild() {
+ const all = {}
+ const { authors, tags } = await loadTagsAndAuthors()
+ for (const author of authors) {
+ const user = await loadUser(author)
+ if (user.profile.id) all[user.profile.id] = userAsAuthor(user)
+ }
+ fs.writeFileSync(`./authors.json`, JSON.stringify(all, null, 2))
+ fs.writeFileSync(
+ `./showcase-tags.mjs`,
+ `export const tags = ${JSON.stringify([...new Set(tags.sort())])}`
+ )
+}
+
+prebuild()
diff --git a/sites/orgdocs/showcase/100percent-full-sandy-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/100percent-full-sandy-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..0144ba29ef3
--- /dev/null
+++ b/sites/orgdocs/showcase/100percent-full-sandy-by-lasermonkey12/index.mdx
@@ -0,0 +1,15 @@
+---
+title: '100% full Sandy by lasermonkey12'
+caption: 'We love the dotty fabric'
+date: '2024-01-06'
+intro: 'This Sandy circle skirt is a full circle.'
+tags: ['sandy']
+authors: 31287
+---
+
+
+
+
+
+This Sandy circle skirt by maker lasermonkey12 is a 100% circle. We love the
+choice of fun fabric for this cute skirt!
diff --git a/sites/orgdocs/showcase/3d-skully/index.mdx b/sites/orgdocs/showcase/3d-skully/index.mdx
new file mode 100644
index 00000000000..66856fb7461
--- /dev/null
+++ b/sites/orgdocs/showcase/3d-skully/index.mdx
@@ -0,0 +1,22 @@
+---
+title: 'Our beloved Skully now available in 3d'
+caption: "Doesn't it look sooo good"
+date: '2023-11-01'
+intro: 'A real-life skully, with hair and needle'
+tags: ['skully']
+authors: 132
+---
+
+
+
+
+
+One day there was an unexpected delivery on my doorstep. I wasn't really
+certain what to make of it because I didn't recall ordering anything lately.
+Suffice to say I was not at all prepared for the awesomeness inside because
+when I opened the box I found this lovingly handcrafted real-life version of
+Skully, FreeSewing's beloved logo and mascot.
+
+This is the wonderful work for Wouter who also made [the
+design](/designs/skully). So you can go and make a Skully for
+yourself. You know you want one!
diff --git a/sites/orgdocs/showcase/a-casual-test-of-noble/index.mdx b/sites/orgdocs/showcase/a-casual-test-of-noble/index.mdx
new file mode 100644
index 00000000000..7de9bbec042
--- /dev/null
+++ b/sites/orgdocs/showcase/a-casual-test-of-noble/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'The sewist was happy with her results'
+date: '2022-06-30'
+intro: 'A FreeSewing maker shared this version of the Noble body block.'
+title: 'A casual test of Noble'
+tags: ['noble']
+---
+
+
+
+A FreeSewing maker shared this version of the Noble body block.
+
+They said:
+
+> This was quite interesting to sew up and I'm surprised how well it fits! The material is an old pillowcase. I added seam allowances everywhere except the neckline and arm holes. The princess seams on the front and back matched perfectly. The pattern pieces aligned pretty well everywhere.
+
+> There are some obvious fit issues: 1) the front shoulder/armpit has some extra fabric and 2) the center back is tight. These can safely be attributed to the model, not the pattern -- I didn't make any adjustments for my body's pretty dramatic asymmetry (one shoulder is lower than the other) and I believe my chest measurement increased between when I last updated my FreeSewing measurements and when I generated this pattern.
+
+> Still sharing in hopes the photos have some value to the designer and/or future makers!
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-charming-small-lucy-by-moderndragon/index.mdx b/sites/orgdocs/showcase/a-charming-small-lucy-by-moderndragon/index.mdx
new file mode 100644
index 00000000000..a8c64b3f2ca
--- /dev/null
+++ b/sites/orgdocs/showcase/a-charming-small-lucy-by-moderndragon/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'A charming small Lucy by moderndragon'
+caption: 'A small Lucy pocket'
+date: '2024-01-02'
+intro: "This small Lucy was moderndragon's very first FreeSewing make."
+tags: ['lucy']
+maker: Natalia
+---
+
+
+
+This small Lucy pocket was moderndragon's very first FreeSewing make. We think the size, pattern placement, binding, and finishing are all very lovely!
diff --git a/sites/orgdocs/showcase/a-delightfully-drapey-teagan-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/a-delightfully-drapey-teagan-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..1a3dd3392c4
--- /dev/null
+++ b/sites/orgdocs/showcase/a-delightfully-drapey-teagan-by-lasermonkey12/index.mdx
@@ -0,0 +1,13 @@
+---
+title: 'A delightfully drapey Teagan by lasermonkey12'
+caption: 'This Teagan t-shirt has lovely drape.'
+date: '2024-01-06'
+intro: 'Maker lasermonkey12 shared this very wearable Teagan tee.'
+tags: ['teagan']
+maker: Natalia
+authors: 31287
+---
+
+
+
+Maker lasermonkey12 shared this very wearable Teagan tee. The dotty fabric is the festive cousin of the one she used for her Sandy circle skirt, also viewable in a separate showcase post. This was shared on our [Discord](https://discord.freesewing.org/) and has been reposted here with permission.
diff --git a/sites/orgdocs/showcase/a-dinosaur-themed-aaron-with-some-customizations/index.mdx b/sites/orgdocs/showcase/a-dinosaur-themed-aaron-with-some-customizations/index.mdx
new file mode 100644
index 00000000000..501407f152d
--- /dev/null
+++ b/sites/orgdocs/showcase/a-dinosaur-themed-aaron-with-some-customizations/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'A dinosaur-themed Aaron with some customizations'
+caption: 'Check out that dino print fabric!'
+date: '2024-06-18'
+intro: 'Maker moderndragon used the FreeSewing options to customize the fit for them.'
+authors: 22007
+tags: ['aaron']
+---
+
+
+
+Maker moderndragon used the FreeSewing options to customize the fit for their first Aaron. They went with slightly more ease than default, made slightly wider straps, put the straps slightly more towards the outside, and went with the "draft for high bust" option.
+
+They said it's very comfy! We think it's a great result!
diff --git a/sites/orgdocs/showcase/a-fantastic-outfit-featuring-teagan-simon-and-cornelius/index.mdx b/sites/orgdocs/showcase/a-fantastic-outfit-featuring-teagan-simon-and-cornelius/index.mdx
new file mode 100644
index 00000000000..7ae583b2810
--- /dev/null
+++ b/sites/orgdocs/showcase/a-fantastic-outfit-featuring-teagan-simon-and-cornelius/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'GWIZ'
+caption: 'All the materials for these garments were recycled'
+date: '2023-05-10'
+intro: 'This showcase is really something special -- it features, not one, not two, but THREE FreeSewing patterns!'
+title: 'A fantastic outfit featuring Teagan, Simon, and Cornelius'
+tags: ['teagan', 'simon', 'cornelius']
+---
+
+
+
+This showcase is really something special -- it features, not one, not two, but THREE FreeSewing patterns!
+
+The shirt is a modified Teagan, surcoat is Simon, and the breeches are Cornelius.
+
+And if that wasn't already fantastic enough, they're all made from recycled materials.
+
+We're huge fans of this look, the maker's first complete outfit!
diff --git a/sites/orgdocs/showcase/a-flat-fronted-bruce/index.mdx b/sites/orgdocs/showcase/a-flat-fronted-bruce/index.mdx
new file mode 100644
index 00000000000..4843c797a54
--- /dev/null
+++ b/sites/orgdocs/showcase/a-flat-fronted-bruce/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'starf'
+caption: "A commenter in Discord said this picture looks like a bed... you're welcome"
+date: '2021-12-19'
+intro: 'Starf made this great Bruce version with bulge set to 0%!'
+title: 'A flat-fronted Bruce'
+tags: ['bruce']
+---
+
+
+
+Starf made this great Bruce version with bulge set to 0%!
+
+> another weirdly staged underwear picture, this time Bruce! with bulge set to 0%, it's super super comfy. I opted for elastic instead of a waistband, since these are made with a pretty high rise (let's see how they hold up _pun intended_)
diff --git a/sites/orgdocs/showcase/a-full-body-onyx-swimsuit-with-swim-skirt/index.mdx b/sites/orgdocs/showcase/a-full-body-onyx-swimsuit-with-swim-skirt/index.mdx
new file mode 100644
index 00000000000..8757d8b5255
--- /dev/null
+++ b/sites/orgdocs/showcase/a-full-body-onyx-swimsuit-with-swim-skirt/index.mdx
@@ -0,0 +1,21 @@
+---
+title: 'A full body Onyx swimsuit with swim skirt'
+caption: 'Full body Onyx swimsuit with swim skirt'
+date: '2023-11-06'
+intro: ''
+tags: ['onyx']
+maker: Thrunic
+authors: 33070
+---
+
+
+
+This is my favorite Onyx so far.
+
+Featuring a hood, thumb holes, and long sleeves and legs, it provides nearly full sun coverage, leaving only the face, feet, and fingers exposed.
+
+The swim skirt provides additional modesty and adds some flair.
+
+It is fully lined, including the hood and sleeves, with all but one of the seams hidden inside the lining, and very comfortable. Center seam and outseam ease are 0%, while most eases controlling tightness are set to ~-10%, though wrist is at +11% to give room for the hand, and leg hem is at +10% to help it get over the foot. The skirt length is 100% and width is 126% and is gathered and topstitched into place with no hems or folding.
+
+Fabric used is 80% nylon/20% spandex mid-weight swim fabric for the fashion fabric, and 80% polyester/20% spandex heavyweight swim fabric for the lining. Construction is done using a serger/overlock machine for the seams, and a twin needle using a triple stretch stitch for the hems.
diff --git a/sites/orgdocs/showcase/a-handsome-simon-by-ogredandy/index.mdx b/sites/orgdocs/showcase/a-handsome-simon-by-ogredandy/index.mdx
new file mode 100644
index 00000000000..69bd62c7b62
--- /dev/null
+++ b/sites/orgdocs/showcase/a-handsome-simon-by-ogredandy/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'ogredandy'
+caption: "ogredandy's first version of the Simon shirt"
+date: '2022-06-27'
+intro: 'Although ogredandy mentioned that they were still working on the fit of the Simon shirt, the FreeSewing community enjoyed getting to see this version. Folks in Discord shared compliments and suggestions for adjusting the fit, particularly the fabric at the front armscye.'
+title: 'A handsome Simon by ogredandy'
+tags: ['simon']
+---
+
+
+
+Although ogredandy mentioned that they were still working on the fit of the Simon shirt, the FreeSewing community enjoyed getting to see this version. Folks in Discord shared compliments and suggestions for adjusting the fit, particularly the fabric at the front armscye.
+
+
diff --git a/sites/orgdocs/showcase/a-jaeger-and-charlie-set/index.mdx b/sites/orgdocs/showcase/a-jaeger-and-charlie-set/index.mdx
new file mode 100644
index 00000000000..6c773557dcd
--- /dev/null
+++ b/sites/orgdocs/showcase/a-jaeger-and-charlie-set/index.mdx
@@ -0,0 +1,15 @@
+---
+authors: 27669
+caption: 'Jaeger and Charlie in a fun corduroy fabric'
+date: '2023-05-03'
+intro: 'This handsome Jaeger and Waralee set are made all with a cotton corduroy, and cupro lining.'
+title: 'A Jaeger and Charlie set'
+tags: ['jaeger', 'charlie']
+---
+
+
+
+This handsome Jaeger and Waralee set are made all with a cotton corduroy, and cupro lining.
+
+
+
diff --git a/sites/orgdocs/showcase/a-jersey-huey-hoodie/index.mdx b/sites/orgdocs/showcase/a-jersey-huey-hoodie/index.mdx
new file mode 100644
index 00000000000..3f8c61f6c91
--- /dev/null
+++ b/sites/orgdocs/showcase/a-jersey-huey-hoodie/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'Naël'
+caption: 'This Huey is made of jersey fabric'
+date: '2023-05-21'
+intro: 'We think this Huey hoodie looks fantastic! The maker said it is made of jersey fabric so is a bit floppy but very comfortable.'
+title: 'A jersey Huey hoodie'
+tags: ['huey']
+---
+
+
+
+We think this Huey hoodie looks fantastic! The maker said it is made of jersey fabric so is a bit floppy but very comfortable.
+
+
+
diff --git a/sites/orgdocs/showcase/a-lined-tristan-top-with-front-lacing/index.mdx b/sites/orgdocs/showcase/a-lined-tristan-top-with-front-lacing/index.mdx
new file mode 100644
index 00000000000..7cac8549ef7
--- /dev/null
+++ b/sites/orgdocs/showcase/a-lined-tristan-top-with-front-lacing/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'A lined Tristan top with front lacing'
+caption: 'A top made out of fabric scraps. The main fabric was likely upholstery fabric.'
+date: '2024-01-16'
+intro: 'This Tristan top is lined and had bias binding applied to the neck hole, armholes, and hem.'
+tags: ['tristan']
+authors: 19867
+---
+
+
+
+This Tristan top is lined and had bias binding applied to the neck hole, armholes, and hem. It laces in the front to make it easier to wear. This top is technically reversible, although the eyelets are a bit rough on the back side. The boning used is lightweight plastic boning. It gives a nice amount of structure, and support for the lacing.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-lovely-lucy/index.mdx b/sites/orgdocs/showcase/a-lovely-lucy/index.mdx
new file mode 100644
index 00000000000..94367d3bb4e
--- /dev/null
+++ b/sites/orgdocs/showcase/a-lovely-lucy/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Zee'
+caption: 'Bound with silk because faaaancy'
+date: '2022-06-30'
+intro: 'This lovely Lucy tie-on pocket was made by its designer, Zee!'
+title: 'A lovely Lucy tie-on pocket'
+tags: ['lucy']
+---
+
+
+
+This lovely Lucy tie-on pocket was made by its designer, Zee!
+
+This version was made with the measurements unchanged.
diff --git a/sites/orgdocs/showcase/a-lovely-reversible-tristan-top-by-paula/index.mdx b/sites/orgdocs/showcase/a-lovely-reversible-tristan-top-by-paula/index.mdx
new file mode 100644
index 00000000000..985fd9aed87
--- /dev/null
+++ b/sites/orgdocs/showcase/a-lovely-reversible-tristan-top-by-paula/index.mdx
@@ -0,0 +1,21 @@
+---
+title: 'A lovely reversible Tristan Top by Paula'
+caption: "Paula's Tristan has boning in the front"
+date: '2024-02-22'
+intro: 'We love this Tristan top which is reversible and has boning in the front.'
+tags: ['tristan']
+maker: Natalia
+authors: 64919
+---
+
+
+
+We love this very wearable Tristan top which is reversible and has boning in the front.
+
+The maker shared that they are pretty happy with how it turned out, though ~~if~~ when they make another one they'll reduce the ease a bit, it fits fine over a sweater but it's a bit loose on its own/over a lighter top.
+
+These photos are by Paula on [Discord](https://discord.freesewing.org/), and have been shared with permission.
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-mini-hi-with-embroidered-eyes/index.mdx b/sites/orgdocs/showcase/a-mini-hi-with-embroidered-eyes/index.mdx
new file mode 100644
index 00000000000..a9b3b08f45e
--- /dev/null
+++ b/sites/orgdocs/showcase/a-mini-hi-with-embroidered-eyes/index.mdx
@@ -0,0 +1,14 @@
+---
+authors: 27669
+caption: 'A fashionable Hi'
+date: '2023-05-03'
+intro: 'The color scheme, embroidered eyes, and tiny teeth are some of the details on this mini-Hi.'
+title: 'A mini-Hi with embroidered eyes'
+tags: ['hi']
+---
+
+
+
+The color scheme, embroidered eyes, and tiny teeth are some of the details on this mini-Hi.
+
+
diff --git a/sites/orgdocs/showcase/a-mock-up-of-titan-with-the-fit-to-knee-option-enabled/index.mdx b/sites/orgdocs/showcase/a-mock-up-of-titan-with-the-fit-to-knee-option-enabled/index.mdx
new file mode 100644
index 00000000000..8986ca6fdce
--- /dev/null
+++ b/sites/orgdocs/showcase/a-mock-up-of-titan-with-the-fit-to-knee-option-enabled/index.mdx
@@ -0,0 +1,19 @@
+---
+title: 'A mock-up of Titan with the fit-to-knee option enabled'
+caption: 'The front view of Titan'
+date: '2023-08-18'
+intro: 'This user tested Titan with the fit-to-knee measurement. They reported being overall happy with the results.'
+tags: ['titan']
+maker: user-3
+authors: 8
+---
+
+
+
+A FreeSewing maker shared this mock-up of Titan. She reported being overall very happy with the results for a first attempt. Her main adjustment will be to raise the waist of the back piece. The maker mentioned that she usually has fit issues with off-the-rack pants and is excited that Titan will be a great starting point for clothes that suit her.
+
+This showcase was submitted anonymously, and is shared with permission.
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-modified-holmes/index.mdx b/sites/orgdocs/showcase/a-modified-holmes/index.mdx
new file mode 100644
index 00000000000..621d035bce7
--- /dev/null
+++ b/sites/orgdocs/showcase/a-modified-holmes/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'bobgeorgethe3rd'
+caption: 'A modified version of Holmes'
+date: '2021-10-19'
+intro: 'This rather wonderful Holmes hat is the first of many for this maker. This one is modified but it is Holmes at the core.'
+title: 'A modified Holmes'
+tags: ['holmes']
+authors: 20650
+---
+
+
+
+This rather wonderful Holmes hat is the first of many for this maker. This one is modified but it is Holmes at the core.
diff --git a/sites/orgdocs/showcase/a-noble-top-for-the-renaissance-festival/index.mdx b/sites/orgdocs/showcase/a-noble-top-for-the-renaissance-festival/index.mdx
new file mode 100644
index 00000000000..a6cc3b5cad6
--- /dev/null
+++ b/sites/orgdocs/showcase/a-noble-top-for-the-renaissance-festival/index.mdx
@@ -0,0 +1,16 @@
+---
+title: 'A Noble top for the Renaissance Festival'
+caption: 'This top is made from scrap cotton fabrics'
+date: '2023-10-16'
+intro: 'This top is based on the Noble block.'
+tags: ['tristan']
+authors: 19867
+---
+
+
+
+This top was made based on the Noble block, and later spun off into its own design, Tristan. The wearer reports that their body is asymmetric, which you can see in the back view. They were very happy with this simple variation of Noble.
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-short-sleeved-simon-by-carcface/index.mdx b/sites/orgdocs/showcase/a-short-sleeved-simon-by-carcface/index.mdx
new file mode 100644
index 00000000000..4f83ec1ea0c
--- /dev/null
+++ b/sites/orgdocs/showcase/a-short-sleeved-simon-by-carcface/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Carcface'
+caption: 'Check out the perfect fabric and button choices'
+date: '2023-05-14'
+intro: 'We love this stylish, breezy Simon shirt, the second by this maker! Looks like a perfect summer outfit to us.'
+title: 'A short-sleeved Simon by Carcface'
+tags: ['simon']
+---
+
+
+
+We love this stylish, breezy Simon shirt, the second by this maker! Looks like a perfect summer outfit to us.
diff --git a/sites/orgdocs/showcase/a-short-sleeved-simon-with-bonus-charlie-and-florent/index.mdx b/sites/orgdocs/showcase/a-short-sleeved-simon-with-bonus-charlie-and-florent/index.mdx
new file mode 100644
index 00000000000..d4be6303d06
--- /dev/null
+++ b/sites/orgdocs/showcase/a-short-sleeved-simon-with-bonus-charlie-and-florent/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'A short-sleeved Simon with bonus Charlie and Florent'
+caption: "Did you spot Charlie on Naël's legs and a Florent on the front?"
+date: '2024-05-01'
+intro: 'This Simon shirt by super-maker Naël looks fantastic.'
+authors: 32412
+tags: ['simon']
+---
+
+
+
+This short-sleeved Simon shirt by super-maker Naël looks fantastic and they look great wearing it! They cut the minimum sleeve length and then cut additional length because it was too long.
+
+And you can spot a pair of Charlie pants and a Florent flat cap in the front!
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-shortened-penelope/index.mdx b/sites/orgdocs/showcase/a-shortened-penelope/index.mdx
new file mode 100644
index 00000000000..1a9cf01d34d
--- /dev/null
+++ b/sites/orgdocs/showcase/a-shortened-penelope/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'A shortened Penelope'
+caption: 'This Penelope was made in a mini length'
+date: '2024-05-22'
+intro: "The maker said: 'Made a bunch of changes to fit this in some teeny fabric remnants.'"
+authors: 19867
+tags: ['penelope']
+---
+
+
+
+The maker said:
+
+"Made a bunch of changes to fit this in some teeny fabric remnants. Changes: shortened by around -30%, reduced to 1 dart, split the pieces into 3, sewed two mini vents of around 7cm on the front, added hem bonus of +5% in the lab, reduced waistband length so there’s no overlap. Unlined. Used a regular zipper. Might not still count as a Penelope… more of a Penny maybe! Happy with the result! Feel it will be very wearable."
+
+
+
+
diff --git a/sites/orgdocs/showcase/a-simone-sandy-mashup-with-a-handkerchief-hem-by-rockerkitten/index.mdx b/sites/orgdocs/showcase/a-simone-sandy-mashup-with-a-handkerchief-hem-by-rockerkitten/index.mdx
new file mode 100644
index 00000000000..6aa79058147
--- /dev/null
+++ b/sites/orgdocs/showcase/a-simone-sandy-mashup-with-a-handkerchief-hem-by-rockerkitten/index.mdx
@@ -0,0 +1,17 @@
+---
+title: 'A Simone + Sandy mashup with a handkerchief hem by RockerKitten'
+caption: 'The front view of this Simone + Sandy dress'
+date: '2024-01-06'
+intro: 'RockerKitten combined Simone and Sandy to make this gorgeous dress.'
+tags: ['simone', 'sandy']
+maker: Natalia
+authors: 50818
+---
+
+
+
+RockerKitten combined Simone and Sandy to make this gorgeous dress. We enjoyed following their progress on [Discord](https://discord.freesewing.org/), from inspo pic to final result! RK has really dialed in their FreeSewing measurements and options, with a fantastic result.
+
+
+
+This was made by RockerKitten, [@rockerkitten on Instagram](https://www.instagram.com/rockerkitten/), and has been shared here with permission.
diff --git a/sites/orgdocs/showcase/a-squid-friend-for-octopus/index.mdx b/sites/orgdocs/showcase/a-squid-friend-for-octopus/index.mdx
new file mode 100644
index 00000000000..0587a2b0783
--- /dev/null
+++ b/sites/orgdocs/showcase/a-squid-friend-for-octopus/index.mdx
@@ -0,0 +1,13 @@
+---
+title: 'A squid friend for octopus'
+caption: 'This sweet blue creature was made as a buddy for the XL Octoplushy.'
+date: '2024-01-06'
+intro: 'That Octoplushy is a squid (variant)!'
+tags: ['octoplushy']
+maker: Natalia
+authors: 31287
+---
+
+
+
+That Octoplushy is a squid (variant)! lasermonkey12 made this blue squid as a friend for her previous octopus version.
diff --git a/sites/orgdocs/showcase/a-sturdy-albert-apron-by-ojensen/index.mdx b/sites/orgdocs/showcase/a-sturdy-albert-apron-by-ojensen/index.mdx
new file mode 100644
index 00000000000..6623f1eef71
--- /dev/null
+++ b/sites/orgdocs/showcase/a-sturdy-albert-apron-by-ojensen/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'A sturdy Albert apron by ojensen'
+caption: 'It was made out of a fairly sturdy duck canvas.'
+date: '2024-04-18'
+intro: "This Albert apron was Oliver's very first sewing project!"
+tags: ['albert']
+authors: 29576
+---
+
+
+
+This Albert apron was Oliver's very first sewing project! They made it out of a fairly sturdy duck canvas. We think this is a great intro to sewing and excellent work!
diff --git a/sites/orgdocs/showcase/a-tamiko-top/index.mdx b/sites/orgdocs/showcase/a-tamiko-top/index.mdx
new file mode 100644
index 00000000000..71beef77698
--- /dev/null
+++ b/sites/orgdocs/showcase/a-tamiko-top/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 1
+caption: 'A Tamiko top'
+date: '2021-10-19'
+intro: 'This is a lovely version of the Tamiko top, a zero waste FreeSewing pattern.'
+title: 'A Tamiko top'
+tags: ['tamiko']
+---
+
+
+
+This is a lovely version of the Tamiko top, a zero waste FreeSewing pattern.
diff --git a/sites/orgdocs/showcase/a-tiny-albert-apron/index.mdx b/sites/orgdocs/showcase/a-tiny-albert-apron/index.mdx
new file mode 100644
index 00000000000..16cf466f091
--- /dev/null
+++ b/sites/orgdocs/showcase/a-tiny-albert-apron/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Rowan'
+caption: 'The maker added adjusters so the straps can be adjusted'
+date: '2022-04-01'
+intro: "Rowan made this tiny Albert for their kid's 4th birthday and we love it."
+title: 'A tiny Albert apron'
+tags: ['albert']
+---
+
+
+
+Rowan made this tiny Albert for their kid's 4th birthday and we love it.
+
+They added adjusters to the straps and said, "The sliders work well and should make it fit my kid for longer which was the goal!"
+
+
diff --git a/sites/orgdocs/showcase/a-top-based-on-sven-with-the-hood-of-hugo/index.mdx b/sites/orgdocs/showcase/a-top-based-on-sven-with-the-hood-of-hugo/index.mdx
new file mode 100644
index 00000000000..5b353fdfd3f
--- /dev/null
+++ b/sites/orgdocs/showcase/a-top-based-on-sven-with-the-hood-of-hugo/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'A top based on Sven with the hood of Hugo'
+caption: 'We love the color combo and trim detail'
+date: '2024-04-29'
+intro: 'This excellent mashup design features the body of Sven and the hood of Hugo.'
+authors: 32412
+tags: ['sven', 'hugo']
+---
+
+
+
+This excellent mashup design features the body of Sven and the hood of Hugo for a nice overall look! Great work as always by FreeSewing maker Naël.
+
+
diff --git a/sites/orgdocs/showcase/a-very-modified-yuri/index.mdx b/sites/orgdocs/showcase/a-very-modified-yuri/index.mdx
new file mode 100644
index 00000000000..ae69e5d4821
--- /dev/null
+++ b/sites/orgdocs/showcase/a-very-modified-yuri/index.mdx
@@ -0,0 +1,26 @@
+---
+title: 'A very modified Yuri'
+caption: 'Yuri robe, now with pockets'
+date: '2024-01-06'
+intro: 'RockerKitten modified Yuri to make this cozy and cute robe.'
+tags: ['yuri']
+maker: Natalia
+authors: 50818
+---
+
+
+
+RockerKitten modified Yuri to make this cozy and cute robe. They changed the neck line, lengthened the front hood, and made the whole thing floor length. They shared:
+
+> it was exactly the type of hood I wanted, and the perfect base. I hate drafting sleeve caps and armscyes so that's what I use the most of 😄
+> I was really really really happy that the hood fit lol. I NEVER find hoods that fit
+
+Yay! Love the way they took Yuri's base design and made it their own.
+
+
+
+
+
+
+
+This was made by RockerKitten, [@rockerkitten on Instagram](https://www.instagram.com/rockerkitten/), and has been shared here with permission.
diff --git a/sites/orgdocs/showcase/a-warm-weather-pair-of-waralees/index.mdx b/sites/orgdocs/showcase/a-warm-weather-pair-of-waralees/index.mdx
new file mode 100644
index 00000000000..50efa50ce9b
--- /dev/null
+++ b/sites/orgdocs/showcase/a-warm-weather-pair-of-waralees/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Wouter.vdub'
+caption: 'Waralee wrap pants for the nice weather'
+date: '2023-05-03'
+intro: "Wouter broke out these Waralee wrap pants since it's finally warm and nice out!"
+title: 'A warm weather pair of Waralees'
+tags: ['waralee']
+authors: 132
+---
+
+
+
+Wouter broke out these Waralee wrap pants since it's finally warm and nice out!
diff --git a/sites/orgdocs/showcase/a-wearable-sandy-muslin/index.mdx b/sites/orgdocs/showcase/a-wearable-sandy-muslin/index.mdx
new file mode 100644
index 00000000000..c3a5c76ea9f
--- /dev/null
+++ b/sites/orgdocs/showcase/a-wearable-sandy-muslin/index.mdx
@@ -0,0 +1,15 @@
+---
+title: 'A wearable Sandy muslin'
+caption: "Sandy 'muslin' but also wearable"
+date: '2024-01-06'
+intro: 'Sometimes simple is perfect! RockerKitten made this Sandy skirt as a wearable muslin.'
+tags: ['sandy']
+maker: Natalia
+authors: 50818
+---
+
+
+
+Sometimes simple is perfect! RockerKitten made this Sandy skirt as a wearable muslin. We think this looks wonderfully wearable -- the perfect piece for lots of outfits.
+
+This was made by RockerKitten, [@rockerkitten on Instagram](https://www.instagram.com/rockerkitten/), and has been shared here with permission.
diff --git a/sites/orgdocs/showcase/aaron-a-shirt-by-gaelle/index.mdx b/sites/orgdocs/showcase/aaron-a-shirt-by-gaelle/index.mdx
new file mode 100644
index 00000000000..1174706b324
--- /dev/null
+++ b/sites/orgdocs/showcase/aaron-a-shirt-by-gaelle/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 27669
+caption: 'An Aaron with a lovely print'
+date: '2022-04-27'
+intro: 'This attractive Aaron A-shirt was made by fearless sewist Gaëlle, who basically started sewing 10 days ago! It was done without a serger.'
+title: 'Aaron A-shirt by Gaëlle'
+tags: ['aaron']
+---
+
+
+
+This attractive Aaron A-shirt was made by fearless sewist Gaëlle, who basically started sewing 10 days ago! It was done without a serger.
diff --git a/sites/orgdocs/showcase/aaron-a-shirt-by-pecatrix/index.mdx b/sites/orgdocs/showcase/aaron-a-shirt-by-pecatrix/index.mdx
new file mode 100644
index 00000000000..82b186cf4cc
--- /dev/null
+++ b/sites/orgdocs/showcase/aaron-a-shirt-by-pecatrix/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'pecatrix'
+caption: "pecatrix's Aaron a-shirt"
+date: '2022-08-02'
+intro: 'Aaron A-shirt by pecatrix'
+title: 'Aaron A-shirt by pecatrix'
+tags: ['aaron']
+authors: 27667
+---
+
+
+
+pecatrix made Aaron with some pattern modifications! She joined us in [Discord](https://discord.freesewing.org/) to chat about future minor adjustments she'll make to get a completely smooth binding and eliminate the horizontal "banding" on the back.
+
+
+
+
diff --git a/sites/orgdocs/showcase/aaron-by-joost/index.mdx b/sites/orgdocs/showcase/aaron-by-joost/index.mdx
new file mode 100644
index 00000000000..390192b0644
--- /dev/null
+++ b/sites/orgdocs/showcase/aaron-by-joost/index.mdx
@@ -0,0 +1,14 @@
+---
+authors: 1
+caption: 'An Aaron A-shirt by Joost'
+date: '2017-03-23'
+intro: "Here's an Aaron top I whipped up. I wear this under my shirts, and I'm rather pleased with it."
+title: 'Joost does Aaron'
+tags: ['aaron']
+---
+
+
+
+
+
+Here's an Aaron top I whipped up. I wear this under my shirts, and I'm rather pleased with it.
diff --git a/sites/orgdocs/showcase/aaron-dress-by-ts/index.mdx b/sites/orgdocs/showcase/aaron-dress-by-ts/index.mdx
new file mode 100644
index 00000000000..4bf0372496c
--- /dev/null
+++ b/sites/orgdocs/showcase/aaron-dress-by-ts/index.mdx
@@ -0,0 +1,40 @@
+---
+maker: 'TangerineShark'
+caption: 'TangerineShark in a modified Aaron dress'
+date: '2023-01-05'
+intro: 'Hey! FreeSewing user TangerineShark here! I modified this Aaron A-shirt by lengthening it into a dress.'
+title: 'Aaron modified to a dress'
+tags: ['aaron']
+authors: 13050
+---
+
+
+
+Hey! FreeSewing user TangerineShark here! I modified this Aaron A-shirt by lengthening it into a dress.
+
+
+
+Want to do the same thing yourself? Here's how!
+
+### Cut out the Aaron front and back
+
+- Determine how long you want your dress to be.
+- Fold your fabric in half for cutting on the fold.
+- Place your Aaron front template on the fold, making sure to leave enough length below your Aaron template to account for the full length of the skirt and hem.
+
+:::note
+It's better to go a little longer than you expect, as it's easy to trim shorter or do a deeper
+hem if you're uncertain of the final length.
+:::
+
+- Before cutting anything out, you'll want to make one more measurement. Take your full seat measurement, and divide it by 4. Measure this distance in from the fold at the height of your seat (likely a short distance below the hem of your Aaron). Mark this point on your fabric, adding additional ease as desired. (I added about an inch).
+- Now it's time to cut out your Aaron dress. Cut out the neck, shoulder, and armscye as usual. As you reach the waist, begin to cut toward the seat mark you made earlier, flaring or curving your cutting line to echo the side seam of your Aaron template.
+- Cut straight down from seat of your dress front to the hem. You may gently flare for a wider hem than seat as desired, but know that a significant difference will require you to curve your hem.
+- When you reach the full length of your dress plus hem, cut straight across horizontally, back to the fold.
+- Repeat all steps for the Aaron back.
+
+
+
+### Now's the easy part!
+
+You get to just follow the [assembly instructions for Aaron](/docs/designs/aaron/instructions/), except with super long side seams. Before you hem your dress, try it on! I hemmed mine around ankle length, but experiment with hem depth. This is especially important if your fabric is stretchy or drapey, as it may stretch longer than you expect.
diff --git a/sites/orgdocs/showcase/aaron-on-a-not-me-sized-dress-form-by-braveness23/index.mdx b/sites/orgdocs/showcase/aaron-on-a-not-me-sized-dress-form-by-braveness23/index.mdx
new file mode 100644
index 00000000000..8257da4cbea
--- /dev/null
+++ b/sites/orgdocs/showcase/aaron-on-a-not-me-sized-dress-form-by-braveness23/index.mdx
@@ -0,0 +1,24 @@
+---
+title: 'Aaron on a not-me sized dress form by braveness23'
+caption: 'This Aaron is sewn in a nice drapey gray fabric'
+date: '2024-05-03'
+intro: "This Aaron was maker braveness23's first project!"
+authors: 23123
+tags: ['aaron']
+---
+
+
+
+This Aaron was maker braveness23's first project! He shared some helpful construction details:
+
+"I serged the sides and tops of the arms. I sewed the bottom hem with a double needle on my Brother sewing machine. And I follow [this [Single Fold Knit Binding Youtube video]](https://youtu.be/DIxlWrmNayY) for the neck and arms. For the later I used a double needle, surger thread and a super low bobbin tension on my Bernina sewing machine"
+
+He mentioned that it was a really good fit but doesn't conceal his parastomal hernia, but it wasn't designed for that purpose. Also, he wishes he had made the armholes a lot smaller. We appreciate when folks share these kinds of details for the benefit of future makers!
+
+Great work, braveness23!
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/airline-blanket-sven/index.mdx b/sites/orgdocs/showcase/airline-blanket-sven/index.mdx
new file mode 100644
index 00000000000..b550f9c4de4
--- /dev/null
+++ b/sites/orgdocs/showcase/airline-blanket-sven/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: "You'll never look at those blankets on a plane the same way again."
+date: '2018-02-05'
+intro: 'A Sven made out of two airline blankets'
+title: 'A Sven made out of two airline blankets'
+tags: ['sven']
+---
+
+
+
+[This image](https://www.instagram.com/p/BeKLaPfhGbU/)
+is from [the Instagram feed of funloveadventure](https://www.instagram.com/funloveadventure/).
+It is published here with permission.
diff --git a/sites/orgdocs/showcase/albert-apron-by-brady376/index.mdx b/sites/orgdocs/showcase/albert-apron-by-brady376/index.mdx
new file mode 100644
index 00000000000..146698710ed
--- /dev/null
+++ b/sites/orgdocs/showcase/albert-apron-by-brady376/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Brady376'
+caption: 'This Albert apron was mostly handsewn'
+date: '2022-07-22'
+intro: "We think it's fantastic that this was Brady376's first sewing project! All of it but the straps were done with hand sewing."
+title: 'Albert apron by Brady376'
+tags: ['albert']
+---
+
+
+
+We think it's fantastic that this was Brady376's first sewing project! All of it but the straps were done with hand sewing.
diff --git a/sites/orgdocs/showcase/albert-apron-by-links147/index.mdx b/sites/orgdocs/showcase/albert-apron-by-links147/index.mdx
new file mode 100644
index 00000000000..5f59ee65fe3
--- /dev/null
+++ b/sites/orgdocs/showcase/albert-apron-by-links147/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Links147'
+caption: 'Note the pockets, already in use'
+date: '2022-06-09'
+intro: 'We love this rather artistic shot of Albert by Links147.'
+title: 'Albert apron by Links147'
+tags: ['albert']
+---
+
+
+
+We love this rather artistic shot of Albert by Links147.
diff --git a/sites/orgdocs/showcase/albert-apron-by-saber007s-son/index.mdx b/sites/orgdocs/showcase/albert-apron-by-saber007s-son/index.mdx
new file mode 100644
index 00000000000..57bc297e6a7
--- /dev/null
+++ b/sites/orgdocs/showcase/albert-apron-by-saber007s-son/index.mdx
@@ -0,0 +1,12 @@
+---
+title: "Albert Apron by Saber.007's son"
+caption: 'Great fabric choice!'
+date: '2024-04-29'
+intro: "Saber.007's son did an excellent job sewing this Albert apron."
+authors: 20165
+tags: ['albert']
+---
+
+
+
+Saber.007's son did an excellent job sewing this Albert apron!
diff --git a/sites/orgdocs/showcase/albert-by-wouter/index.mdx b/sites/orgdocs/showcase/albert-by-wouter/index.mdx
new file mode 100644
index 00000000000..1c173498ce2
--- /dev/null
+++ b/sites/orgdocs/showcase/albert-by-wouter/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Wouter.vdub'
+caption: 'The customer is very happy with it!'
+date: '2020-10-08'
+intro: 'The first version of albert, made for his daughter, by Wouter.vdub'
+title: 'The first version of albert, made for his daughter, by Wouter.vdub'
+tags: ['albert']
+authors: 132
+---
+
+
+
+
+
+
+This version has some extra straps on the back to keep it closed. My daughter teaches in a school, so it's important to be able to bend over and not have it open up in the back. The cross straps work fine for normal kitchen use.
diff --git a/sites/orgdocs/showcase/an-aaron-undershirt-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/an-aaron-undershirt-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..59854e43568
--- /dev/null
+++ b/sites/orgdocs/showcase/an-aaron-undershirt-by-lasermonkey12/index.mdx
@@ -0,0 +1,16 @@
+---
+title: 'An Aaron undershirt by lasermonkey12'
+caption: 'Love the fun fabric'
+date: '2024-05-01'
+intro: 'The maker raised the arm holes on this Aaron A-shirt.'
+authors: 31287
+tags: ['aaron']
+---
+
+
+
+The maker raised the arm holes on this Aaron A-shirt. She shared:
+
+"I've been making Aarons! I want to use them as undershirts so I've pulled the armholes up very high (-12% if I remember right, for sweat catching reasons) and I need to bring the neckline down so that it'll still be below any buttons I like to leave undone. This one is great for today's gym trip though!"
+
+Great result!
diff --git a/sites/orgdocs/showcase/an-early-bee-bikini-top/index.mdx b/sites/orgdocs/showcase/an-early-bee-bikini-top/index.mdx
new file mode 100644
index 00000000000..f500e44e3b7
--- /dev/null
+++ b/sites/orgdocs/showcase/an-early-bee-bikini-top/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 8
+caption: 'An early Bee bikini top'
+date: '2021-10-18'
+intro: 'A FreeSewing maker made this Bee bikini top. She used the default settings and reported a great fit with no gaping/coverage issues, but mentioned that she typically does not need a lot of support.'
+title: 'An early Bee bikini top'
+tags: ['bee']
+---
+
+
+
+A FreeSewing maker made this Bee bikini top. She used the default settings and reported a great fit with no gaping/coverage issues, but mentioned that she typically does not need a lot of support.
+
+
+
+She shared the image below of the step where the tie gets sandwiched between the cup pieces.
+
+
diff --git a/sites/orgdocs/showcase/an-early-uma/index.mdx b/sites/orgdocs/showcase/an-early-uma/index.mdx
new file mode 100644
index 00000000000..9ca8fdff71f
--- /dev/null
+++ b/sites/orgdocs/showcase/an-early-uma/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'An early Uma'
+caption: 'An Uma made of rayon spandex jersey'
+date: '2023-10-27'
+intro: 'This pair of Uma undies is made of rayon spandex jersey and finished with wide fold over elastic.'
+tags: ['uma']
+maker: Natalia
+---
+
+
+
+This pair of Uma undies is made of rayon spandex jersey and finished with wide fold over elastic. This is an early version of the design, which has since undergone a few changes.
diff --git a/sites/orgdocs/showcase/an-initial-sample-of-aaron-for-comixminxs-kid/index.mdx b/sites/orgdocs/showcase/an-initial-sample-of-aaron-for-comixminxs-kid/index.mdx
new file mode 100644
index 00000000000..ba8ff52c1ac
--- /dev/null
+++ b/sites/orgdocs/showcase/an-initial-sample-of-aaron-for-comixminxs-kid/index.mdx
@@ -0,0 +1,12 @@
+---
+title: "An initial sample of Aaron for comixminx's kid"
+caption: 'Love the binding and stitching details'
+date: '2024-05-23'
+intro: "This sea animal-themed Aaron was comixminx's first Aaron."
+authors: 22141
+tags: ['aaron']
+---
+
+
+
+This sea animal-themed Aaron was comixminx's first Aaron. This one was an initial sample for her kid's birthday, with more iterations to come!
diff --git a/sites/orgdocs/showcase/an-otter-ly-delightful-sven-sweatshirt/index.mdx b/sites/orgdocs/showcase/an-otter-ly-delightful-sven-sweatshirt/index.mdx
new file mode 100644
index 00000000000..63fbd2c7146
--- /dev/null
+++ b/sites/orgdocs/showcase/an-otter-ly-delightful-sven-sweatshirt/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: 'A fan-favorite Sven sweatshirt featuring an otter French terry'
+date: '2022-01-22'
+intro: 'An otter-ly delightful Sven sweatshirt'
+title: 'An otter-ly delightful Sven sweatshirt'
+tags: ['sven']
+---
+
+
+
+Are you as crazy about this Sven sweatshirt as we are and sad that you don't have this fabric? Never fear! The maker, Bumble, says you can find it on Etsy with the keyword "Otter slide French Terry".
+
+The maker mentioned that this Sven turned out a lot shorter than they'd like, but I have enough other fabric left to lengthen it if necessary.
+
+
+
diff --git a/sites/orgdocs/showcase/anneke-huey-black/index.mdx b/sites/orgdocs/showcase/anneke-huey-black/index.mdx
new file mode 100644
index 00000000000..e99c42f0566
--- /dev/null
+++ b/sites/orgdocs/showcase/anneke-huey-black/index.mdx
@@ -0,0 +1,25 @@
+---
+maker: 'Anneke Caramin'
+caption: 'Anneke rocking her latest Huey, this time in black.'
+date: '2020-10-29'
+intro: 'A Black Huey by Anneke'
+title: 'A Black Huey by Anneke'
+tags: ['huey']
+---
+
+
+
+Anneke has made several variations on the Huey hoodie. Check out her other
+ones [here](https://freesewing.org/showcase/anneke-huey/) and
+[here](https://freesewing.org/showcase/anneke-huey-grey/).
+
+Other views.
+
+
+
+
+
+This post originally appeared on
+[Instagram](https://www.instagram.com/p/Bz3jSeJIiYG/?utm_source=ig_web_copy_link).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/anneke-huey-grey/index.mdx b/sites/orgdocs/showcase/anneke-huey-grey/index.mdx
new file mode 100644
index 00000000000..289d65ff5b6
--- /dev/null
+++ b/sites/orgdocs/showcase/anneke-huey-grey/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Anneke Caramin'
+caption: "Anneke is wearing a light grey Huey with black ribbing, which isn't very obvious on this black skirt."
+date: '2017-12-08'
+intro: "This is Anneke's second Huey"
+title: 'Another grey Huey by Anneke Caramin'
+tags: ['huey']
+---
+
+
+
+This is Anneke's [second Huey](/showcase/anneke-huey/)
diff --git a/sites/orgdocs/showcase/anneke-huey/index.mdx b/sites/orgdocs/showcase/anneke-huey/index.mdx
new file mode 100644
index 00000000000..537013ce6e2
--- /dev/null
+++ b/sites/orgdocs/showcase/anneke-huey/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'Anneke Caramin'
+caption: 'Anneke seen here wearing Huey, while simultaniously smashing the patriarchy by refusing to smile.'
+date: '2017-11-13'
+intro: 'A grey Huey by Anneke Caramin'
+title: 'A grey Huey by Anneke Caramin'
+tags: ['huey']
+---
+
+
+
+
+
+**See the original on Anneke's blog**
+
+This post [originally appeared](http://www.annekecaramin.com/2017/11/pleasure-dot-loathing-dot-huey-dot.html)
+on [annekecaramin.com](http://www.annekecaramin.com/).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/another-day-another-bruce/index.mdx b/sites/orgdocs/showcase/another-day-another-bruce/index.mdx
new file mode 100644
index 00000000000..281010207a9
--- /dev/null
+++ b/sites/orgdocs/showcase/another-day-another-bruce/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'William'
+caption: 'Bruce in an interesting stretch fabric'
+date: '2022-06-09'
+intro: "These Bruce boxer briefs are by William. Don't miss his first version, also in the FreeSewing showcase."
+title: 'Another day, another Bruce'
+tags: ['bruce']
+---
+
+
+
+These Bruce boxer briefs are by William. Don't miss his first version, also in the FreeSewing showcase.
+
+William reports that the fabric was a pain to work with and doesn't have quite as much stretch as a jersey, so it's a bit tight, but they fit. We're glad he stuck with it for this great-looking make.
diff --git a/sites/orgdocs/showcase/another-splendid-simon/index.mdx b/sites/orgdocs/showcase/another-splendid-simon/index.mdx
new file mode 100644
index 00000000000..4203d5348bb
--- /dev/null
+++ b/sites/orgdocs/showcase/another-splendid-simon/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'ferdi'
+caption: 'Check out the buttons on this Simon shirt'
+date: '2021-11-07'
+intro: 'Another great-looking Simon shirt by Ferdi, who shared:'
+title: 'Another splendid Simon shirt by Ferdi'
+tags: ['simon']
+authors: 1972
+---
+
+
+
+Another great-looking Simon shirt by Ferdi, who shared:
+
+> The second Simon shirt I made. Cheap cotton fabric, nothing special, but with beautiful nacre buttons from the charity shop. And I am so happy with the sleeves, which are really long enough.
diff --git a/sites/orgdocs/showcase/aorion-diana/index.mdx b/sites/orgdocs/showcase/aorion-diana/index.mdx
new file mode 100644
index 00000000000..7c6c10f7162
--- /dev/null
+++ b/sites/orgdocs/showcase/aorion-diana/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Aorion'
+caption: 'A beautiful Diana shirt'
+date: '2022-01-22'
+intro: 'Aorion made this Diana shirt for their wife and she immediately wore it to teach a class with a matching Florence!'
+title: "Aorion's Diana shirt for their wife"
+tags: ['diana']
+---
+
+
+
+Aorion made this Diana shirt for their wife and she immediately wore it to teach a class with a matching Florence!
diff --git a/sites/orgdocs/showcase/aorions-first-short-sleeve-simon/index.mdx b/sites/orgdocs/showcase/aorions-first-short-sleeve-simon/index.mdx
new file mode 100644
index 00000000000..79fe1ff872c
--- /dev/null
+++ b/sites/orgdocs/showcase/aorions-first-short-sleeve-simon/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Aorion'
+caption: 'A Simon shirt with short sleeves'
+date: '2022-06-09'
+intro: "This short sleeve Simon shirt was made by Aorion as a gift for their FIL's birthday."
+title: "Aorion's first short sleeve Simon"
+tags: ['simon']
+---
+
+
+
+This short sleeve Simon shirt was made by Aorion as a gift for their FIL's birthday.
diff --git a/sites/orgdocs/showcase/audreyyy-teagan-titan/index.mdx b/sites/orgdocs/showcase/audreyyy-teagan-titan/index.mdx
new file mode 100644
index 00000000000..e282ed31283
--- /dev/null
+++ b/sites/orgdocs/showcase/audreyyy-teagan-titan/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Audreyyy'
+caption: 'Old Shattterhand models Titan and Teagan'
+date: '2022-01-22'
+intro: "Audreyyy's fantastic Teagan shirt and Titan pant"
+title: "Audreyyy's fantastic Teagan shirt and Titan pant"
+tags: ['teagan', 'titan']
+---
+
+
+
+This showcase features one of this showcase-publisher's favorite submissions ever! Check out this handsome fellow, a "Big Jim" doll from the 1970s named Old Shatterhand, and his stylish outfit.
+
+
diff --git a/sites/orgdocs/showcase/baby-paco-pants/index.mdx b/sites/orgdocs/showcase/baby-paco-pants/index.mdx
new file mode 100644
index 00000000000..d38ca085083
--- /dev/null
+++ b/sites/orgdocs/showcase/baby-paco-pants/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'The tiniest Paco pants to date'
+date: '2023-05-03'
+intro: 'These Paco pants are being modeled by a 6-month-old baby!'
+title: 'Baby Paco pants'
+tags: ['paco']
+---
+
+
+
+These Paco pants are being modeled by a 6-month-old baby!
+
+The maker reports:
+
+> I used baby's real measurements taken over a diaper. The pattern pieces looked ridiculous (because baby proportions are ridiculous) but it worked great. The only setting I altered was changing ankle/hem width to 10%. I made an extra wide waistband with no elastic -- the waistband piece was about 38 x 10cm.
+
+
diff --git a/sites/orgdocs/showcase/baby-sven-sweatshirt/index.mdx b/sites/orgdocs/showcase/baby-sven-sweatshirt/index.mdx
new file mode 100644
index 00000000000..31bb1041aaa
--- /dev/null
+++ b/sites/orgdocs/showcase/baby-sven-sweatshirt/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'This version uses a stretch French terry fabric'
+date: '2023-05-05'
+intro: "The maker increased the chest (18%), collar (20.8%), biceps (31.2%), cuff (32.9%), shoulder (6%), and hips (9.9%) ease options for an oversized fit on this Sven sweatshirt for a baby! They used the baby's real measurements."
+title: 'Baby Sven sweatshirt'
+tags: ['sven']
+---
+
+
+
+The maker increased the chest (18%), collar (20.8%), biceps (31.2%), cuff (32.9%), shoulder (6%), and hips (9.9%) ease options for an oversized fit on this Sven sweatshirt for a baby! They used the baby's real measurements.
+
+
diff --git a/sites/orgdocs/showcase/bee-by-ts/index.mdx b/sites/orgdocs/showcase/bee-by-ts/index.mdx
new file mode 100644
index 00000000000..7b48fbe88de
--- /dev/null
+++ b/sites/orgdocs/showcase/bee-by-ts/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'TangerineShark'
+caption: 'An early test of the Bee Bikini top'
+date: '2021-10-25'
+intro: 'This Bee variation was made as a pattern test with cross-back ties, and has a few modifications from the default Bee. The top of the cup is lowered, and there is a small dart along the bottom of each cup taking up some of the gathering. There is also clear elastic sewn into the seams along the band, and a layer of power mesh in the cups, for additional support.'
+title: 'Bee with Cross-Back Ties'
+tags: ['bee', 'ursula']
+authors: 13050
+---
+
+
+
+This Bee variation was made as a pattern test with cross-back ties, and has a few modifications from the default Bee. The top of the cup is lowered, and there is a small dart along the bottom of each cup taking up some of the gathering. There is also clear elastic sewn into the seams along the band, and a layer of power mesh in the cups, for additional support.
+
+Because a swim top is even better with coordinating bottoms, I also made a high-rise Ursula to match!
+
+
diff --git a/sites/orgdocs/showcase/bee-teagan/index.mdx b/sites/orgdocs/showcase/bee-teagan/index.mdx
new file mode 100644
index 00000000000..2b12763e8ed
--- /dev/null
+++ b/sites/orgdocs/showcase/bee-teagan/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'Bumblebee shirt'
+date: '2021-08-24'
+intro: 'A FreeSewing user tinkered with the Teagan tee to make it work well for them in a woven, and made this bumblebee shirt. We love it! We think this fabric looks great in the simple design.'
+title: 'A bee-utiful Teagan in woven fabric'
+tags: ['teagan']
+authors: 13050
+---
+
+
+
+A FreeSewing user tinkered with the Teagan tee to make it work well for them in a woven, and made this bumblebee shirt. We love it! We think this fabric looks great in the simple design.
+
+
+
+:::note
+This picture is from a FreeSewing user. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/bella-block/index.mdx b/sites/orgdocs/showcase/bella-block/index.mdx
new file mode 100644
index 00000000000..c42e6e1d133
--- /dev/null
+++ b/sites/orgdocs/showcase/bella-block/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'This is a muslin of the Bella bodice block made with minimal adjustments'
+date: '2021-01-21'
+intro: 'Bella bodice block'
+title: 'Bella bodice block'
+tags: ['bella']
+authors: 19867
+---
+
+
+
+This is a muslin of the Bella bodice block made with minimal adjustments.
+The neckline seam allowance has been trimmed away and the seams were left raw, but otherwise it was made as generated.
+
+:::note
+This picture is from the [FreeSewing Discord](https://discord.freesewing.org/) and has been shared here with permission.
+:::
diff --git a/sites/orgdocs/showcase/bella-by-bumblebunch/index.mdx b/sites/orgdocs/showcase/bella-by-bumblebunch/index.mdx
new file mode 100644
index 00000000000..7a2bd8696b8
--- /dev/null
+++ b/sites/orgdocs/showcase/bella-by-bumblebunch/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'A dress based on the Bella bodice block'
+date: '2021-06-25'
+intro: 'The talented Bumblebunch shared this dress based on the Bella bodice block! Who would have guessed it was made from an old bed sheet?!'
+title: "Bumblebunch's dress based on the Bella block"
+tags: ['bella']
+---
+
+
+
+The talented Bumblebunch shared this dress based on the Bella bodice block! Who would have guessed it was made from an old bed sheet?!
+
+Bumblebunch shared more "making of" info:
+
+> Used the [Bella] bodice from freesewing and used the good ol slash and spread method to create the pleats. Then I just sorta winged the skirt and pockets because I've made enough that I can kinda just eyeball
+
+> I basically cut up the waist dart on each side up to the neckline, spread the pieces out 2cm, and taped paper underneath to create extra volume for the fabric to fold over. Then I measured 2 inches away from the inner line and repeated until the whole bodice was about 3x in length. The back I just used as it printed
+
+
+
+:::note
+This picture is from Bumblebunch on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/bella-by-deby/index.mdx b/sites/orgdocs/showcase/bella-by-deby/index.mdx
new file mode 100644
index 00000000000..34298d1cb53
--- /dev/null
+++ b/sites/orgdocs/showcase/bella-by-deby/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'Deby'
+caption: 'A beautiful family photo featuring a dress based on Bella'
+date: '2021-07-26'
+intro: 'Gorgeous outfits befitting a gorgeous family! Deby sewed this Simon shirt and her dress is based on the Bella block.'
+title: "Deby's FreeSewing creations based on Simon and Bella"
+tags: ['bella', 'simon']
+---
+
+
+
+Gorgeous outfits befitting a gorgeous family! Deby sewed this Simon shirt and her dress is based on the Bella block.
+
+:::note
+This picture is from [@achachiez on Twitter](https://twitter.com/achachiez) who
+goes by the same username on [Facebook](https://web.facebook.com/achachiez/),
+and sewn by [Deby on Facebook](https://web.facebook.com/nyatichi.deborah). It
+is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/bella-by-karen/index.mdx b/sites/orgdocs/showcase/bella-by-karen/index.mdx
new file mode 100644
index 00000000000..1ad80d9b08d
--- /dev/null
+++ b/sites/orgdocs/showcase/bella-by-karen/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: "Karen's shirt based on the Bella block"
+date: '2021-02-27'
+intro: 'Karen made this fabulous shirt based on the Bella block. She used the Bella block with most default options, only modifying to take in the back darts a bit more. She added several additional design elements to make this shirt.'
+title: 'Bella by Karen'
+tags: ['bella']
+authors: 13050
+---
+
+
+
+Karen made this fabulous shirt based on the Bella block. She used the Bella block with most default options, only modifying to take in the back darts a bit more. She added several additional design elements to make this shirt.
+
+:::note
+This picture is from Discord and is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/bella-sandy-by-ts/index.mdx b/sites/orgdocs/showcase/bella-sandy-by-ts/index.mdx
new file mode 100644
index 00000000000..4c19ffc23b0
--- /dev/null
+++ b/sites/orgdocs/showcase/bella-sandy-by-ts/index.mdx
@@ -0,0 +1,23 @@
+---
+maker: 'TangerineShark'
+caption: 'A deep blue fit-and-flare dress emblazoned with embroidery constellations'
+date: '2021-09-25'
+intro: "This dress is a hybrid of the Bella body block and the Sandy circle skirt . I've been calling the combo Sanderella."
+title: 'A Celestial Sanderella'
+tags: ['bella', 'sandy']
+authors: 13050
+---
+
+
+
+This dress is a hybrid of the [Bella body block](https://freesewing.org/designs/bella/) and the [Sandy circle skirt](https://freesewing.org/designs/sandy/). I've been calling the combo Sanderella.
+
+The Bella's modified with a wide boatneck and lowered back neckline. The Sandy is 75% of a circle skirt, to drape over the hips with a little less volume, and the ease at the waist is set to match the Bella. I wanted to give it a little something extra, so I added a rouleau loop at the back, with the button secured to an embroidery floss tassel, and wide waist ties stitched into the waist darts.
+
+
+
+The Bella bodice is lined for support, as the outer fabric is a little prone to stretching out. After the main bodice was finished, I embroidered it with grey and silver threads to match a suite of northern hemisphere constellations, albeit with a fair bit of artistic license. Do not use for navigation or astronomy homework. :sweat_smile:
+
+
+
+Word to the wise, this drapey fabric really benefitted from hanging for a day or two, then trimming the bottom of the skirt off for an even hem.
diff --git a/sites/orgdocs/showcase/benjamin-by-anto/index.mdx b/sites/orgdocs/showcase/benjamin-by-anto/index.mdx
new file mode 100644
index 00000000000..12b88c53247
--- /dev/null
+++ b/sites/orgdocs/showcase/benjamin-by-anto/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: "Can you believe this is Anto's first time sewing a bow tie?"
+date: '2021-08-04'
+intro: "Anto's bow tie game is legit! He looks incredibly dapper modeling this Benjamin bow tie."
+title: 'Bow tie by Anto'
+tags: ['benjamin']
+---
+
+
+
+Anto's bow tie game is legit! He looks incredibly dapper modeling this Benjamin bow tie.
+
+
+
+:::note
+This picture is from Anto on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/benjamin-by-rika/index.mdx b/sites/orgdocs/showcase/benjamin-by-rika/index.mdx
new file mode 100644
index 00000000000..42798e56a6b
--- /dev/null
+++ b/sites/orgdocs/showcase/benjamin-by-rika/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: "The world's cutest Benjamin bowtie"
+date: '2021-06-25'
+intro: "Safe to say this is the world's cutest Benjamin bowtie, featuring Othello the Otter. We especially love this fun two-tone color idea."
+title: 'Benjamin bowtie by Rika'
+tags: ['benjamin']
+---
+
+
+
+Safe to say this is the world's cutest Benjamin bowtie, featuring Othello the Otter. We especially love this fun two-tone color idea.
+
+:::note
+This picture is from Rika on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/black-bruce/index.mdx b/sites/orgdocs/showcase/black-bruce/index.mdx
new file mode 100644
index 00000000000..183951cf843
--- /dev/null
+++ b/sites/orgdocs/showcase/black-bruce/index.mdx
@@ -0,0 +1,31 @@
+---
+maker: 'unknown'
+caption: 'Seems the husband was not willing to model these'
+date: '2017-09-13'
+intro: 'Judy wrote:'
+title: 'Black boxers by Judy'
+tags: ['bruce']
+---
+
+
+
+Judy wrote:
+
+> Since my husband is inexplicably reluctant to let me photograph
+> him in his undies for the internet I took them to work and asked
+> one of the very obliging blokes we keep hanging around to model for me!
+>
+> These are the [#bruceboxers](https://www.instagram.com/explore/tags/bruceboxers/)
+> from [@freesewing_org](https://www.instagram.com/freesewing_org/) made from a
+> merino/nylon/lycra from [@wearethefabricstore](https://www.instagram.com/wearethefabricstore/)
+> in Dunedin.
+>
+> David loves them - reckons these are the best undies he's
+> ever had, so major awesome-wife points for me!
+> (They fit him much better than the dummy)
+
+> ##### Check the original in judywillimentross's Instagram feed
+>
+> This picture is from [the Instagram feed](https://www.instagram.com/p/BZAT_btB_dq/)
+> of [judywillimentross](https://www.instagram.com/judywillimentross/),
+> aka [Judy336](/users/user?id=304).
diff --git a/sites/orgdocs/showcase/black-hugo/index.mdx b/sites/orgdocs/showcase/black-hugo/index.mdx
new file mode 100644
index 00000000000..901d9b147a9
--- /dev/null
+++ b/sites/orgdocs/showcase/black-hugo/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'Love the detail of the different fabric on the inside of the hood'
+date: '2016-01-18'
+intro: 'This picture is from the Instagram feed of taliajane_designs .'
+title: 'A black hugo hoodie by Natalie'
+tags: ['hugo']
+---
+
+
+
+This picture is from [the Instagram feed](https://www.instagram.com/p/BAqm70Lqg9o/) of [taliajane_designs](https://www.instagram.com/taliajane_designs/).
diff --git a/sites/orgdocs/showcase/bleach-dyed-bruce/index.mdx b/sites/orgdocs/showcase/bleach-dyed-bruce/index.mdx
new file mode 100644
index 00000000000..5d2dc139b94
--- /dev/null
+++ b/sites/orgdocs/showcase/bleach-dyed-bruce/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'These are made of black tshirt fabric she bleach dyed myself, using desert plants for the design.'
+date: '2018-01-21'
+intro: 'Bleach dyed Bruce by Reanna'
+title: 'Bleach dyed Bruce by Reanna'
+tags: ['bruce']
+---
+
+
+
+
+
+
+
+
+
+:::tip See the original on Tumblr
+
+These were taken from [this Tumblr post](http://alderrr.tumblr.com/post/168948306776/christmas-crafting-2-pairs-of-mens-underwear)
+on [the blog](http://alderrr.tumblr.com/) of [@Alderrr](/users/user?id=2900).
+
+They are reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/blue-geometric-simon/index.mdx b/sites/orgdocs/showcase/blue-geometric-simon/index.mdx
new file mode 100644
index 00000000000..90b5b2ebb04
--- /dev/null
+++ b/sites/orgdocs/showcase/blue-geometric-simon/index.mdx
@@ -0,0 +1,23 @@
+---
+maker: 'unknown'
+caption: "Can't get over how great this Simon looks!"
+date: '2023-05-28'
+intro: 'We were floored when a FreeSewing user dropped these fabulous pictures of their new Simon in a GitHub issue.'
+title: 'A blue geometric Simon'
+tags: ['simon']
+authors: 1972
+---
+
+
+
+We were floored when a FreeSewing user dropped these fabulous pictures of their new Simon in a GitHub issue.
+
+The pattern of the blue fabric prompted them to use eight buttons in the front instead of just seven. They were afraid it would look odd otherwise if the buttons were on different parts of the design.
+
+This is the fifth Simon shirt for this sewist, but they sewed the buttonholes on the wrong side. They saved it by sewing another buttonhole placket over it, with a positive side result: the buttonhole placket is now nice and stiff. They're delighted.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/blue-simon/index.mdx b/sites/orgdocs/showcase/blue-simon/index.mdx
new file mode 100644
index 00000000000..d76955f1374
--- /dev/null
+++ b/sites/orgdocs/showcase/blue-simon/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'unknown'
+caption: "That's some quality posing right there."
+date: '2017-10-09'
+intro: 'A blue Simon shirt by feelingmyoats'
+title: 'A blue Simon shirt by feelingmyoats'
+tags: ['simon']
+---
+
+
+
+
+
+
+
+:::tip See the original on Instagram
+
+This post [originally appeared](https://www.instagram.com/p/BZ6X2CkjZor/)
+on [the Instagram feed of feelinmyoats](https://www.instagram.com/feelinmyoats/).
+
+It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/blue-theo/index.mdx b/sites/orgdocs/showcase/blue-theo/index.mdx
new file mode 100644
index 00000000000..4dbf06bb5fd
--- /dev/null
+++ b/sites/orgdocs/showcase/blue-theo/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 1
+caption: 'Gosh we were so young back then'
+date: '2015-04-13'
+intro: "That's it. That't the whole post"
+title: 'Blue cotton Theo trousers by joost'
+tags: ['titan']
+---
+
+
+
+That's it. That't the whole post
diff --git a/sites/orgdocs/showcase/blue-wahid-by-bjeppson/index.mdx b/sites/orgdocs/showcase/blue-wahid-by-bjeppson/index.mdx
new file mode 100644
index 00000000000..3d390720876
--- /dev/null
+++ b/sites/orgdocs/showcase/blue-wahid-by-bjeppson/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'This Wahid looks ace'
+date: '2022-01-08'
+intro: "Github user bjeppson reached out to us to let us know about this Wahid and we're stoked to showcase another fabulous example of our waistcoat pattern."
+title: 'A blue striped Wahid by bjeppson'
+tags: ['wahid']
+---
+
+
+
+Github user bjeppson [reached out to us](https://github.com/freesewing/freesewing/issues/1583) to let us know about this Wahid and we're stoked to showcase another fabulous example of our waistcoat pattern.
diff --git a/sites/orgdocs/showcase/bob-bibs-by-duck/index.mdx b/sites/orgdocs/showcase/bob-bibs-by-duck/index.mdx
new file mode 100644
index 00000000000..87776f2f992
--- /dev/null
+++ b/sites/orgdocs/showcase/bob-bibs-by-duck/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Duck'
+caption: 'The first of many Bob bibs'
+date: '2022-07-29'
+intro: 'Duck made several charming Bob bibs, just in time for a baby shower!'
+title: 'Bob bibs by Duck'
+tags: ['bob']
+---
+
+
+
+Duck made several charming Bob bibs, just in time for a baby shower!
+
+
diff --git a/sites/orgdocs/showcase/bob3000-chore-coat/index.mdx b/sites/orgdocs/showcase/bob3000-chore-coat/index.mdx
new file mode 100644
index 00000000000..466f2cdbc86
--- /dev/null
+++ b/sites/orgdocs/showcase/bob3000-chore-coat/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'A little chore coat'
+date: '2022-02-05'
+intro: 'Bob3000 made this very cute chore coat for his kid. It is based on the Brian block.'
+title: "Bob3000's hand made chore coat based on Brian"
+tags: ['brian']
+---
+
+
+
+Bob3000 made this very cute chore coat for his kid. It is based on the Brian block.
+
+
diff --git a/sites/orgdocs/showcase/bound-wahid/index.mdx b/sites/orgdocs/showcase/bound-wahid/index.mdx
new file mode 100644
index 00000000000..eb1cd639aaf
--- /dev/null
+++ b/sites/orgdocs/showcase/bound-wahid/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'Believe it or not, this is only his third sewing project ever.'
+date: '2018-02-05'
+intro: 'A Wahid Waistcoat with bound buttonholes'
+title: 'A Wahid Waistcoat with bound buttonholes'
+tags: ['wahid']
+---
+
+
+
+
+
+
+
+
+
+> ##### See the originals on the Instragram feed of funloveadventure
+>
+> These images are from
+> [the Instagram feed](https://www.instagram.com/funloveadventure/) of FIXME.
+> They are published here with permission.
+
+> FIXME: What user is this?
diff --git a/sites/orgdocs/showcase/brazenedminstrel-double-ws/index.mdx b/sites/orgdocs/showcase/brazenedminstrel-double-ws/index.mdx
new file mode 100644
index 00000000000..e771ab213a6
--- /dev/null
+++ b/sites/orgdocs/showcase/brazenedminstrel-double-ws/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'brazenedMinstrel'
+caption: 'Soft purple Waralees with belt accessories'
+date: '2022-08-02'
+intro: 'brazenedMinstrel has made two lovely Freesewing designs recently: the first is this pair of purple Waralees in soft fabric accessorized with a black fabric belt found on the street and a colourful one bought on a flea market.'
+title: 'Waralees and Wahid by brazenedMinstrel'
+tags: ['waralee', 'wahid']
+---
+
+
+
+
+brazenedMinstrel has made two lovely Freesewing designs recently: the first is this pair of purple Waralees in soft fabric accessorized with a black fabric belt found on the street and a colourful one bought on a flea market.
+
+The second make is another W item - this fantastic Wahid waistcoat which is entirely reversible!
+
+
+
+You can see both sides of the waistcoat in the pictures. BrazenedMinstrel benefitted from the advice of their experienced sewist grandmother, who guided them in making it fully reversible. Instead of using a lining, they used 2 x the fronts and backs and stitched them with good sides together before turning it out and doing the armholes and bottom seam. There are buttons on both sides too, to cap it all.
diff --git a/sites/orgdocs/showcase/breanna-dress-by-andrea-cretu/index.mdx b/sites/orgdocs/showcase/breanna-dress-by-andrea-cretu/index.mdx
new file mode 100644
index 00000000000..9e7e654d0b8
--- /dev/null
+++ b/sites/orgdocs/showcase/breanna-dress-by-andrea-cretu/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'Breanna dress by Andrea Cretu'
+caption: 'Andrea made this lovely dress based on the Breanna block'
+date: '2023-10-17'
+intro: 'Andrea added a circle skirt to the Breanna block to make this charming dress.'
+tags: ['breanna']
+maker: Natalia
+---
+
+
+
+Andrea added a circle skirt to the Breanna block to make this charming dress. We love the choice of fabric and buttons!
+
+Andrea shared these helpful details:
+
+> Made a dress based on the Breanna body block, with a circle skirt. Next iteration I'll scoop out the armholes and neck and add length to the bottom, so the skirt starts a little lower. Also will make the darts end earlier on the bust and later on the back.
+
+Andrea is a talented creator, and the owner at [Yarnandy.com](https://yarnandy.com/).
diff --git a/sites/orgdocs/showcase/brian-by-eric/index.mdx b/sites/orgdocs/showcase/brian-by-eric/index.mdx
new file mode 100644
index 00000000000..6e89d1c3d11
--- /dev/null
+++ b/sites/orgdocs/showcase/brian-by-eric/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Eric used the Brian Body Block and added their own hood'
+date: '2021-07-29'
+intro: 'Eric achieved a great fit on their first wearable garment! They shared:'
+title: 'Hoodie based on the Brian body block'
+tags: ['brian']
+---
+
+
+
+Eric achieved a great fit on their first wearable garment! They shared:
+
+> My first piece of clothing that fits! I used the Brian Body Block and added my own hood. Learned a lot in the process.
+
+:::note
+This picture is from Eric on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/brian-by-stefan-1/index.mdx b/sites/orgdocs/showcase/brian-by-stefan-1/index.mdx
new file mode 100644
index 00000000000..352ef92c203
--- /dev/null
+++ b/sites/orgdocs/showcase/brian-by-stefan-1/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'Stefan showing off his new T-shirt, which is based on the Brian Body Block.'
+date: '2017-11-24'
+intro: 'This picture originally appeared in the twitter feed of @SThanheiser .'
+title: 'Stefan makes a T-shirt based on Brian 1/4'
+tags: ['brian']
+---
+
+
+
+This picture [originally appeared](https://twitter.com/SThanheiser/status/933942463332536320)
+in the twitter feed of [@SThanheiser](https://twitter.com/SThanheiser).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/brian-by-stefan-2/index.mdx b/sites/orgdocs/showcase/brian-by-stefan-2/index.mdx
new file mode 100644
index 00000000000..7815ad67e38
--- /dev/null
+++ b/sites/orgdocs/showcase/brian-by-stefan-2/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'Stefan showing off his new T-shirt, which is based on the Brian Body Block.'
+date: '2017-11-24'
+intro: 'This picture originally appeared in the twitter feed of @SThanheiser .'
+title: 'Stefan makes a T-shirt based on Brian 2/4'
+tags: ['brian']
+---
+
+
+
+This picture [originally appeared](https://twitter.com/SThanheiser/status/933942463332536320)
+in the twitter feed of [@SThanheiser](https://twitter.com/SThanheiser).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/brian-by-stefan-3/index.mdx b/sites/orgdocs/showcase/brian-by-stefan-3/index.mdx
new file mode 100644
index 00000000000..41e47553ebe
--- /dev/null
+++ b/sites/orgdocs/showcase/brian-by-stefan-3/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'Stefan showing off his new T-shirt, which is based on the Brian Body Block.'
+date: '2017-11-24'
+intro: 'This picture originally appeared in the twitter feed of @SThanheiser .'
+title: 'Stefan makes a T-shirt based on Brian 3/4'
+tags: ['brian']
+---
+
+
+
+This picture [originally appeared](https://twitter.com/SThanheiser/status/933942463332536320)
+in the twitter feed of [@SThanheiser](https://twitter.com/SThanheiser).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/brian-by-stefan-4/index.mdx b/sites/orgdocs/showcase/brian-by-stefan-4/index.mdx
new file mode 100644
index 00000000000..38f21fade11
--- /dev/null
+++ b/sites/orgdocs/showcase/brian-by-stefan-4/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'Stefan showing off his new T-shirt, which is based on the Brian Body Block.'
+date: '2017-11-24'
+intro: 'This picture originally appeared in the twitter feed of @SThanheiser .'
+title: 'Stefan makes a T-shirt based on Brian 4/4'
+tags: ['brian']
+---
+
+
+
+This picture [originally appeared](https://twitter.com/SThanheiser/status/933942463332536320)
+in the twitter feed of [@SThanheiser](https://twitter.com/SThanheiser).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/brown-geometric-simon/index.mdx b/sites/orgdocs/showcase/brown-geometric-simon/index.mdx
new file mode 100644
index 00000000000..975ce3fb47a
--- /dev/null
+++ b/sites/orgdocs/showcase/brown-geometric-simon/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'unknown'
+caption: 'Such a fantastic Simon shirt, modeled by the creator!'
+date: '2023-05-28'
+intro: "The sixth Simon for this sewist, we love this geometric patterned Simon in a shade of brown crisscrossed with thin white lines. The creator dropped this in a GitHub issue to share with FreeSewing, and we couldn't be more pleased."
+title: 'A brown geometric Simon'
+tags: ['simon']
+authors: 1972
+---
+
+
+
+The sixth Simon for this sewist, we love this geometric patterned Simon in a shade of brown crisscrossed with thin white lines. The creator dropped this in a GitHub issue to share with FreeSewing, and we couldn't be more pleased.
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/bruce-and-aaron-set-by-ogredandy/index.mdx b/sites/orgdocs/showcase/bruce-and-aaron-set-by-ogredandy/index.mdx
new file mode 100644
index 00000000000..8d6dcbca0d4
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-and-aaron-set-by-ogredandy/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'ogredandy'
+caption: 'Check out that funky fabric'
+date: '2022-06-27'
+intro: 'We love the funky fabric choice for this summer pyjama set by ogredandy using the Bruce and Aaron designs.'
+title: 'Bruce and Aaron set by ogredandy'
+tags: ['aaron', 'bruce']
+---
+
+
+
+We love the funky fabric choice for this summer pyjama set by ogredandy using the Bruce and Aaron designs.
diff --git a/sites/orgdocs/showcase/bruce-boxer-briefs-by-gaelle/index.mdx b/sites/orgdocs/showcase/bruce-boxer-briefs-by-gaelle/index.mdx
new file mode 100644
index 00000000000..fcbff391168
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-boxer-briefs-by-gaelle/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 27669
+caption: 'A handsome pair of Bruce boxer briefs'
+date: '2022-04-27'
+intro: 'FreeSewing maker Gaëlle made these handsome Bruce boxer briefs for a friend, with a little customisation. The result is excellent!'
+title: 'Bruce boxer briefs by Gaëlle'
+tags: ['bruce']
+---
+
+
+
+FreeSewing maker Gaëlle made these handsome Bruce boxer briefs for a friend, with a little customisation. The result is excellent!
diff --git a/sites/orgdocs/showcase/bruce-by-bjeppson/index.mdx b/sites/orgdocs/showcase/bruce-by-bjeppson/index.mdx
new file mode 100644
index 00000000000..daf455514fc
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-by-bjeppson/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'Glad to see some more real picture of Bruce being worn'
+date: '2022-01-08'
+intro: "Github user bjeppson reached out to us to share this bruce he's made and we couldn't be happier to have another showcase of Bruce in the wild, they are not so common."
+title: 'Bruce by bjeppson'
+tags: ['bruce']
+---
+
+
+
+Github user bjeppson [reached out to us](https://github.com/freesewing/freesewing/issues/1583) to share this bruce he's made and we couldn't be happier to have another showcase of Bruce in the wild, they are not so common.
diff --git a/sites/orgdocs/showcase/bruce-by-clolimb/index.mdx b/sites/orgdocs/showcase/bruce-by-clolimb/index.mdx
new file mode 100644
index 00000000000..d19f2fa2291
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-by-clolimb/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'Bruce by CloLimb'
+caption: 'This Bruce features a tag of some vintage batik'
+date: '2023-10-27'
+intro: "The wearer reports that this Bruce 'fits so well!'"
+tags: ['bruce']
+maker: Natalia
+---
+
+
+
+This Bruce was made by CloLimb on GitHub, and has been shared with permission. The wearer says, "It fits so well! ... I made a little tag out of some vintage batik to cover my messy elastic join." We love their fabric and design choices -- what a great looking result.
+
+
diff --git a/sites/orgdocs/showcase/bruce-by-ferdi/index.mdx b/sites/orgdocs/showcase/bruce-by-ferdi/index.mdx
new file mode 100644
index 00000000000..7da66ba2825
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-by-ferdi/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'ferdi'
+caption: 'Multiple pairs of Bruce boxer briefs'
+date: '2021-11-07'
+intro: 'We love the fun fabric choices on these Bruce boxer briefs. Ferdi says:'
+title: 'Bruce by Ferdi'
+tags: ['bruce']
+authors: 1972
+---
+
+
+
+We love the fun fabric choices on these Bruce boxer briefs. Ferdi says:
+
+> I find the Bruce pattern excellent, I will probably never buy briefs again. Perfect to use the leftovers from the t-shirt making.
diff --git a/sites/orgdocs/showcase/bruce-by-victoria/index.mdx b/sites/orgdocs/showcase/bruce-by-victoria/index.mdx
new file mode 100644
index 00000000000..89f0d701a80
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-by-victoria/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'unknown'
+caption: 'very comfy shorter/cheeky version of Bruce!'
+date: '2021-08-24'
+intro: "Victoria's first version of Bruce had some instant fans -- people in the FreeSewing community asked to copy her settings for their own pairs!"
+title: 'A shorter version of Bruce'
+tags: ['bruce']
+---
+
+
+
+Victoria's first version of Bruce had some instant fans -- people in the FreeSewing community asked to copy her settings for their own pairs!
+
+She shared her [settings](https://freesewing.org/patterns/fjhan/) so you can make a pair with your measurements.
+
+Victoria said they fit great and that she definitely recommends giving it a try if you already like boyshorts.
+
+:::note
+This picture is from Victoria, [@dreamsoffrenchseams on Instagram](https://www.instagram.com/dreamsoffrenchseams/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/bruce-by-william/index.mdx b/sites/orgdocs/showcase/bruce-by-william/index.mdx
new file mode 100644
index 00000000000..a34abd8e6e7
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-by-william/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'William'
+caption: 'White pair of Bruce boxer briefs with bonus fly'
+date: '2023-01-30'
+intro: 'William made this great pair of Bruce boxer briefs, and took it a step further by also adding a fly!'
+title: 'Bruce with Fly by William'
+tags: ['bruce']
+---
+
+
+
+William made this great pair of Bruce boxer briefs, and took it a step further by also adding a fly!
diff --git a/sites/orgdocs/showcase/bruce-on-doll/index.mdx b/sites/orgdocs/showcase/bruce-on-doll/index.mdx
new file mode 100644
index 00000000000..abb211b2ba0
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-on-doll/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'unknown'
+caption: 'The doll is named Jon, and its owner is Alicia'
+date: '2017-08-02'
+intro: 'This image was reposted (with premission) from the denofangles.com forum.'
+title: 'Bruce on this doll because why not?'
+tags: ['bruce']
+---
+
+
+
+This image was reposted (with premission) from the
+[denofangles.com](https://denofangels.com/posts/12259581/) forum.
diff --git a/sites/orgdocs/showcase/bruce-three-pack/index.mdx b/sites/orgdocs/showcase/bruce-three-pack/index.mdx
new file mode 100644
index 00000000000..9e849d52d71
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-three-pack/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'Theo made three of these from leftover jersey.'
+date: '2018-10-18'
+intro: 'Felix made three of these, and he writes:'
+title: 'A Bruce three-pack'
+tags: ['bruce']
+authors: 1972
+---
+
+
+
+Felix made three of these, and he writes:
+
+> I just finished a three-pack\* of Bruce underpants.
+> I used some jersey leftovers and tried some elastic stitches on
+> my sewing machine, not all seams were perfect - but now I know
+> which settings are the best.
+>
+> They fit excellent!
+
+Here's a picture of the back:
+
+
diff --git a/sites/orgdocs/showcase/bruce-with-a-flat-front-and-lengthened-legs/index.mdx b/sites/orgdocs/showcase/bruce-with-a-flat-front-and-lengthened-legs/index.mdx
new file mode 100644
index 00000000000..21911517493
--- /dev/null
+++ b/sites/orgdocs/showcase/bruce-with-a-flat-front-and-lengthened-legs/index.mdx
@@ -0,0 +1,15 @@
+---
+title: 'Bruce with a flat front and lengthened legs'
+caption: 'A flat-front Bruce'
+date: '2024-01-02'
+intro: "This flat-front Bruce is a bit wider and with longer legs. They're the most comfy ever while still somewhat flattening the anatomy."
+tags: ['bruce']
+maker: Natalia
+authors: 28514
+---
+
+
+
+These flat-front Bruces by Halbmoki, are a bit wider and with longer legs than their last version. They said these Bruce boxer briefs are the most comfy ever while still somewhat flattening the anatomy. Looks great!
+
+
diff --git a/sites/orgdocs/showcase/bruces-by-paul/index.mdx b/sites/orgdocs/showcase/bruces-by-paul/index.mdx
new file mode 100644
index 00000000000..e6d8f925cb2
--- /dev/null
+++ b/sites/orgdocs/showcase/bruces-by-paul/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'unknown'
+caption: 'A few bruces to use up left over textile from t-shirts and dresses'
+date: '2018-12-19'
+intro: 'Bruces by Paul'
+title: 'Bruces by Paul'
+tags: ['bruce']
+authors: 433
+---
+
+
+
+
diff --git a/sites/orgdocs/showcase/bulbasaur-huey/index.mdx b/sites/orgdocs/showcase/bulbasaur-huey/index.mdx
new file mode 100644
index 00000000000..6c8dea65f5d
--- /dev/null
+++ b/sites/orgdocs/showcase/bulbasaur-huey/index.mdx
@@ -0,0 +1,26 @@
+---
+maker: 'unknown'
+caption: 'Bulbasaurs are strong AND cute'
+date: '2017-11-19'
+intro: ' '
+title: 'A Bulbasaur Huey Hoodie Hack'
+tags: ['huey']
+---
+
+
+
+
+
+
+
+
+
+
+:::tip See the original on Frankie's blog
+
+These picture are from the [Bulbasaur Costume for Children In
+Need](http://knitwits-owls.blogspot.be/2017/11/bulbasaur-costume-for-children-in-need.html)
+blog post on [knitwits-owls.blogspot.com](http://knitwits-owls.blogspot.be).
+
+They are reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/burgundy-florent/index.mdx b/sites/orgdocs/showcase/burgundy-florent/index.mdx
new file mode 100644
index 00000000000..09e40eca91c
--- /dev/null
+++ b/sites/orgdocs/showcase/burgundy-florent/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Jasmine'
+caption: 'Burgundy Florent sitting on a table'
+date: '2023-01-18'
+intro: "Really wanted to call this a raspberry beret, but it's definitely more of a burgundy Florent. FreeSewing afficionado Jasmine created this exquisite cap for her mother-in-law, after making one for herself and her dad. Will the Florent be as popular in your family? There's only one way to find out!"
+title: 'Burgundy Florent'
+tags: ['florent']
+---
+
+
+
+Really wanted to call this a raspberry beret, but it's definitely more of a burgundy Florent. FreeSewing afficionado Jasmine created this exquisite cap for her mother-in-law, after making one for herself and her dad. Will the Florent be as popular in your family? There's only one way to find out!
diff --git a/sites/orgdocs/showcase/carlton-by-boris/index.mdx b/sites/orgdocs/showcase/carlton-by-boris/index.mdx
new file mode 100644
index 00000000000..93078b1dbb4
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-by-boris/index.mdx
@@ -0,0 +1,37 @@
+---
+maker: 'unknown'
+caption: 'Boris in his incredible Carlton Coat'
+date: '2023-02-10'
+intro: "I don't even know where to start. Will you just look at this coat? It's incredible."
+title: 'Classic Carlton by Boris'
+tags: ['carlton']
+---
+
+
+
+I don't even know where to start. Will you just look at this coat? It's incredible.
+
+
+
+
+
+FreeSewing user made his first coat from the Carlton pattern, putting in the extra effort on those finer details.
+
+
+
+
+
+
+
+Boris also shared: "I used horsehair on the cuffs, and I also reinforced the vent, or as I call it “my tail”, with additional horsehair. For a bit of a different look I did do some pick stitching, and that was a way more work than I thought it would be.
+One thing I’ve learned the hard way is that is for heavier materials like Melton, specially the onw of 850 g/sqm, one needs to know how to do Sprat’s head, the triangle, that supports the stitching done on the back. There are instructions on the internet about that. When I started I didn’t even know the function of it. Well, I didn’t even know the name of it. For me it was a nice decor."
+
+
+
+
+
+And here's a few more photos that didn't fit any of the above description, but this coat is so good we could hardly leave any detail shots out. Enjoy a front flatlay and a picture of the inside lining. And in Boris' words: "Thanks guys for the inspiration and I hope to see some others give it a go. 😊 "
+
+
+
+
diff --git a/sites/orgdocs/showcase/carlton-by-charlotte/index.mdx b/sites/orgdocs/showcase/carlton-by-charlotte/index.mdx
new file mode 100644
index 00000000000..bab46f425d3
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-by-charlotte/index.mdx
@@ -0,0 +1,32 @@
+---
+maker: 'unknown'
+caption: 'A classy Carlton coat by Charlotte'
+date: '2021-06-12'
+intro: 'We adore this classy Carlton coat by Charlotte.'
+title: 'Carlton by Charlotte'
+tags: ['carlton']
+---
+
+
+
+We adore this classy Carlton coat by Charlotte.
+
+Charlotte shared:
+
+> Phil has got mean and moody coat modeling down to a fine art (ably assisted by the lighting at the NY Botanical Gardens). Wearing a @freesewing_org #CarltonCoat, in wool fabric from @barrys_fabrics, which was around a year in the making (admittedly with around an 8 month break in the middle).
+
+We think it was a year well spent!
+
+
+
+
+
+
+
+:::note
+These pictures are from Charlotte, [@charlotteemmapatterns on
+Instagram](https://www.instagram.com/charlotteemmapatterns/). Charlotte can
+also be found at the website [Charlotte Emma
+Patterns](https://charlotteemmapatterns.com/). We have reposted the pictures
+here with permission.
+:::
diff --git a/sites/orgdocs/showcase/carlton-by-em/index.mdx b/sites/orgdocs/showcase/carlton-by-em/index.mdx
new file mode 100644
index 00000000000..59131b0f637
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-by-em/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Em'
+caption: "A photo featuring Em's stylish Carlton coat and their cat"
+date: '2021-10-18'
+intro: "Em's cool Carlton coat"
+title: "Em's cool Carlton coat"
+tags: ['carlton']
+---
+
+
+
+
+
+Em made this bomb Carlton coat! They shared a little more info on their make:
+
+> I made this slightly modified version of the Carlton Coat a while back. If i remember correctly I ended up shortening the hem and bringing in the pleats a little in an attempt to get a slightly more femme cut. Fabric is some kind of wool, collars and cuffs are from some cheap mohair scraps I picked up, and it's lined in black silk (it was my first time sewing silk on my machine which was an interesting challenge!). I made a bunch of mistakes but it was a lot of fun! (black-on-black-on-black hides a lot of mistakes 😁 )
diff --git a/sites/orgdocs/showcase/carlton-by-rudy/index.mdx b/sites/orgdocs/showcase/carlton-by-rudy/index.mdx
new file mode 100644
index 00000000000..171ed3a6573
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-by-rudy/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'The Carlton coat by Rudy'
+date: '2021-02-26'
+intro: 'This stylish Carlton coat was made by Rudy, who shared:'
+title: 'Carlton coat by Rudy'
+tags: ['carlton']
+---
+
+
+
+This stylish Carlton coat was made by Rudy, who shared:
+
+> My take on the Carlton coat. My first big sewing project and first time using a freesewing pattern. I even made my own buttons :)
+
+
+
+
+
+
+
+:::note
+This picture is from Rudy, [@rudy_lee21 on Instagram](https://www.instagram.com/rudy_lee21/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/carlton-by-sanulleh/index.mdx b/sites/orgdocs/showcase/carlton-by-sanulleh/index.mdx
new file mode 100644
index 00000000000..d02fe60bc64
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-by-sanulleh/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'Jim in his new Carlton Coat'
+date: '2021-07-18'
+intro: 'Carlton by Jim'
+title: 'Carlton by Jim'
+tags: ['carlton']
+---
+
+
+
+FreeSewing user Jim Rexroat made this absolutely incredible Carlton, originally posted on [Discord](https://discord.freesewing.org/),
+and shared here with permission. Can you believe it's his first FreeSewing make?
+
+
diff --git a/sites/orgdocs/showcase/carlton-coat-by-sewingdentist/index.mdx b/sites/orgdocs/showcase/carlton-coat-by-sewingdentist/index.mdx
new file mode 100644
index 00000000000..57b0f3cb699
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-coat-by-sewingdentist/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'sewingdentist'
+caption: 'A very impressive Carlton in woolen fabric'
+date: '2022-08-02'
+intro: 'This stellar Carlton coat was made by sewingdentist, who said:'
+title: 'Carlton coat by sewingdentist'
+tags: ['carlton']
+---
+
+
+
+This stellar Carlton coat was made by sewingdentist, who said:
+
+> This year's biggest project: completed😊✅ Rob’s new wintercoat is made from 100% woolen fabric, horse hair interfacing and a cheerful brown lining. I really like the special back of this pattern. This coat has a welt pocket (on the inside), chest pockets and patch pockets with flaps. Absolutely loved this Carlton coat pattern from [@freesewing_org](https://www.instagram.com/freesewing_org/). It is made to measure, you can enter your measurements and it generates a pattern in your size! 🧥
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/carlton-coat/index.mdx b/sites/orgdocs/showcase/carlton-coat/index.mdx
new file mode 100644
index 00000000000..2e07ea1dcaa
--- /dev/null
+++ b/sites/orgdocs/showcase/carlton-coat/index.mdx
@@ -0,0 +1,19 @@
+---
+title: 'Carlton coat'
+caption: 'Carlton coat'
+date: '2024-02-23'
+intro: 'Carlton coat'
+tags: ['carlton']
+maker: Vlad
+authors: 50461
+---
+
+
+
+Despite of the sleeves, which are not made exactly as the pattern suggested, everything else is similar. We did not make any more changes.
+
+To specify it a little more - we simply made the sleeves more tight and also increased the angle between arm and forearm.
+
+More images you can find on google disc:
+
+https://drive.google.com/drive/folders/1ERGkaSApfh9PgL4T4CBzmYI9Kd-Z0Pgf?usp=drive_link
diff --git a/sites/orgdocs/showcase/casual-pink-simon/index.mdx b/sites/orgdocs/showcase/casual-pink-simon/index.mdx
new file mode 100644
index 00000000000..7f672eab6e3
--- /dev/null
+++ b/sites/orgdocs/showcase/casual-pink-simon/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'A Simon shirt by Joost'
+date: '2017-03-28'
+intro: 'FIXME_no_intro'
+title: 'Joost does Simon'
+tags: ['simon']
+---
+
+
diff --git a/sites/orgdocs/showcase/charlie-by-bob/index.mdx b/sites/orgdocs/showcase/charlie-by-bob/index.mdx
new file mode 100644
index 00000000000..4a155d6b05d
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-by-bob/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: "Bob's first pair of Charlie trousers"
+date: '2021-05-23'
+intro: "Bob3000's first pair of Charlie trousers are super rad! Keep an eye out for an upcoming second pair in selvedge denim."
+title: 'Charlie by Bob3000'
+tags: ['charlie']
+---
+
+
+
+Bob3000's first pair of Charlie trousers are super rad! Keep an eye out for an upcoming second pair in selvedge denim.
+
+:::note
+This picture is from bob3000 on [the FreeSewing Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/charlie-by-joost-2/index.mdx b/sites/orgdocs/showcase/charlie-by-joost-2/index.mdx
new file mode 100644
index 00000000000..b1cf00e88f2
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-by-joost-2/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 1
+caption: 'Moar Charlie'
+date: '2021-05-23'
+intro: 'Joost made another excellent pair of Charlie Chinos in this tan fabric.'
+title: 'Another Charlie by Joost'
+tags: ['charlie']
+---
+
+
+
+Joost made another excellent pair of Charlie Chinos in this tan fabric.
+
+
+
+
+
+This picture is from Joost, [@j\_\_st on Twitter](https://twitter.com/j__st). It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/charlie-by-joost/index.mdx b/sites/orgdocs/showcase/charlie-by-joost/index.mdx
new file mode 100644
index 00000000000..fad912df6ac
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-by-joost/index.mdx
@@ -0,0 +1,14 @@
+---
+authors: 1
+caption: 'The first ever pair of Charlie Chinos'
+date: '2021-05-23'
+intro: "Joost made this pair of Charlie Chinos trousers and the entire FreeSewing community immediately fell for the trousers' design and the fabric. While Joost couldn't tell us where the fabric came from (it was from his stash), he release the Charlie pattern a few days later."
+title: 'Charlie by Joost'
+tags: ['charlie']
+---
+
+
+
+Joost made this pair of Charlie Chinos trousers and the entire FreeSewing community immediately fell for the trousers' design and the fabric. While Joost couldn't tell us where the fabric came from (it was from his stash), he _did_ release the Charlie pattern a few days later.
+
+This picture is from Joost, [@j\_\_st on Twitter](https://twitter.com/j__st). It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/charlie-by-karen/index.mdx b/sites/orgdocs/showcase/charlie-by-karen/index.mdx
new file mode 100644
index 00000000000..e25b0af79f5
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-by-karen/index.mdx
@@ -0,0 +1,25 @@
+---
+maker: 'unknown'
+caption: 'A pair of purple Charlies'
+date: '2021-07-24'
+intro: 'These Charlies were made in a purple stretch twill, with the rise as high as it would go (30%).'
+title: 'Purple Charlies'
+tags: ['charlie']
+authors: 13050
+---
+
+
+
+These Charlies were made in a purple stretch twill, with the rise as high as it would go (30%).
+
+
+
+It's worth noting, stretch fabric is not recommended for the Charlie Chinos, and it caused a bit of trouble,
+most notably, gaping in the pockets. This was resolved with the addition of twill tape along the pocket edges
+and small buttons halfway up the pocket opening.
+
+
+
+On the plus side, the stretch makes them way better for dancing.
+
+
diff --git a/sites/orgdocs/showcase/charlie-florent-benjamin-by-elske/index.mdx b/sites/orgdocs/showcase/charlie-florent-benjamin-by-elske/index.mdx
new file mode 100644
index 00000000000..ab3610a9465
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-florent-benjamin-by-elske/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'A sharp outfit feat. Benjamin, Florent and Charlie'
+date: '2021-06-25'
+intro: "We love this whole outfit featuring three FreeSewing patterns: Charlie, Florent and Benjamin! You should also check out our previous showcase of Elske's Florent cap."
+title: "Elske's FreeSewing outfit"
+tags: ['benjamin', 'florent', 'charlie']
+---
+
+
+
+We love this whole outfit featuring three FreeSewing patterns: Charlie, Florent and Benjamin! You should also check out our previous showcase of Elske's Florent cap.
+
+> Charlie, Florent and Benjamin (and a me-made waistcoat from a non-Freesewing pattern) together! I made an extra wide waistband on the trousers because they sat a lot lower than I had expected
+
+:::note
+This picture is from Elske, [@elskes_threads on Instagram](https://www.instagram.com/elskes_threads/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/charlie-on-sorcha/index.mdx b/sites/orgdocs/showcase/charlie-on-sorcha/index.mdx
new file mode 100644
index 00000000000..56db564bdd8
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-on-sorcha/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 1
+caption: 'A pair of Charlie Chinos on Sorcha'
+date: '2021-05-16'
+intro: 'Sorcha is posing in a pair of Charlie chinos .'
+title: 'Charlie on Sorcha'
+tags: ['charlie']
+---
+
+
+
+Sorcha is posing in a pair of [Charlie chinos](/designs/charlie/).
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/charlie-shorts/index.mdx b/sites/orgdocs/showcase/charlie-shorts/index.mdx
new file mode 100644
index 00000000000..2ef87d63ae1
--- /dev/null
+++ b/sites/orgdocs/showcase/charlie-shorts/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'William'
+caption: 'A colorful pair of Charlies'
+date: '2022-07-29'
+intro: 'This cheerful version of Charlie is one of our favorite makes to date! William shared:'
+title: 'Charlie shorts'
+tags: ['charlie']
+---
+
+
+
+This cheerful version of Charlie is one of our favorite makes to date! William shared:
+
+> Turned the Charlie chinos into shorts. They aren't perfect, but they fit comfortably and I learned from the experience.
diff --git a/sites/orgdocs/showcase/claire-does-sven/index.mdx b/sites/orgdocs/showcase/claire-does-sven/index.mdx
new file mode 100644
index 00000000000..d1e1b6e9c59
--- /dev/null
+++ b/sites/orgdocs/showcase/claire-does-sven/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: "Not sure what's the most adorable here. The sweater or the girl."
+date: '2018-12-18'
+intro: 'Claire made this Sven in a red/black striped jersey and added what we can only assume is her spirit animal.'
+title: 'Sven by Claire'
+tags: ['sven']
+---
+
+
+
+Claire made this Sven in a red/black striped jersey and added what we can only assume is her spirit animal.
diff --git a/sites/orgdocs/showcase/colorful-hi-by-zag/index.mdx b/sites/orgdocs/showcase/colorful-hi-by-zag/index.mdx
new file mode 100644
index 00000000000..03e5d806769
--- /dev/null
+++ b/sites/orgdocs/showcase/colorful-hi-by-zag/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'Zag'
+caption: 'This Hi is tiny but mighty!'
+date: '2023-01-22'
+intro: 'Super Colorful Hi by Zag'
+title: 'Super Colorful Hi by Zag'
+tags: ['hi']
+authors: 28322
+---
+
+
+
+FreeSewing user Zag shared this about their new teeny tiny Hi: "I made an itty bitty Hi (I'm renting so can't fit a full size one 😆), with loads of colours to fit my gender! I did it by hand so I made everything way more difficult for myself, and it was hard doing it so small (20%), but got there in the end."
+
+We think it's incredible!
+
+
+
diff --git a/sites/orgdocs/showcase/comixminx-shins/index.mdx b/sites/orgdocs/showcase/comixminx-shins/index.mdx
new file mode 100644
index 00000000000..90b729c38bf
--- /dev/null
+++ b/sites/orgdocs/showcase/comixminx-shins/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 22141
+caption: 'Navy Shin trunks for a matched swimming costume'
+date: '2023-01-16'
+intro: 'FreeSewing user comixminx sewed up a storm over the winter holiday season, including these fantastic Shin swimming trunks for several family members!'
+title: 'Shins by Comixminx'
+tags: ['shin']
+---
+
+
+
+FreeSewing user comixminx sewed up a storm over the winter holiday season, including these fantastic Shin swimming trunks for several family members!
+
+
+
+
+Plus, the navy ones in the main image have a matching Teagan top for a swimming costume that you can check out here:
+[Two Teagans for Swimming](https://freesewing.org/showcase/teagans-for-swimming/)
diff --git a/sites/orgdocs/showcase/corduroy-theo/index.mdx b/sites/orgdocs/showcase/corduroy-theo/index.mdx
new file mode 100644
index 00000000000..97c65383aa0
--- /dev/null
+++ b/sites/orgdocs/showcase/corduroy-theo/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'Gus in his brown corduroys'
+date: '2017-01-17'
+intro: 'Corduroy trousers for Gus, by Fabricated'
+title: 'Corduroy trousers for Gus, by Fabricated'
+tags: ['theo']
+---
+
+
+
+This picture is from the [fabricated.com](http://fabrickated.com/) blog.
+You should read [the entire
+post](http://fabrickated.com/2017/01/21/manswap-7-finishing-the-brown-corduroy-trousers/).
diff --git a/sites/orgdocs/showcase/cornelius-by-atightshipwreck/index.mdx b/sites/orgdocs/showcase/cornelius-by-atightshipwreck/index.mdx
new file mode 100644
index 00000000000..2f32d3602bf
--- /dev/null
+++ b/sites/orgdocs/showcase/cornelius-by-atightshipwreck/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'ATightShipwreck'
+caption: 'Cornelius with hips!'
+date: '2022-07-23'
+intro: 'We dig these Cornelius breeches made by ATightShipwreck! They shared:'
+title: 'Cornelius cycling breeches by ATightShipwreck'
+tags: ['cornelius']
+---
+
+
+
+We dig these Cornelius breeches made by ATightShipwreck! They shared:
+
+> I have finished a pair of Cornelius Breeches. I do believe I added 3 inches of ease for the sake of "this body has hips"
+
+> I used a contrasting fabric for the pocket lining and added belt loops as well (Because I am a modern person with needs)
+
+
+
diff --git a/sites/orgdocs/showcase/cornelius-by-drew/index.mdx b/sites/orgdocs/showcase/cornelius-by-drew/index.mdx
new file mode 100644
index 00000000000..e5acfe04ae1
--- /dev/null
+++ b/sites/orgdocs/showcase/cornelius-by-drew/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'unknown'
+caption: 'The Cornelius cycling breeches in linen'
+date: '2021-07-26'
+intro: 'Drew S. made this cool pair of trousers in linen, their first FreeSewing pattern and also first time making trousers! Drew shared:'
+title: "Drew S.'s Cornelius"
+tags: ['cornelius']
+---
+
+
+
+Drew S. made this cool pair of trousers in linen, their first FreeSewing pattern and also first time making trousers! Drew shared:
+
+> I finished the Cornelius cycling breeches, my first freesewing make! It was my first time ever making trousers, so it was a struggle to wrap my head around the button fly. But it was completely worth it for a comfy pair of linen breeches!
+>
+> They turned out fairly loose in the waist, which is great [...] But I'm thinking about adding a cinch to the back, like you would see on the back of a vest, for days when I want it tighter
+
+
+
+:::note
+This picture is from Drew S. on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/cornelius-by-wouter/index.mdx b/sites/orgdocs/showcase/cornelius-by-wouter/index.mdx
new file mode 100644
index 00000000000..e9c4776303f
--- /dev/null
+++ b/sites/orgdocs/showcase/cornelius-by-wouter/index.mdx
@@ -0,0 +1,23 @@
+---
+maker: 'Wouter.vdub'
+caption: "Cornelius cycling breeches by Wouter, feat. cyclist's calves"
+date: '2021-03-17'
+intro: 'Wouter created the Cornelius cycling breeches pattern based on the Keystone systems. Read more on the FreeSewing blog .'
+title: 'Cornelius by Wouter'
+tags: ['cornelius']
+authors: 132
+---
+
+
+
+Wouter created the Cornelius cycling breeches pattern based on the Keystone systems. Read more [on the FreeSewing blog](https://freesewing.org/blog/cornelius-cycling-breeches/).
+
+Wouter also shares on [the Instagram feed @Wouter.vdub](https://www.instagram.com/Wouter.vdub/) and [blogs at ShirtArtistry](https://shirtartistry.blog/).
+
+
+
+
+
+:::note
+This picture is from Wouter on Discord. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/creos-bella-body-block-with-tweaks/index.mdx b/sites/orgdocs/showcase/creos-bella-body-block-with-tweaks/index.mdx
new file mode 100644
index 00000000000..8b97f4ac82b
--- /dev/null
+++ b/sites/orgdocs/showcase/creos-bella-body-block-with-tweaks/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'Creo'
+caption: 'Bella with adjustments'
+date: '2022-08-08'
+intro: 'Creo shared their Bella body block in the FreeSewing Discord chat. They made a few adjustments to achieve an excellent fit! Comments on the adjustments:'
+title: "Creo's Bella body block with tweaks"
+tags: ['bella']
+---
+
+
+
+Creo shared their Bella body block in the FreeSewing Discord chat. They made a few adjustments to achieve an excellent fit! Comments on the adjustments:
+
+> That's the Bella I'll use in the future. I removed the bust dart and altered the waist dart a bit but otherwise made few alterations. The back will remained unchanged since it fit me perfectly right away.
+
+Here is one more image of the adjusted Bella:
+
+
+
+Here are a few images of the first Bella made straight off the default settings, no alterations (except splitting the front like suggested for easier fitting):
+
+
+
+
diff --git a/sites/orgdocs/showcase/danyuljohnson-wahid-benjamin/index.mdx b/sites/orgdocs/showcase/danyuljohnson-wahid-benjamin/index.mdx
new file mode 100644
index 00000000000..5c3a6b69ba5
--- /dev/null
+++ b/sites/orgdocs/showcase/danyuljohnson-wahid-benjamin/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'danyuljohnson'
+caption: "Outfit for their bestie's white themed wedding feat. Wahid and Benjamin"
+date: '2021-09-17'
+intro: 'We are in love with this gorgeous outfit featuring the Wahid and Benjamin patterns! The maker said:'
+title: "danyuljohnson's brilliant Wahid and Benjamin"
+tags: ['wahid', 'benjamin']
+---
+
+
+
+We are in love with this gorgeous outfit featuring the Wahid and Benjamin patterns! The maker said:
+
+> My bestie had a white themed wedding... Made a Wahid waistcoat & Benjamin bow tie for myself (trousers & shirt weren't freesewing patterns)! Quite proud & getting ALL the love from the Curvy sewing community group on FB!
+
+Such a great look for what sounds like a fabulous event!
diff --git a/sites/orgdocs/showcase/diana-by-deby/index.mdx b/sites/orgdocs/showcase/diana-by-deby/index.mdx
new file mode 100644
index 00000000000..79d83c74aa1
--- /dev/null
+++ b/sites/orgdocs/showcase/diana-by-deby/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Deby'
+caption: 'A drapey Diana top'
+date: '2021-10-18'
+intro: 'This gorgeous Diana top is by Deby, who chose to sew it without the sleeves.'
+title: "Deby's sleeveless Diana"
+tags: ['diana']
+---
+
+
+
+This gorgeous Diana top is by Deby, who chose to sew it without the sleeves.
diff --git a/sites/orgdocs/showcase/doll-cathrin/index.mdx b/sites/orgdocs/showcase/doll-cathrin/index.mdx
new file mode 100644
index 00000000000..780683f89ca
--- /dev/null
+++ b/sites/orgdocs/showcase/doll-cathrin/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'MagicantAce'
+caption: 'This tiny Cathrin was made without boning'
+date: '2021-10-23'
+intro: 'The brilliant MagicantAce is back with another doll pattern, this tiny Cathrin corset!'
+title: 'A doll version of Cathrin'
+tags: ['cathrin']
+authors: 24546
+---
+
+
+
+The brilliant MagicantAce is back with another doll pattern, this tiny Cathrin corset!
+
+He shared:
+
+> The secret is the topstitching serves as the structural element instead of boning, since this is a doll and boning would add too much bulk+serve no real purpose
diff --git a/sites/orgdocs/showcase/doll-hugo/index.mdx b/sites/orgdocs/showcase/doll-hugo/index.mdx
new file mode 100644
index 00000000000..c20606c064a
--- /dev/null
+++ b/sites/orgdocs/showcase/doll-hugo/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'MagicantAce'
+caption: 'A tiny version of Hugo'
+date: '2021-10-31'
+intro: 'Check out the details on this miniature version of Hugo, modeled by a doll!'
+title: 'A doll-sized Hugo sweatshirt'
+tags: ['hugo']
+---
+
+
+
+Check out the details on this miniature version of Hugo, modeled by a doll!
diff --git a/sites/orgdocs/showcase/doll-simone/index.mdx b/sites/orgdocs/showcase/doll-simone/index.mdx
new file mode 100644
index 00000000000..a3158f691a6
--- /dev/null
+++ b/sites/orgdocs/showcase/doll-simone/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'MagicantAce'
+caption: 'Simone worn by a doll'
+date: '2021-12-19'
+intro: 'MagicantAce shared these excellent photos of Simone worn by a doll. He said he diverged from the instructions in favor of what worked best for him, and that the cute topstitched heart detail (an impulse addition!) was sewn by machine!'
+title: 'A doll version of Simone'
+tags: ['simone']
+---
+
+
+
+MagicantAce shared these excellent photos of Simone worn by a doll. He said he diverged from the instructions in favor of what worked best for him, and that the cute topstitched heart detail (an impulse addition!) was sewn by machine!
+
+
diff --git a/sites/orgdocs/showcase/doll-waralee-pants/index.mdx b/sites/orgdocs/showcase/doll-waralee-pants/index.mdx
new file mode 100644
index 00000000000..9c90a882bd7
--- /dev/null
+++ b/sites/orgdocs/showcase/doll-waralee-pants/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'MagicantAce'
+caption: 'These Waralees feature a lovely fabric choice'
+date: '2023-05-03'
+intro: 'Doll Waralee pants'
+title: 'Doll Waralee pants'
+tags: ['waralee']
+---
+
+
+
+These tiny, stylish Waralee pants are sewn by MagicantAce and modeled by doll "Annika"!
+
+
diff --git a/sites/orgdocs/showcase/drop-shoulder-sven/index.mdx b/sites/orgdocs/showcase/drop-shoulder-sven/index.mdx
new file mode 100644
index 00000000000..dde7d6ee636
--- /dev/null
+++ b/sites/orgdocs/showcase/drop-shoulder-sven/index.mdx
@@ -0,0 +1,71 @@
+---
+maker: 'Jasmine'
+caption: 'Holding out the arm of this drop-shoulder Sven lets you really get a feel for the effect of the modification'
+date: '2023-01-19'
+intro: "So FreeSewing user Jasmine created this awesome drop-shoulder Sven with a little sleeve cap pleat, and it's incredible. But it gets better, because she created a write-up on how to do the whole thing. Check out the finished product here, but scroll down if you want the whole how-to!"
+title: 'Drop Shoulder Sven'
+tags: ['sven']
+---
+
+
+
+So FreeSewing user Jasmine created this awesome drop-shoulder Sven with a little sleeve cap pleat, and it's incredible. But it gets better, because she created a write-up on how to do the whole thing. Check out the finished product here, but scroll down if you want the whole how-to!
+
+
+
+
+
+
+### Instructions
+
+Let’s start with a disclaimer: is this the official right way to make this adjustment? Probably not. I cobbled it together by staring at a dropped shoulder sweater of my own, and [this video](https://youtu.be/BSHmewfhinY), though it uses knitted styles, helped a great deal in figuring out what the shape of the pattern pieces might be. A pre-mockup mock-up, and a wearable mock-up in cotton jersey later, I was ready to cut into my fabric of choice.
+
+Now, you can find lots of more fitted sweaters that still have that dropped shoulder look, but I really wanted mine to be oversized and not-quite-cropped. Can I take credit for the design choices I made?
+
+Actually, no. I saw the design online but didn’t want to pay through the nose to ship a sweater from the US to Belgium and then pay some more to get it past customs.
+
+That’s where FreeSewing, and the Sven sweater came in.
+
+First, I raised the hip and chest ease as high as it would go, taking me from this:
+
+
+
+... to this:
+
+
+
+Now, you also have a shoulder ease option, but it won’t go high enough for a drastic dropped shoulder style. Basically, you want the curve of the armscye to be much more shallow.
+
+
+
+After I printed and taped together my pattern, I extended the line of the shoulder with a straight ruler.
+
+
+
+Then, before I reshaped the curve of the armscye, I estimated how low I wanted my dropped shoulder to be with a tape measure, and marked the length on both the front and back pattern pieces, on my extended shoulder line.
+
+
+
+While the original pattern has a slightly shallower armscye on the back panel than the front, my pre-mockup mockup taught me that for a dropped shoulder, a deeper armscye would lead to excess fabric bunching up under my armpit, so I drafted the front and back armscye to be more or less identical, which seemed to work much better in my wearable mockup.
+
+Just remember to keep the length of that shoulder line the same at front and back.
+
+Then, I measured the difference between the original armscye and the redrafted one...
+
+
+
+... and used that to adjust the sleeve head, which also needs a much shallower curve. Using the measurement from your adjusted armscye, mark a straight line down from the center top of your sleeve. That’s how much material you need to remove from your sleeve pattern piece.
+
+
+
+Now, as far as I could make out, this adjustment leaves you with some excess width on the sleeve, so it might be a bit much to ease into the armscye. However, since I wanted a poofy sleeve, I kept all that excess material, and turned it into a box pleat at the top of my sleeve.
+
+The inspiration for this project features the same pleat detail and I loved it, so I ran with it.
+
+
+
+This meant keeping the top of the curve a bit wider, since that would have to incorporate that extra width for the box pleat. Since I drafted the armscye to be identical on front and back, I kept the sleeve head symmetrical to match.
+
+Now, this was all rather experimental, so I would absolutely advise doing at least one mockup, but I can also absolutely advise this style if you like layering up in cooler weather.
+
+The oversized style and the puffy sleeve leave you lots of room for more than one underlayer and it all makes for excellent cozy lounge wear as well.
diff --git a/sites/orgdocs/showcase/duvet-trousers-ahoy/index.mdx b/sites/orgdocs/showcase/duvet-trousers-ahoy/index.mdx
new file mode 100644
index 00000000000..ac6291da64c
--- /dev/null
+++ b/sites/orgdocs/showcase/duvet-trousers-ahoy/index.mdx
@@ -0,0 +1,23 @@
+---
+maker: 'comixminx'
+caption: 'These trousers are made from a retired duvet cover'
+date: '2022-06-09'
+intro: "These excellent Paco pants were comixminx's first FreeSewing pattern that she has made for herself! She provided some helpful notes on the process:"
+title: 'Duvet trousers ahoy!'
+tags: ['paco']
+---
+
+
+
+These excellent Paco pants were comixminx's first FreeSewing pattern that she has made for herself! She provided some helpful notes on the process:
+
+> They are comfy 🙂 I did have to make some adjustments and I did some things a bit differently. The legs needed a bit of widening from the knee downward, and I added a yoke to raise the back rise by quite a few cm - without these changes it would have been hard to raise my knees without showing my bum.
+
+> I also did a two-part waistband with belt loops and a flat front (ideas taken from another pattern I’ve done recently for my kid).
+
+> I included one welt back pocket - the cutting instructions say to cut 2 back pocket welts but this must be a mistake, it is 2 per welt pocket that is needed (and as the instructions also say to cut out two back pocket bags the intention is clearly for you to make two welt back pockets).
+
+Below we've included a picture of the yoke pattern piece and the yoke in place.
+
+
+
diff --git a/sites/orgdocs/showcase/ellafay-simon-shirt/index.mdx b/sites/orgdocs/showcase/ellafay-simon-shirt/index.mdx
new file mode 100644
index 00000000000..ba34770b027
--- /dev/null
+++ b/sites/orgdocs/showcase/ellafay-simon-shirt/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Ellafay Lagaffe'
+caption: "Ellafay's Simon shirt"
+date: '2021-09-19'
+intro: 'Ellafay said:'
+title: "Ellafay's Simon shirt"
+tags: ['simon']
+---
+
+
+
+Ellafay said:
+
+> A toile made to test a tailor-made pattern for my husband. Made from a wall hanging that had faded
+
+> I'm happy with it! I will be able to make him shirts :)
diff --git a/sites/orgdocs/showcase/embroidered-opal-shortalls/index.mdx b/sites/orgdocs/showcase/embroidered-opal-shortalls/index.mdx
new file mode 100644
index 00000000000..afe9eb2ec45
--- /dev/null
+++ b/sites/orgdocs/showcase/embroidered-opal-shortalls/index.mdx
@@ -0,0 +1,20 @@
+---
+title: 'Embroidered Opal Shortalls'
+caption: 'Thrunic wearing his Opal shortalls over a green one-piece outfit.'
+date: '2024-05-22'
+intro: 'Embroidered Opal Shortalls'
+authors: 33070
+tags: ['opal']
+---
+
+
+
+These are a pair of knee-length shortalls (or overall shorts) made from midweight black denim. All seven available pockets and the hammer loop are included in this Opal, with a large pentagon style chosen for the bib pocket.
+
+The seams are faux flat-felled seams made using contrasting gold-colored thread. The seam allowance is 5/8" and the hem allowance is twice the seam allowance (1 1/4") Both the waistband and the bib placket were made using three folds. The waistband has a width of 2 cm while the bib placket has a width of 3 cm.
+
+Leg length of 44%, strap length of 160%, and strap width or 1 1/2" was used. Eases around the body are around +25%, with a 3.7% crotch drop and +66.8% leg hem ease for shorts-style legs.
+
+The dragonfly, Tyrannosaurus, and Ankylosaurus embroideries are my designs based off of images from the Wikimedia Commons. The butterfly embroidery is from the Inkstitch tutorial. The two Stitches, the autism heart design, and the autism design on the back are not mine.
+
+
diff --git a/sites/orgdocs/showcase/fantastic-four-hugo/index.mdx b/sites/orgdocs/showcase/fantastic-four-hugo/index.mdx
new file mode 100644
index 00000000000..66ce9f2ea7c
--- /dev/null
+++ b/sites/orgdocs/showcase/fantastic-four-hugo/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: "I'm digging this look."
+date: '2018-02-05'
+intro: 'This image is from the Instagram feed of Gillian .'
+title: 'A Fantastic Four themed Hugo'
+tags: ['hugo']
+---
+
+
+
+[This image](https://www.instagram.com/p/Beyg_MMhMH0PsSBwQkKVqMT7pObcJ0Ffb7jAAw0/?taken-by=gilliancrafts)
+is from [the Instagram feed of Gillian](https://www.instagram.com/gilliancrafts/).
+
+It is published here with permission.
diff --git a/sites/orgdocs/showcase/ferdis-first-simon-shirt/index.mdx b/sites/orgdocs/showcase/ferdis-first-simon-shirt/index.mdx
new file mode 100644
index 00000000000..e79cb37115f
--- /dev/null
+++ b/sites/orgdocs/showcase/ferdis-first-simon-shirt/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'ferdi'
+caption: "Ferdi's very first Simon shirt"
+date: '2021-11-07'
+intro: 'A handsome example of the Simon shirt by Ferdi, who shared:'
+title: "Ferdi's first Simon shirt"
+tags: ['simon']
+authors: 1972
+---
+
+
+
+A handsome example of the Simon shirt by Ferdi, who shared:
+
+> The first Simon shirt made by ferdi with cheap fabric for testing the pattern and my skills. Oops, the button placket got on the wrong side. But no matter, overall it came out well and fits excellently.
diff --git a/sites/orgdocs/showcase/fifi-simone/index.mdx b/sites/orgdocs/showcase/fifi-simone/index.mdx
new file mode 100644
index 00000000000..d64624cf724
--- /dev/null
+++ b/sites/orgdocs/showcase/fifi-simone/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Fifi'
+caption: 'A perfect purple Simone'
+date: '2022-01-22'
+intro: "This delightful Simone shirt was made by Fifi! They shared that normally it's hard to find shirts with sleeves long enough, and the Simone pattern allowed them to design something that kept their wrists cozy."
+title: "Fifi's positively perfect purple Simone shirt"
+tags: ['simone']
+---
+
+
+
+This delightful Simone shirt was made by Fifi! They shared that normally it's hard to find shirts with sleeves long enough, and the Simone pattern allowed them to design something that kept their wrists cozy.
diff --git a/sites/orgdocs/showcase/fifis-paco-pjs/index.mdx b/sites/orgdocs/showcase/fifis-paco-pjs/index.mdx
new file mode 100644
index 00000000000..757b3792f1d
--- /dev/null
+++ b/sites/orgdocs/showcase/fifis-paco-pjs/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Fifi'
+caption: 'Pajama pants made from the Paco pattern'
+date: '2021-12-18'
+intro: 'Fifi adjusted the Paco pants pattern to achieve an oft-requested result: FreeSewing PJ pants!'
+title: "Fifi's Paco PJs"
+tags: ['paco']
+---
+
+
+
+Fifi adjusted the Paco pants pattern to achieve an oft-requested result: FreeSewing PJ pants!
+
+> My new Paco PJs! (Maximum ease for baggy comfort)
+
+Fifi is teaching a beginner course on sewing PJs and says, "These are perfect because they will set up an account at freesewing, learn how to do measurements, learn how to calculate fabric yardage, which you wouldn't really learn much about with big brand sewing patterns." Very cool!
diff --git a/sites/orgdocs/showcase/fifis-second-simone/index.mdx b/sites/orgdocs/showcase/fifis-second-simone/index.mdx
new file mode 100644
index 00000000000..6e1266fdf6a
--- /dev/null
+++ b/sites/orgdocs/showcase/fifis-second-simone/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Fifi'
+caption: 'Another lovely Simone shirt by Fifi'
+date: '2022-01-22'
+intro: "Fifi is back with a second great Simone shirt! Don't miss Fifi's first Simone shirt in the showcase."
+title: "Fifi's second Simone shirt"
+tags: ['simone']
+---
+
+
+
+Fifi is back with a second great Simone shirt! Don't miss Fifi's first Simone shirt in the showcase.
diff --git a/sites/orgdocs/showcase/fighter-hoodie/index.mdx b/sites/orgdocs/showcase/fighter-hoodie/index.mdx
new file mode 100644
index 00000000000..26223d4c5c2
--- /dev/null
+++ b/sites/orgdocs/showcase/fighter-hoodie/index.mdx
@@ -0,0 +1,26 @@
+---
+maker: 'unknown'
+caption: "Anne's husband Sigvard is a trainer at the local kick boxing club. Hence the name fighter hoodie"
+date: '2017-11-20'
+intro: 'The fighter hoodie: Hugo with a zip'
+title: 'The fighter hoodie: Hugo with a zip'
+tags: ['hugo']
+---
+
+
+
+
+
+
+
+
+
+
+
+:::tip See the original on [@Topstitched](/users/user?id=392)'s blog
+
+These picture are from the [Back again with the fighter hoodie](http://www.topstitched.net/?p=1431)
+blog post on [topstitched.net](http://www.topstitched.net/).
+
+They are reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/fintastic-simon/index.mdx b/sites/orgdocs/showcase/fintastic-simon/index.mdx
new file mode 100644
index 00000000000..95e85d48767
--- /dev/null
+++ b/sites/orgdocs/showcase/fintastic-simon/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'The creator in their finished Simon Shirt with fish and cherry blossoms'
+date: '2023-01-14'
+intro: 'Check out this incredible Simon from a FreeSewing user who grabbed a pic of their new shirt out in the wild. And at a fabric shop, no less! The pattern matching across the front in particular is an utter delight.'
+title: 'A Fin-tastic Simon Shirt'
+tags: ['simon']
+---
+
+
+
+Check out this incredible Simon from a FreeSewing user who grabbed a pic of their new shirt out in the wild. And at a fabric shop, no less! The pattern matching across the front in particular is an utter delight.
diff --git a/sites/orgdocs/showcase/first-version-dona-simone/index.mdx b/sites/orgdocs/showcase/first-version-dona-simone/index.mdx
new file mode 100644
index 00000000000..ac4c7e98462
--- /dev/null
+++ b/sites/orgdocs/showcase/first-version-dona-simone/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'The first version of Dona, an extension of Simone'
+date: '2023-05-03'
+intro: 'This variation of Simone will soon be extended into its own design, the Dona dress!'
+title: 'The Simone (soon to be Dona!) shirt dress'
+tags: ['simone']
+---
+
+
+
+This variation of Simone will soon be extended into its own design, the Dona dress!
diff --git a/sites/orgdocs/showcase/flat-front-bruces/index.mdx b/sites/orgdocs/showcase/flat-front-bruces/index.mdx
new file mode 100644
index 00000000000..2f0e63bce28
--- /dev/null
+++ b/sites/orgdocs/showcase/flat-front-bruces/index.mdx
@@ -0,0 +1,15 @@
+---
+authors: 22141
+caption: 'A galactically good pair of Bruces'
+date: '2023-01-16'
+intro: "There's well-established precedent that once you make a pair of Bruces you like, you'll end up making tons more of them. FreeSewing extraordinaire follows in this grand tradition, crafting several Bruces with a flat front for a family member. We love the mix-and-match patterns and contrasting elastic on these awesome undies."
+title: 'Flat-front Bruces'
+tags: ['bruce']
+---
+
+
+
+There's well-established precedent that once you make a pair of Bruces you like, you'll end up making tons more of them. FreeSewing extraordinaire follows in this grand tradition, crafting several Bruces with a flat front for a family member. We love the mix-and-match patterns and contrasting elastic on these awesome undies.
+
+
+
diff --git a/sites/orgdocs/showcase/floral-aaron/index.mdx b/sites/orgdocs/showcase/floral-aaron/index.mdx
new file mode 100644
index 00000000000..e2bfc430732
--- /dev/null
+++ b/sites/orgdocs/showcase/floral-aaron/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'Natalia Sayang'
+caption: 'Did you know that the "A" in A-shirt refers to the triangular shape of the garment?'
+date: '2021-07-29'
+intro: 'This Aaron tank top was made by Nat, who shared:'
+title: 'Floral Aaron'
+tags: ['aaron']
+---
+
+
+
+This Aaron tank top was made by Nat, who shared:
+
+> I made an Aaron A-shirt! I didn't sew anything inside out, which is a testament to the clear and well-illustrated instructions. I used the default options and I'm very happy with the fit. The fabric is a mystery secondhand knit with two-way stretch. For the knit binding, I used a zigzag stitch on a regular sewing machine since I didn't have a twin needle or coverlock machine.
+
+
+
+
+
+:::note
+This picture is from Nat on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/floral-bruce-boxer-briefs-by-william/index.mdx b/sites/orgdocs/showcase/floral-bruce-boxer-briefs-by-william/index.mdx
new file mode 100644
index 00000000000..eb16b46742d
--- /dev/null
+++ b/sites/orgdocs/showcase/floral-bruce-boxer-briefs-by-william/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'William'
+caption: 'A pair of Bruce boxer briefs'
+date: '2022-04-27'
+intro: "This is William's first pair of Bruce boxer briefs. We are huge fans of the fabric choice!"
+title: 'Floral Bruce boxer briefs by William'
+tags: ['bruce']
+---
+
+
+
+This is William's first pair of Bruce boxer briefs. We are huge fans of the fabric choice!
diff --git a/sites/orgdocs/showcase/floral-camoflaged-charlie-chinos/index.mdx b/sites/orgdocs/showcase/floral-camoflaged-charlie-chinos/index.mdx
new file mode 100644
index 00000000000..c20981b3b39
--- /dev/null
+++ b/sites/orgdocs/showcase/floral-camoflaged-charlie-chinos/index.mdx
@@ -0,0 +1,17 @@
+---
+authors: 1
+date: '2022-04-27'
+intro: 'The FreeSewing community fell head over heels for these Charlie chinos by joost. They are so great that they -- no joke -- earned him free pancakes.'
+title: 'Floral "camouflaged" Charlie chinos'
+tags: ['charlie']
+---
+
+
+
+The FreeSewing community fell head over heels for these Charlie chinos by joost. They are so great that they -- no joke -- earned him free pancakes.
+
+You can see the making process of these pants in a [Twitter thread](https://twitter.com/j__st/status/1516078829550411782).
+
+
+
+
diff --git a/sites/orgdocs/showcase/florence-jv/index.mdx b/sites/orgdocs/showcase/florence-jv/index.mdx
new file mode 100644
index 00000000000..bf85a062921
--- /dev/null
+++ b/sites/orgdocs/showcase/florence-jv/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'RedBlaqueGolden'
+caption: 'Not all face masks are created equal'
+date: '2020-07-12'
+intro: 'JV is a prolific maker and a friend of the site. True to form, they made this stunning Florence face mask.'
+title: 'JV does Florence'
+tags: ['florence']
+---
+
+
+
+JV is a prolific maker and a friend of the site. True to form, they made this stunning Florence face mask.
diff --git a/sites/orgdocs/showcase/florence/index.mdx b/sites/orgdocs/showcase/florence/index.mdx
new file mode 100644
index 00000000000..640d078dbe7
--- /dev/null
+++ b/sites/orgdocs/showcase/florence/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 1
+caption: "There's so many people who made our face mask, here's just a few of them"
+date: '2020-07-12'
+intro: 'When we published our face mask in February, we did not anticipate that it would blow up the way it did.'
+title: 'Various Florence makers'
+tags: ['florence']
+---
+
+
+
+When we published our face mask in February, we did not anticipate that it would blow up the way it did.
+
+Countless of people have made our mask, and in the avalange of questions and feedback, we haven't really
+kept trach of who did what.
+
+Above is selection of people who shared their makes with us on social media.
+Thanks to all of them for doing so, and please do the same if you'd like us to showcase your makes.
diff --git a/sites/orgdocs/showcase/florent-by-alberto/index.mdx b/sites/orgdocs/showcase/florent-by-alberto/index.mdx
new file mode 100644
index 00000000000..07f063cecb5
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-alberto/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'A Florent flat cap featuring split colours'
+date: '2021-07-07'
+intro: 'This double colour flat cap was made by Alberto G. S., who says that the secret of the colour split is to use the existing points on the pattern! We are super impressed with this fashionable take on Florent.'
+title: "Alberto's double colour flat cap"
+tags: ['florent']
+---
+
+
+
+This double colour flat cap was made by Alberto G. S., who says that the secret of the colour split is to use the existing points on the pattern! We are super impressed with this fashionable take on Florent.
+
+:::note
+This picture is from Alberto Ginel Salvador on Facebook. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/florent-by-alexandre/index.mdx b/sites/orgdocs/showcase/florent-by-alexandre/index.mdx
new file mode 100644
index 00000000000..2d96cf6d39e
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-alexandre/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'A wonderful Florent'
+date: '2021-06-12'
+intro: 'What a great reuse of fabric into an adorable Florent cap. Alexandre said:'
+title: 'Florent flat cap by Alexandre'
+tags: ['florent']
+---
+
+
+
+What a great reuse of fabric into an adorable Florent cap. Alexandre said:
+
+> I’ve just transformed an old denim into a flat cap ! Model is Florent from @freesewing_org (dang, I’m proud !)
+
+:::note
+This picture is from Alexandre, [@bankair on Twitter](https://twitter.com/bankair). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/florent-by-elske/index.mdx b/sites/orgdocs/showcase/florent-by-elske/index.mdx
new file mode 100644
index 00000000000..32649ed8a56
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-elske/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'A Florent flat cap by Elske'
+date: '2021-05-23'
+intro: 'This delightful Florent flat cap was made by Elske to match the waistcoat she made earlier.'
+title: 'Florent by Elske'
+tags: ['florent']
+---
+
+
+
+This delightful Florent flat cap was made by Elske to match the waistcoat she made earlier.
+
+:::note
+This picture is from Elske, [@elskes_threads on Instagram](https://www.instagram.com/elskes_threads/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/florent-by-enno/index.mdx b/sites/orgdocs/showcase/florent-by-enno/index.mdx
new file mode 100644
index 00000000000..562b0fa9f6e
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-enno/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'Enno made this Florent in a gorgeous mustard'
+date: '2019-03-23'
+intro: "Enno's got a vest to go with it too:"
+title: 'Florent by Enno'
+tags: ['florent']
+---
+
+
+
+Enno's got a vest to go with it too:
+
+
diff --git a/sites/orgdocs/showcase/florent-by-michele/index.mdx b/sites/orgdocs/showcase/florent-by-michele/index.mdx
new file mode 100644
index 00000000000..976307c46d9
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-michele/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'A green Florent by Michele Nel'
+date: '2017-12-12'
+intro: ' '
+title: 'Florent by Michele Nel'
+tags: ['florent']
+---
+
+
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/florent-by-wim/index.mdx b/sites/orgdocs/showcase/florent-by-wim/index.mdx
new file mode 100644
index 00000000000..27f718ead9e
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-wim/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Florent flat cap'
+date: '2018-09-21'
+intro: "Here's Wim with a Florent flap cap."
+title: 'A Florent flat cap by Wim'
+tags: ['florent']
+---
+
+
+
+Here's Wim with a Florent flap cap.
+
+
+
+
diff --git a/sites/orgdocs/showcase/florent-by-wouter/index.mdx b/sites/orgdocs/showcase/florent-by-wouter/index.mdx
new file mode 100644
index 00000000000..21ef04767d6
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-by-wouter/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'Wouter.vdub'
+caption: 'Turned out really well for a toile'
+date: '2017-12-11'
+intro: 'A test of Florent to see if the pattern works for others, by Wouter.vdub'
+title: 'A test of Florent to see if the pattern works for others, by Wouter.vdub'
+tags: ['florent']
+authors: 132
+---
+
+
+
+
+
+
+Wouter writes:
+
+> This was made as a toile, and although precision was used, some aspects could
+> have been improved by using hand stitching, instead of machine stitching.
+>
+> Also, the pattern was printed with the standard `ease` of 1cm, and that
+> was taken in at the back seam after the pieces were cut out.
diff --git a/sites/orgdocs/showcase/florent-cap-by-ferdi/index.mdx b/sites/orgdocs/showcase/florent-cap-by-ferdi/index.mdx
new file mode 100644
index 00000000000..8390b4db19b
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-cap-by-ferdi/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'ferdi'
+caption: 'An oil skin Florent cap'
+date: '2021-11-07'
+intro: 'This refined Florent cap is by Ferdi, who said:'
+title: 'Florent cap by Ferdi'
+tags: ['florent']
+authors: 1972
+---
+
+
+
+This refined Florent cap is by Ferdi, who said:
+
+> Florent cap by ferdi for rainy days. Oil skin outside, linen inside. This is my second Florent cap. The first one was a bit too wide, and I'm extremely finicky about headwear (as well as sofas and lamps). I will make another one in linen/linen for summer. Oh, under the jacket it's my Simon shirt.
+
+
+
+
diff --git a/sites/orgdocs/showcase/florent-lined-with-lasermonkey12s-favorite-dr-seuss-book/index.mdx b/sites/orgdocs/showcase/florent-lined-with-lasermonkey12s-favorite-dr-seuss-book/index.mdx
new file mode 100644
index 00000000000..8e78493a3a6
--- /dev/null
+++ b/sites/orgdocs/showcase/florent-lined-with-lasermonkey12s-favorite-dr-seuss-book/index.mdx
@@ -0,0 +1,15 @@
+---
+title: "Florent lined with lasermonkey12's favorite Dr Seuss book"
+caption: 'lasermonkey12 looks great in this Florent flat cap'
+date: '2024-01-06'
+intro: "Don't miss the sweet lining fabric on this Florent flat cap."
+tags: ['florent']
+maker: Natalia
+authors: 31287
+---
+
+
+
+Don't miss the sweet lining fabric on this Florent flat cap. Maker lasermonkey12 lined it with her favorite Dr Seuss book:
+
+
diff --git a/sites/orgdocs/showcase/flowery-hawaiian-simon/index.mdx b/sites/orgdocs/showcase/flowery-hawaiian-simon/index.mdx
new file mode 100644
index 00000000000..5cf5439ca61
--- /dev/null
+++ b/sites/orgdocs/showcase/flowery-hawaiian-simon/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'Flowery Hawaiian Simon'
+caption: 'flowery hawaiian Simon'
+date: '2024-04-30'
+intro: 'Simon made with a camp collar (almost a lapel) and short sleeves. Fabric is 100% cotton.'
+authors: 23364
+tags: ['simon']
+---
+
+
+
+
diff --git a/sites/orgdocs/showcase/formal-aaron/index.mdx b/sites/orgdocs/showcase/formal-aaron/index.mdx
new file mode 100644
index 00000000000..3b84fee2256
--- /dev/null
+++ b/sites/orgdocs/showcase/formal-aaron/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'TangerineShark'
+caption: 'TangerineShark in a formal Aaron, bold yellow pants, and the hottest accessory of them all, a respirator'
+date: '2023-01-14'
+intro: 'A formal Aaron, for parties'
+title: 'A formal Aaron, for parties'
+tags: ['aaron']
+authors: 13050
+---
+
+
+
+Hi! TangerineShark here. I made this top for a wedding rehearsal dinner I had to attend in September (back when it was still plenty warm out for the "sun's out, tum's out" philosophy), and believe it or not, it's an Aaron! Perhaps that's not actually super-surprising, but it does have a few modifications to make it a touch more formal.
+
+Namely, I drafted a little all-in-one facing to avoid having any visible stitching, bands, or bindings. Then, I sewed it to the neckline with good sides together, flipped everything inside out, and awkwardly machine-stitched as much of each armpit as I could from the inside. The rest I hand-stitched during video calls (hand-stitching/embroidery/knitting are the best fidgets). To avoid any flippy facings, I tacked down the facing along each side seam with a stitch-in-the-ditch. Last but not least, the hem is blind-stitched by hand.
+
+The textile is a ponte, which meant that I could just leave the raw edges on the insides to avoid lumps and lines at the facing and hem. Word to the wise, though, ponte in general fits a little more snugly than a lot of other knits, so it's the most form-fitting of all my Aarons. That was intentional in this case, but it's good to plan for.
+
+Apologies for the bathroom selfie, but extended family interlopers and a lack of better placed mirrors and all that.... needs must sometimes.
diff --git a/sites/orgdocs/showcase/four-more-bruce-boxers-for-an-nb-kid/index.mdx b/sites/orgdocs/showcase/four-more-bruce-boxers-for-an-nb-kid/index.mdx
new file mode 100644
index 00000000000..e61543bea50
--- /dev/null
+++ b/sites/orgdocs/showcase/four-more-bruce-boxers-for-an-nb-kid/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'Four more Bruce boxers for an NB kid'
+caption: 'Check out the fun leg stitching'
+date: '2024-05-13'
+intro: 'These Bruce boxers were made by comixminx for her NB kid.'
+authors: 22141
+tags: ['bruce']
+---
+
+
+
+These Bruce boxers were made by comixminx for her NB kid. Fantastic fabric and design choices as always.
+
+
diff --git a/sites/orgdocs/showcase/four-versions-of-otis-and-a-bonus-bob/index.mdx b/sites/orgdocs/showcase/four-versions-of-otis-and-a-bonus-bob/index.mdx
new file mode 100644
index 00000000000..dbcb1313d66
--- /dev/null
+++ b/sites/orgdocs/showcase/four-versions-of-otis-and-a-bonus-bob/index.mdx
@@ -0,0 +1,25 @@
+---
+title: 'Four versions of Otis and a bonus Bob'
+caption: 'An Otis baby romper and Bob bib'
+date: '2023-10-17'
+intro: 'Wouter made four versions of Otis for newborn Otis, and a Bob to complete the ensemble.'
+tags: ['otis', 'bob']
+maker: Natalia
+authors: 132
+---
+
+
+
+Wouter, the designer, made these:
+
+> Four versions of otis. One with long sleeves, and one that is reversible (don’t try this; figuring out how seams go together and in which sequence causes headaches).
+
+We are head over heels for his adorable fabric choices. The cute baby doesn't hurt.
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/foxy-sven/index.mdx b/sites/orgdocs/showcase/foxy-sven/index.mdx
new file mode 100644
index 00000000000..c531487ecec
--- /dev/null
+++ b/sites/orgdocs/showcase/foxy-sven/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'Sven sweater with red binding and amazing little fox cartoons all over!'
+date: '2023-01-23'
+intro: 'A FreeSewing user drafted this foxy Sven for their boyfriend, and it turned out fantastic!'
+title: 'Foxy Sven Sweater'
+tags: ['sven']
+---
+
+
+
+A FreeSewing user drafted this foxy Sven for their boyfriend, and it turned out fantastic!
diff --git a/sites/orgdocs/showcase/french-terry-sven/index.mdx b/sites/orgdocs/showcase/french-terry-sven/index.mdx
new file mode 100644
index 00000000000..817d5ef13c3
--- /dev/null
+++ b/sites/orgdocs/showcase/french-terry-sven/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'The model is totally walking away with it though.'
+date: '2017-10-10'
+intro: 'This post is originally appeared on the Instagram feed of nadesmakes .'
+title: 'The Sven sweater in a French Terry with little to no stretch'
+tags: ['sven']
+---
+
+
+
+This post is [originally appeared](https://www.instagram.com/p/BaBqKDtDelP/)
+on [the Instagram feed of nadesmakes](https://www.instagram.com/nadesmakes/).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/gender-euphoric-bruces/index.mdx b/sites/orgdocs/showcase/gender-euphoric-bruces/index.mdx
new file mode 100644
index 00000000000..1ad8af9cd8d
--- /dev/null
+++ b/sites/orgdocs/showcase/gender-euphoric-bruces/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Zag'
+caption: 'Flat front Bruces'
+date: '2022-07-29'
+intro: 'Gender euphoric Bruces'
+title: 'Gender euphoric Bruces'
+tags: ['bruce']
+authors: 28322
+---
+
+
+
+Zag (she/they/any) made these Bruce boxers with a flat front and rainbow elastic! They reported "Gender euphoria to the max, thank you for this pattern!" which is just about the best compliment we could ask for.
diff --git a/sites/orgdocs/showcase/green-cathrin/index.mdx b/sites/orgdocs/showcase/green-cathrin/index.mdx
new file mode 100644
index 00000000000..8374cacdf72
--- /dev/null
+++ b/sites/orgdocs/showcase/green-cathrin/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'Natalia Sayang'
+caption: 'A Cathrin corset made from quilting cotton and canvas'
+date: '2021-10-19'
+intro: 'A green 11-panel Cathrin corset'
+title: 'A green 11-panel Cathrin corset'
+tags: ['cathrin']
+authors: 19867
+---
+
+
+
+
+
+
+
+This Cathrin corset was made with a core of canvas fabric and an outer layer of green quilting cotton. It was bound with bias tape.
diff --git a/sites/orgdocs/showcase/green-charlie-wahid/index.mdx b/sites/orgdocs/showcase/green-charlie-wahid/index.mdx
new file mode 100644
index 00000000000..8770b7b2210
--- /dev/null
+++ b/sites/orgdocs/showcase/green-charlie-wahid/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Rob in a sunny backyard garden, wearing an adjusted Wahid with a double breast and matching Charlie trousers.'
+date: '2023-07-05'
+intro: "Are you kidding?!? This Charlie and Wahid duo is so suave and sophisticated it's ridiculous. Made from a green herringbone shetland wool by @sewingdentist on Instagram, we think it's impeccable. Bonus points for the cool double-breasted modification, which you can see even closer below."
+title: 'Green Charlie and Wahid Suit'
+tags: ['charlie', 'wahid']
+---
+
+
+
+Are you kidding?!? This Charlie and Wahid duo is so suave and sophisticated it's ridiculous. Made from a green herringbone shetland wool by [@sewingdentist](https://www.instagram.com/direct/t/101611007905406/sewingdentist) on Instagram, we think it's impeccable. Bonus points for the cool double-breasted modification, which you can see even closer below.
+
+
+
+
diff --git a/sites/orgdocs/showcase/green-wahid/index.mdx b/sites/orgdocs/showcase/green-wahid/index.mdx
new file mode 100644
index 00000000000..80a2f97b72e
--- /dev/null
+++ b/sites/orgdocs/showcase/green-wahid/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'unknown'
+caption: "That's some A-grade unselfish sewing we've got here"
+date: '2016-08-16'
+intro: 'This picture is from the Unselfish Sewing - Wahid Waistcoat blogpost on rememberinggravity.wordpress.com'
+title: 'A green Wahid waistcoat by Rose'
+tags: ['wahid']
+---
+
+
+
+This picture is from the [Unselfish Sewing - Wahid Waistcoat](https://rememberinggravity.wordpress.com/2016/08/17/unselfish-sewing-wahid-waistcoat/)
+blogpost on [rememberinggravity.wordpress.com](https://rememberinggravity.wordpress.com/)
diff --git a/sites/orgdocs/showcase/grey-sven/index.mdx b/sites/orgdocs/showcase/grey-sven/index.mdx
new file mode 100644
index 00000000000..369f0d61ee4
--- /dev/null
+++ b/sites/orgdocs/showcase/grey-sven/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'Ksenia made this Sven for her man.'
+date: '2018-02-05'
+intro: 'This image is from the Instagram feed of Ksenia .'
+title: 'Sven in grey terry A grey terry Sven'
+tags: ['sven']
+---
+
+
+
+[This image](https://www.instagram.com/p/BehvZ1fj4yo/)
+is from [the Instagram feed of Ksenia](https://www.instagram.com/owl.laughing/).
+
+It is published here with permission.
diff --git a/sites/orgdocs/showcase/guin-gingham-simon/index.mdx b/sites/orgdocs/showcase/guin-gingham-simon/index.mdx
new file mode 100644
index 00000000000..efe1d5eaf1a
--- /dev/null
+++ b/sites/orgdocs/showcase/guin-gingham-simon/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Guin'
+caption: 'Guin showing off the lantern sleeves on his new Simon'
+date: '2023-01-27'
+intro: "Guin made this great modified Simon by giving it fun lantern sleeves in a contrasting color that definitely has nothing to do with running out of navy gingham. All's well that ends well, though - his shirt turned out awesome. Also loving the way the stripe matching turned out across the front."
+title: "Guin's Gingham Lantern Simon"
+tags: ['simon']
+authors: 27042
+---
+
+
+
+Guin made this great modified Simon by giving it fun lantern sleeves in a contrasting color that definitely has nothing to do with running out of navy gingham. All's well that ends well, though - his shirt turned out awesome. Also loving the way the stripe matching turned out across the front.
+
+
+
diff --git a/sites/orgdocs/showcase/hand-sewn-test-of-florence/index.mdx b/sites/orgdocs/showcase/hand-sewn-test-of-florence/index.mdx
new file mode 100644
index 00000000000..96f1fc02608
--- /dev/null
+++ b/sites/orgdocs/showcase/hand-sewn-test-of-florence/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'Hand-sewn test of Florence'
+caption: 'A Florence hand-sewn out of scrap from another project.'
+date: '2024-05-26'
+intro: 'Decided to give `Florence` a shot as an aid for pollen allergies after noticing that proper FFP2 masks help a ton. The fabric was scraps left over from a `Simon` I made a while back. It looks nice, but is perhaps not as breathable as it should be.'
+authors: 31336
+tags: ['florence']
+---
+
+
+
+Decided to give `Florence` a shot as an aid for pollen allergies after noticing that proper FFP2 masks help a ton. The fabric was scraps left over from a `Simon` I made a while back. It looks nice, but is perhaps not as breathable as it should be.
diff --git a/sites/orgdocs/showcase/hand-stitched-teagans-by-vili-with-explanation-of-the-stitches/index.mdx b/sites/orgdocs/showcase/hand-stitched-teagans-by-vili-with-explanation-of-the-stitches/index.mdx
new file mode 100644
index 00000000000..3f9f58da48a
--- /dev/null
+++ b/sites/orgdocs/showcase/hand-stitched-teagans-by-vili-with-explanation-of-the-stitches/index.mdx
@@ -0,0 +1,43 @@
+---
+title: 'Hand-stitched Teagans by Vili, with explanation of the stitches'
+caption: 'A hand-stitched Teagan'
+date: '2024-01-06'
+intro: "The FreeSewing community enjoyed following Vili's explorations of different hand stitch options on the Teagan t-shirt!"
+tags: ['teagan']
+maker: Natalia
+authors: 31336
+---
+
+
+
+The FreeSewing community enjoyed following Vili's explorations of different hand stitch options on the Teagan t-shirt! Hand-stitching stretch fabrics is rather unusual and presented challenges, but we think the result looks great.
+
+Read on for more descriptions and photos of Vili's process.
+
+
+
+
+
+
+
+
+
+
+
+The maker shared:
+
+> My first idea was to use a blanket stitch, honestly can't remember where I got this idea. This didn't work very well, as you either had to leave the stitches loose, allowing the seam to gape, or pull it tight making the seam bulky.
+
+
+
+> The second idea was to do a fine/short stitch length herringbone stitch. This worked well, and allows the fabric to stretch as much as it would without the stitch! It does use a bunch of thread done this way, and is laborious, but it works.
+
+
+
+> My last experiment, and the stitch I'm going to be using for this from now on, is the humble backstitch! It's more efficient than the herringbone, and works just as well for parts that don't need a lot of stretch. Aside from the blanket stitch, the edges were left unfinished, which has worked out fine.
+
+
+
+> For hemming, I tried both a herringbone with every other stitch being super long (there are other ways of course) and a backstitch. The herringbone works, but I preferred the look of the backstitch. It should be noted that a hand-sewn backstitch has a lot more stretch than a machine-sewn straight stitch, so it's worth testing and seeing if it could work for you, even when some strech is needed!
+
+
diff --git a/sites/orgdocs/showcase/hellgys-hugo-hoodie/index.mdx b/sites/orgdocs/showcase/hellgys-hugo-hoodie/index.mdx
new file mode 100644
index 00000000000..5965ce024a7
--- /dev/null
+++ b/sites/orgdocs/showcase/hellgys-hugo-hoodie/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'Hellgy'
+caption: 'Hellgy looking great in their Hugo hoodie'
+date: '2021-11-07'
+intro: 'This is another fantastic Hugo by Hellgy, whose various FreeSewing hoodies are all crowd favorites.'
+title: "Hellgy's Hugo hoodie"
+tags: ['hugo']
+---
+
+
+
+This is another fantastic Hugo by Hellgy, whose various FreeSewing hoodies are all crowd favorites.
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/hi-by-amelie/index.mdx b/sites/orgdocs/showcase/hi-by-amelie/index.mdx
new file mode 100644
index 00000000000..9f4d07b9957
--- /dev/null
+++ b/sites/orgdocs/showcase/hi-by-amelie/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'A toothy Hi shark'
+date: '2023-01-24'
+intro: 'All the cool kids are making Hi sharks. After FreeSewing contributor Zee mentioned the Hi pattern on the Discord, it inspired Amelie to try their own! Amelie wanted to mention that they put the mouth piece the wrong way round, but we still think it turned out fabulous.'
+title: 'Hi by Amelie'
+tags: ['hi']
+---
+
+
+
+All the cool kids are making Hi sharks. After FreeSewing contributor Zee mentioned the Hi pattern on the Discord, it inspired Amelie to try their own! Amelie wanted to mention that they put the mouth piece the wrong way round, but we still think it turned out fabulous.
diff --git a/sites/orgdocs/showcase/hi-by-gaelle/index.mdx b/sites/orgdocs/showcase/hi-by-gaelle/index.mdx
new file mode 100644
index 00000000000..a56a895d721
--- /dev/null
+++ b/sites/orgdocs/showcase/hi-by-gaelle/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 27669
+caption: 'Made with jean fabric'
+date: '2022-07-29'
+intro: 'Hi by Gaëlle'
+title: 'Hi by Gaëlle'
+tags: ['hi']
+---
+
+
+
+Gaëlle made this fan favorite jean version of Hi, "Jåhaj (Jean Blåhaj)"!
diff --git a/sites/orgdocs/showcase/hi-by-halbmoki/index.mdx b/sites/orgdocs/showcase/hi-by-halbmoki/index.mdx
new file mode 100644
index 00000000000..2e5712cc1f2
--- /dev/null
+++ b/sites/orgdocs/showcase/hi-by-halbmoki/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'halbmoki'
+caption: 'Hello, Hi'
+date: '2022-07-29'
+intro: "Halbmoki's Hi was instantly adored by the FreeSewing community!"
+title: 'Hi by halbmoki'
+tags: ['hi']
+---
+
+
+
+Halbmoki's Hi was instantly adored by the FreeSewing community!
+
+The maker shared:
+
+> Both the sewing and the photos are by me. As additional info: It is made at 35% scale and the main material is a printed cotton poplin fabric. Using non-stretch material is probably the main reason for the stretch marks and general lumpiness.
+
+
diff --git a/sites/orgdocs/showcase/hi-by-nisaea/index.mdx b/sites/orgdocs/showcase/hi-by-nisaea/index.mdx
new file mode 100644
index 00000000000..c6ff1809ca9
--- /dev/null
+++ b/sites/orgdocs/showcase/hi-by-nisaea/index.mdx
@@ -0,0 +1,20 @@
+---
+title: 'Hi by Nisaea'
+caption: 'This shark is carefully balanced'
+date: '2024-05-04'
+intro: 'Be sure to zoom in and enjoy the eye detail on this charming Hi shark by maker Nisaea.'
+authors: 46488
+tags: ['hi']
+---
+
+
+
+Be sure to zoom in and enjoy the eye detail on this charming Hi shark by maker Nisaea. And gills too!
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/hi-the-shark-has-our-hearts/index.mdx b/sites/orgdocs/showcase/hi-the-shark-has-our-hearts/index.mdx
new file mode 100644
index 00000000000..2e6fa08654f
--- /dev/null
+++ b/sites/orgdocs/showcase/hi-the-shark-has-our-hearts/index.mdx
@@ -0,0 +1,21 @@
+---
+maker: 'Wouter.vdub'
+caption: 'We have fallen head over heels for Hi'
+date: '2022-06-30'
+intro: 'This is Hi.'
+title: 'Hi the shark has our hearts'
+tags: ['hi']
+authors: 132
+---
+
+
+
+This is Hi.
+
+Here she is with her partner, and role model.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/high-vis-yuri/index.mdx b/sites/orgdocs/showcase/high-vis-yuri/index.mdx
new file mode 100644
index 00000000000..9cdb8aaa43e
--- /dev/null
+++ b/sites/orgdocs/showcase/high-vis-yuri/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'Hellgy'
+caption: 'A daylight view'
+date: '2022-01-22'
+intro: 'There are not enough words to describe this Yuri hoodie by the inimitable Hellgy! Flashy! Vibrant! Disco! Super fun!!'
+title: "Hellgy's high vis Yuri hoodie (flashing lights GIFs in post)"
+tags: ['yuri']
+---
+
+
+
+There are not enough words to describe this Yuri hoodie by the inimitable Hellgy! Flashy! Vibrant! Disco! Super fun!!
+
+Check out more details [in this post on Hellgy's blog](https://weblog.redisdead.net/main/post/2021/12/31/Trucs-creatifs-du-mois-Octobre-Novembre-Decembre-2021).
+
+Hellgy shared direct links to the materials they used:
+
+- [PVC](https://www.amazon.fr/dp/B082HKG3ZB?ref=ppx_pop_mob_ap_share)
+- [Mini batteries](https://www.amazon.fr/dp/B08VRL66HZ?ref=ppx_pop_mob_ap_share)
+- [LED lights](https://www.amazon.fr/dp/B00KAOZI1C?ref=ppx_pop_mob_ap_share)
+
+
+
+
diff --git a/sites/orgdocs/showcase/hortensia-by-saber/index.mdx b/sites/orgdocs/showcase/hortensia-by-saber/index.mdx
new file mode 100644
index 00000000000..003bb9a2286
--- /dev/null
+++ b/sites/orgdocs/showcase/hortensia-by-saber/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'Saber'
+caption: 'A brown and black Hortensia handbag'
+date: '2022-07-29'
+intro: 'Saber, the maker of this excellent Hortensia handbag, shared:'
+title: 'Hortensia by Saber'
+tags: ['hortensia']
+authors: 20165
+---
+
+
+
+Saber, the maker of this excellent Hortensia handbag, shared:
+
+> Hortensia using all materials from dollar tree except the zipper from a thrift store and the black straps which is black quilting cotton.
diff --git a/sites/orgdocs/showcase/hortensia-by-wouter/index.mdx b/sites/orgdocs/showcase/hortensia-by-wouter/index.mdx
new file mode 100644
index 00000000000..8dc39db331a
--- /dev/null
+++ b/sites/orgdocs/showcase/hortensia-by-wouter/index.mdx
@@ -0,0 +1,25 @@
+---
+maker: 'Wouter.vdub'
+caption: "Haring's Hortensia handbag by Wouter"
+date: '2021-03-06'
+intro: "Not only did Wouter sew this Haring's Hortensia handbag, he also designed the fabric and made the pattern! He shared that he made the fabric design with his daughter and had it printed through Spoonflower."
+title: 'Hortensia by Wouter'
+tags: ['hortensia']
+authors: 132
+---
+
+
+
+Not only did Wouter sew this Haring's Hortensia handbag, he also designed the fabric and made the pattern! He shared that he made the fabric design with his daughter and had it printed through Spoonflower.
+
+Wouter also shares on [the Instagram feed @Wouter.vdub](https://www.instagram.com/Wouter.vdub/) and [blogs at ShirtArtistry]https://shirtartistry.blog/).
+
+
+
+
+
+
+
+:::note
+This picture is from Wouter on Discord. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/houseoflief-lucy/index.mdx b/sites/orgdocs/showcase/houseoflief-lucy/index.mdx
new file mode 100644
index 00000000000..33a0c02e55f
--- /dev/null
+++ b/sites/orgdocs/showcase/houseoflief-lucy/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'housoflief'
+caption: 'The pocket laid out flat'
+date: '2023-01-23'
+intro: 'Houseoflief popped into the FreeSewing Discord the other day to share this fantastic Lucy tie-on pocket!'
+title: 'Houseoflief Lucy Pocket'
+tags: ['lucy']
+---
+
+
+
+Houseoflief popped into the FreeSewing Discord the other day to share this fantastic Lucy tie-on pocket!
+
+
diff --git a/sites/orgdocs/showcase/huey-by-hellgy-dinosaurs/index.mdx b/sites/orgdocs/showcase/huey-by-hellgy-dinosaurs/index.mdx
new file mode 100644
index 00000000000..f3b306b731a
--- /dev/null
+++ b/sites/orgdocs/showcase/huey-by-hellgy-dinosaurs/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'Hellgy'
+caption: 'A Huey hoodie featuring a dinosaur print'
+date: '2021-06-25'
+intro: "We adore Hellgy's Huey hoodies and their excellent choice in fabrics. This dinosaur one was a crowd favorite over on the FreeSewing Discord."
+title: 'Huey hoodie by Hellgy'
+tags: ['huey']
+---
+
+
+
+We adore Hellgy's Huey hoodies and their excellent choice in fabrics. This dinosaur one was a crowd favorite over on the FreeSewing Discord.
+
+
+
+
+
+This picture is from Lawrence, [@hellgy on Twitter](https://twitter.com/hellgy). It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/huey-by-minty/index.mdx b/sites/orgdocs/showcase/huey-by-minty/index.mdx
new file mode 100644
index 00000000000..7a9b45303f2
--- /dev/null
+++ b/sites/orgdocs/showcase/huey-by-minty/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Huey hoodie by Minty'
+date: '2021-03-06'
+intro: 'This fantastic Huey hoodie was made by Minty! Minty shared that he made this with a regular machine instead of a serger.'
+title: 'Huey by Minty'
+tags: ['huey']
+---
+
+
+
+This fantastic Huey hoodie was made by Minty! Minty shared that he made this with a regular machine instead of a serger.
+
+
+
+:::note
+This picture is from Minty on Discord. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/huey-by-paul/index.mdx b/sites/orgdocs/showcase/huey-by-paul/index.mdx
new file mode 100644
index 00000000000..9310f055534
--- /dev/null
+++ b/sites/orgdocs/showcase/huey-by-paul/index.mdx
@@ -0,0 +1,11 @@
+---
+maker: 'unknown'
+caption: 'Cotton hoodie with contrasting lining by Paul'
+date: '2018-09-29'
+intro: 'FIXME_no_intro'
+title: 'Huey by Paul'
+tags: ['huey']
+authors: 433
+---
+
+
diff --git a/sites/orgdocs/showcase/hugo-by-alan/index.mdx b/sites/orgdocs/showcase/hugo-by-alan/index.mdx
new file mode 100644
index 00000000000..72388e0a374
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-by-alan/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Alan wearing his awesome Hugo Hoodie'
+date: '2021-06-22'
+intro: 'Alan made himself a Hugo Hoodie with a larger neckline to make it easier and more comfortable to put on without messing up his hair or the hoodie.'
+title: 'Hugo by Alan'
+tags: ['hugo']
+---
+
+
+
+Alan made himself a [Hugo Hoodie](/designs/hugo) with a larger neckline to make it easier and more comfortable to put on without messing up his hair or the hoodie.
+
+[Hugo from the back](https://posts.freesewing.org/uploads/hugo_by_alan_showcase_back_2530c02334.jpg)
+
+:::note
+These pictures are from Discord and are reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/hugo-by-gaelle/index.mdx b/sites/orgdocs/showcase/hugo-by-gaelle/index.mdx
new file mode 100644
index 00000000000..dfe101b36e7
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-by-gaelle/index.mdx
@@ -0,0 +1,20 @@
+---
+authors: 27669
+caption: "Gaëlle's friend in their new Hugo hoodie"
+date: '2023-02-15'
+intro: "Gaëlle made this Hugo covered in cheerful little ...well I'm not sure what to call these squiggly little monsters, but they're clearly great. It's for a friend, and we would be delighted to receive something this fabulous. Check out that awesome coordinated striped ribbing."
+title: 'Hugo by Gaëlle'
+tags: ['hugo']
+---
+
+
+
+Gaëlle made this Hugo covered in cheerful little ...well I'm not sure what to call these squiggly little monsters, but they're clearly great. It's for a friend, and we would be delighted to receive something this fabulous. Check out that awesome coordinated striped ribbing.
+
+
+
+
+
+And it gets better - there's even a bonus one with a blue plush lining in the hood, made for the same person. What a lucky duck!
+
+
diff --git a/sites/orgdocs/showcase/hugo-by-hellgy-shuttlecock/index.mdx b/sites/orgdocs/showcase/hugo-by-hellgy-shuttlecock/index.mdx
new file mode 100644
index 00000000000..62a830320a9
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-by-hellgy-shuttlecock/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'Hellgy'
+caption: 'A Hugo hoodie featuring a shuttlecock print'
+date: '2021-06-12'
+intro: 'Hellgy has captured our hearts with their Hugo hoodie creations with fun and cheerful prints.'
+title: 'Hugo hoodie by Hellgy'
+tags: ['hugo']
+---
+
+
+
+Hellgy has captured our hearts with their Hugo hoodie creations with fun and cheerful prints.
+
+
+
+
+
+
+
+This picture is from Lawrence, [@hellgy on Twitter](https://twitter.com/hellgy). It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/hugo-by-karin/index.mdx b/sites/orgdocs/showcase/hugo-by-karin/index.mdx
new file mode 100644
index 00000000000..fe511f9421c
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-by-karin/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'Some work on fit and sleeves, but a great end result.'
+date: '2018-10-07'
+intro: 'Karin has more details of this make on her blog .'
+title: 'A hacked Hugo Hoodie by Karin'
+tags: ['hugo']
+---
+
+
+
+Karin has more details of this make [on her blog](https://www.karinkay.nl/freesewing-hugo-hoodie/).
diff --git a/sites/orgdocs/showcase/hugo-by-lainey/index.mdx b/sites/orgdocs/showcase/hugo-by-lainey/index.mdx
new file mode 100644
index 00000000000..44e064446b6
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-by-lainey/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'An Aaron A-shirt by Joost'
+date: '2019-02-24'
+intro: 'Lainey hacked this Hugo and gave it extra warm lining and zippers on the pouch pocket.'
+title: 'A hacked Hugo by Lainey'
+tags: ['hugo']
+---
+
+
+
+Lainey hacked this Hugo and gave it extra warm lining and zippers on the pouch pocket.
+
+
diff --git a/sites/orgdocs/showcase/hugo-saul/index.mdx b/sites/orgdocs/showcase/hugo-saul/index.mdx
new file mode 100644
index 00000000000..18a3a1ba5e4
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-saul/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: 'Check out that ribbing!'
+date: '2020-11-27'
+intro: "Saul sewed up this Hugo hoodie in black, but gave it that extra something with bright pink ribbing at the hem and wrists. Can't buy that at the shop!"
+title: 'Black Hugo with Pink Ribbing by Saul'
+tags: ['hugo']
+---
+
+
+
+Saul sewed up this Hugo hoodie in black, but gave it that extra something with bright pink ribbing at the hem and wrists. Can't buy that at the shop!
+
+:::note
+This picture is from the instagram feed of [Sarah](https://www.instagram.com/sarahlh98/). It is
+posted here with permission from Sarah and Saul.
+:::
diff --git a/sites/orgdocs/showcase/hugo-teagan-mashup/index.mdx b/sites/orgdocs/showcase/hugo-teagan-mashup/index.mdx
new file mode 100644
index 00000000000..7a78c3b21b8
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-teagan-mashup/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Just an exceptional color pairing on this orange and green hoodie.'
+date: '2023-02-02'
+intro: 'Enamored with this hoodie a FreeSewing user posted in the Discord!'
+title: 'Hugo-Teagan Mashup'
+tags: ['hugo', 'teagan']
+---
+
+
+
+Enamored with this hoodie a FreeSewing user posted in the Discord!
+
+ts made this Hugo with a body from a modded Teagan, and had to make an insert after noticing that the neck opening was too wide. The cuffs, waistband, and drawstring are made from body fabric.
+
+It did turn a laundry load orange early on, but we think it was worth it.
diff --git a/sites/orgdocs/showcase/hugo-with-cats/index.mdx b/sites/orgdocs/showcase/hugo-with-cats/index.mdx
new file mode 100644
index 00000000000..0cb83423d07
--- /dev/null
+++ b/sites/orgdocs/showcase/hugo-with-cats/index.mdx
@@ -0,0 +1,14 @@
+---
+authors: 22141
+caption: 'A red and gray Hugo with cartoon cat faces all over the body'
+date: '2023-01-16'
+intro: 'Another amazing FreeSewing make from comixminx, showcasing a great way of solving for a fitting challenge. This kid-sized Hugo hoodie (minus hoodl) turned out a little extra tricky because the proportions didn’t come out quite as expected. So, she made a few adjustments partway through sewing it up (like adding in a sleeve gusset because the sleeves came out very narrow and hard to get into).'
+title: 'Hugo is better with cats'
+tags: ['hugo']
+---
+
+
+
+Another amazing FreeSewing make from comixminx, showcasing a great way of solving for a fitting challenge. This kid-sized Hugo hoodie (minus hoodl) turned out a little extra tricky because the proportions didn’t come out quite as expected. So, she made a few adjustments partway through sewing it up (like adding in a sleeve gusset because the sleeves came out very narrow and hard to get into).
+
+This Hugo was designed for a kid, which comixminx noted comes with trade-offs in the fitting process: "Basically, sewing the FS patterns for kids is perhaps not quite an out of the box solution even though it helps with other elements like the fact that it’ll account for how skinny my kid is, and it will give a better range of gender-inclusive patterns in that sizing."
diff --git a/sites/orgdocs/showcase/husband-hugo/index.mdx b/sites/orgdocs/showcase/husband-hugo/index.mdx
new file mode 100644
index 00000000000..b860a235d78
--- /dev/null
+++ b/sites/orgdocs/showcase/husband-hugo/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'Is it me or is Hugo a popular make for husbands?'
+date: '2015-12-28'
+intro: 'This picture is from the Instagram feed of uneanneedecouture .'
+title: 'A hugo for the husband, by Sonia'
+tags: ['hugo']
+---
+
+
+
+This picture is from [the Instagram feed](https://www.instagram.com/p/_1j7FSgynG/) of [uneanneedecouture](https://uneanneedecouture.wordpress.com/).
+
+> ##### More pictures and info on the original blog post
+>
+> This make is detailed in the [Le sweat en mérinos MakeMyPattern](https://uneanneedecouture.wordpress.com/2015/12/28/le-sweat-en-merinos-makemypattern/)
+> on [uneanneedecouture.wordpress.com](https://uneanneedecouture.wordpress.com/).
+>
+> The blog post is in both French and English.
diff --git a/sites/orgdocs/showcase/jaeger-by-roberta/index.mdx b/sites/orgdocs/showcase/jaeger-by-roberta/index.mdx
new file mode 100644
index 00000000000..ab07fdf0fd2
--- /dev/null
+++ b/sites/orgdocs/showcase/jaeger-by-roberta/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'unknown'
+caption: 'A flamboyant flamingo Jaeger jacket'
+date: '2021-06-12'
+intro: 'This Jaeger jacket has all of us at FreeSewing considering how we can work flamingo prints into all of our makes.'
+title: 'Jaeger by Roberta'
+tags: ['jaeger']
+---
+
+
+
+This Jaeger jacket has all of us at FreeSewing considering how we can work flamingo prints into all of our makes.
+
+Roberta made this for her friend who will wear it at his daughter's wedding.
+
+Roberta shared:
+
+> Fabric from Spoonflower with flamingos in a cotton linen blend is working perfectly for the jacket. I did a mock up and alterations were minimal; just tiny a adjustment on the shoulder. Will send pictures for the finished product to share with you. It is looking spectacular and your draft is brilliant.
+
+:::note
+This flamingo jacket was shared with us by Roberta Doylend, Head Of Wardrobe at
+the Marilyn I Walker School of Fine and Performing Arts, Dramatic Arts at Brock
+University.
+:::
diff --git a/sites/orgdocs/showcase/johnnygaijins-simon-shirt/index.mdx b/sites/orgdocs/showcase/johnnygaijins-simon-shirt/index.mdx
new file mode 100644
index 00000000000..2996c8c8099
--- /dev/null
+++ b/sites/orgdocs/showcase/johnnygaijins-simon-shirt/index.mdx
@@ -0,0 +1,26 @@
+---
+maker: 'unknown'
+caption: 'A stellar first version of Simon'
+date: '2022-01-22'
+intro: 'Johnnygaijin has already proven themselves quite brave - this was their first sewing project! It turned out great.'
+title: "Johnnygaijin's first real sewing project, the Simon shirt"
+tags: ['simon']
+---
+
+
+
+Johnnygaijin has already proven themselves quite brave - this was their first sewing project! It turned out great.
+
+They shared some helpful notes:
+
+> I made the Simon shirt. It was my first real sewing project. I got a sewing machine for Christmas and figured I'd just jump in the deep end. The sleeves are touch too long. I figure I'll make another one right away to lock in what I've learned.
+>
+> The hardest part was attaching the sleeves. Distributing the sleevecap ease evenly was super difficult and I certainly didn't do a great job. Any tips there would be appreciated. Flat felling the sleeves was beyond my ability too, I ended up just fake serging them with a zigzag stitch.
+
+FreeSewing is planning some tweaks to the default sleevecap ease and cuff ease based on the helpful feedback. Check out the [latest version of the Simon pattern on FreeSewing.org](https://freesewing.org/designs/simon/).
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/joosts-most-recent-simon/index.mdx b/sites/orgdocs/showcase/joosts-most-recent-simon/index.mdx
new file mode 100644
index 00000000000..f8b4053b68b
--- /dev/null
+++ b/sites/orgdocs/showcase/joosts-most-recent-simon/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Joost De Cock'
+caption: 'A handsome Simon shirt on a handsome model'
+date: '2021-12-18'
+intro: "Folks in the Discord community were impressed by the perfect seams on Joost's most recent Simon."
+title: "Joost's most recent Simon"
+tags: ['simon']
+---
+
+
+
+Folks in the Discord community were impressed by the perfect seams on Joost's most recent Simon.
diff --git a/sites/orgdocs/showcase/just-another-simon-shirt/index.mdx b/sites/orgdocs/showcase/just-another-simon-shirt/index.mdx
new file mode 100644
index 00000000000..a9261d55250
--- /dev/null
+++ b/sites/orgdocs/showcase/just-another-simon-shirt/index.mdx
@@ -0,0 +1,21 @@
+---
+title: 'Just another Simon shirt'
+caption: 'Simple printed cotton, inner sides of yoke, collarstand and cuffs in contrasting fabric with a different color (but same pattern ;-). Beautiful antique buffalo horn buttons.'
+date: '2024-01-19'
+intro: 'Nearly perfect'
+tags: ['simon']
+maker: ferdi
+authors: 1972
+---
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/just-peachy-shin-bee/index.mdx b/sites/orgdocs/showcase/just-peachy-shin-bee/index.mdx
new file mode 100644
index 00000000000..85546bdeb4d
--- /dev/null
+++ b/sites/orgdocs/showcase/just-peachy-shin-bee/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'JenBarb_'
+caption: 'These Shins are ready for the beach!'
+date: '2023-03-21'
+intro: "Okay, these aren't meant to be worn together as they are for different people, but we couldn't resist putting them together in a Showcase post because... (drumroll please)... They match! These Shin swim trunks and Bee bikini top are made for FreeSewing user JenBarb_'s siblings, which means one more pair and they'll all be able to coordinate!"
+title: 'Just Peachy Shin and Bee'
+authors: 29683
+tags: ['shin', 'bee']
+---
+
+
+
+Okay, these aren't meant to be worn together as they are for different people, but we couldn't resist putting them together in a Showcase post because... (drumroll please)... They match! These Shin swim trunks and Bee bikini top are made for FreeSewing user JenBarb\_'s siblings, which means one more pair and they'll all be able to coordinate!
+
+
+
+(Scrunchie and bikini bottoms from other patterns.)
diff --git a/sites/orgdocs/showcase/lasermonkeys-modded-bruces/index.mdx b/sites/orgdocs/showcase/lasermonkeys-modded-bruces/index.mdx
new file mode 100644
index 00000000000..2282b0df21a
--- /dev/null
+++ b/sites/orgdocs/showcase/lasermonkeys-modded-bruces/index.mdx
@@ -0,0 +1,30 @@
+---
+title: "Lasermonkey's modded Bruces"
+caption: "This is the pair that kicked off 'the underwear thing'"
+date: '2024-04-29'
+intro: 'The FreeSewing community on Discord has enjoyed following along the journey of these Bruce modifications.'
+authors: 31287
+tags: ['bruce']
+---
+
+
+
+The FreeSewing community on Discord has enjoyed following along the journey of these Bruce modifications. Lasermonkey12 graciously shared her highly modified pattern pieces which are shown below.
+
+
+
+
+
+But wait, there's more!
+
+This shows how she added additional crutch gusset part that allows me to easily put in pads even though the legs are super long. Clever!
+
+
+
+Bonus showcase! Here's an even further modified version with front+inset and side+back merged. Only 3 pieces and 4 seams.
+
+
+
+
+
+Equipped with this knowledge, we hope you'll go out and make a bunch of versions for yourself. Awesome undies for all.
diff --git a/sites/orgdocs/showcase/latex-ursulas/index.mdx b/sites/orgdocs/showcase/latex-ursulas/index.mdx
new file mode 100644
index 00000000000..0733aa14b23
--- /dev/null
+++ b/sites/orgdocs/showcase/latex-ursulas/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'This pair of Ursulas was glued, not sewn'
+date: '2022-07-29'
+intro: 'A FreeSewing maker made this gorgeous version of the Ursula undies out of latex material.'
+title: 'Latex Ursulas'
+tags: ['ursula']
+---
+
+
+
+A FreeSewing maker made this gorgeous version of the Ursula undies out of latex material.
+
+
diff --git a/sites/orgdocs/showcase/liberty-trayvon/index.mdx b/sites/orgdocs/showcase/liberty-trayvon/index.mdx
new file mode 100644
index 00000000000..653878d3ab5
--- /dev/null
+++ b/sites/orgdocs/showcase/liberty-trayvon/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Beautiful fabric, and a greatly made tie'
+date: '2017-09-29'
+intro: 'A Trayvon tie in a Liberty silk by Victoria'
+title: 'A Trayvon tie in a Liberty silk by Victoria'
+tags: ['trayvon']
+---
+
+
+
+My husband travelled to Ireland 🇮🇪 for a weekend (62hrs travelling for 60hrs on the ground 🙀) to attend his brother's wedding 👏
+My contribution was this beautiful @libertylondon silk tie and pocket square made specifically for the big day. I was there in spirit.
+
+> ##### See the original on Instagram
+>
+> [This picture](https://www.instagram.com/p/BZR3pyCHLjm/) is from the Instagram feed
+> of [e2_clothing](https://www.instagram.com/e2_clothing/).
diff --git a/sites/orgdocs/showcase/lightweight-waralees-for-summer/index.mdx b/sites/orgdocs/showcase/lightweight-waralees-for-summer/index.mdx
new file mode 100644
index 00000000000..eaf8fb52886
--- /dev/null
+++ b/sites/orgdocs/showcase/lightweight-waralees-for-summer/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Wouter.vdub'
+caption: 'These were the perfect item of clothing for a hot day'
+date: '2023-05-16'
+intro: 'No AC in the office? Waralee to the rescue! Wouter wore these on a rather warm day.'
+title: 'Lightweight Waralees for summer'
+tags: ['waralee']
+authors: 132
+---
+
+
+
+No AC in the office? Waralee to the rescue! Wouter wore these on a rather warm day.
diff --git a/sites/orgdocs/showcase/linnen-jaeger-by-paul/index.mdx b/sites/orgdocs/showcase/linnen-jaeger-by-paul/index.mdx
new file mode 100644
index 00000000000..c07ea5b3dad
--- /dev/null
+++ b/sites/orgdocs/showcase/linnen-jaeger-by-paul/index.mdx
@@ -0,0 +1,11 @@
+---
+maker: 'unknown'
+caption: 'Linnen Jaeger Sports Jacket by Paul'
+date: '2018-09-29'
+intro: 'FIXME_no_intro'
+title: 'Jaeger by Paul'
+tags: ['jaeger']
+authors: 433
+---
+
+
diff --git a/sites/orgdocs/showcase/linnen-theo/index.mdx b/sites/orgdocs/showcase/linnen-theo/index.mdx
new file mode 100644
index 00000000000..b21667eeeef
--- /dev/null
+++ b/sites/orgdocs/showcase/linnen-theo/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'These are great in summer'
+date: '2013-02-16'
+intro: 'FIXME_no_intro'
+title: 'Brown greyish linnen Theo trousers by joostdecock'
+tags: ['titan']
+---
+
+
diff --git a/sites/orgdocs/showcase/lower-rise-ursula/index.mdx b/sites/orgdocs/showcase/lower-rise-ursula/index.mdx
new file mode 100644
index 00000000000..6560a409cd8
--- /dev/null
+++ b/sites/orgdocs/showcase/lower-rise-ursula/index.mdx
@@ -0,0 +1,31 @@
+---
+maker: 'unknown'
+caption: 'Ursula in black cotton spandex fabric'
+date: '2021-09-16'
+intro: 'This Ursula was made made in a cotton spandex knit (94% Cotton, 6% Spandex) with burgundy picot elastic.'
+title: 'Lower rise Ursula'
+tags: ['ursula']
+authors: 19867
+---
+
+
+
+This Ursula was made made in a cotton spandex knit (94% Cotton, 6% Spandex) with burgundy picot elastic.
+
+The wearer reported that the settings, shown below, had pretty good results but that they will increase the front exposure for the next pair!
+
+Fit
+
+- Fabric stretch - 15%
+- Gusset width - 7.2%
+- Gusset length - 12.7%
+- Elastic stretch - 8%
+
+Style
+
+- Rise - 46%
+- Leg opening - 55%
+- Front waist dip - 5%
+- Back waist dip - 2.5%
+- Front exposure - 65%
+- Back exposure -20%
diff --git a/sites/orgdocs/showcase/lucy-by-xhex/index.mdx b/sites/orgdocs/showcase/lucy-by-xhex/index.mdx
new file mode 100644
index 00000000000..7dc1dfa0e31
--- /dev/null
+++ b/sites/orgdocs/showcase/lucy-by-xhex/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'Xhex'
+caption: 'The closer you look, the cooler this pocket gets'
+date: '2023-04-05'
+intro: "Would you look at this Lucy pocket that Xhex made? It's incredible!"
+title: 'Embroidered Lucy Pocket by Xhex'
+tags: ['lucy']
+---
+
+
+
+Would you look at this Lucy pocket that Xhex made? It's incredible!
+
+This Lucy started out as an old linen top with a few bleach spots. Xhex didn't want to waste the fabric so pocket it was! Check out how she incorporated one of the chest pockets from the shirt into an inner pocket for her keys, so they wouldn't scratch her phone -ingenious!
+
+
+
+But Xhex didn't stop there - rather than leaving the outside plain, she embroidered it with these absolutely beautiful flowers and incorporated an embellished waistband with 3 different size options so it can be adjusted based on what else she's wearing. While pockets may have traditionally been worn under other clothes, this one is so beautiful, we'd absolutely want to show it off!
diff --git a/sites/orgdocs/showcase/lumira-leggings-with-cycling-chamois/index.mdx b/sites/orgdocs/showcase/lumira-leggings-with-cycling-chamois/index.mdx
new file mode 100644
index 00000000000..2eace18edb8
--- /dev/null
+++ b/sites/orgdocs/showcase/lumira-leggings-with-cycling-chamois/index.mdx
@@ -0,0 +1,15 @@
+---
+title: 'Lumira leggings with cycling chamois'
+caption: "This is Lumira's designer, Wouter, testing out his new leggings"
+date: '2024-01-04'
+intro: 'The Lumira leggings are designed with many options, including a waistband, optional gusset, and bulge option.'
+tags: ['lumira']
+maker: Natalia
+authors: 132
+---
+
+
+
+The Lumira leggings are designed with many options, including a waistband, optional gusset, and bulge option. This particular version is with the cycling chamois, but the same design works for yoga leggings and anything in between too. We're all excited to fill our closets with Lumira variations!
+
+
diff --git a/sites/orgdocs/showcase/lunetius-the-lacerna/index.mdx b/sites/orgdocs/showcase/lunetius-the-lacerna/index.mdx
new file mode 100644
index 00000000000..474fcd01bfe
--- /dev/null
+++ b/sites/orgdocs/showcase/lunetius-the-lacerna/index.mdx
@@ -0,0 +1,21 @@
+---
+maker: 'starf'
+caption: 'Lunetius the lacerna is a cloak'
+date: '2021-10-18'
+intro: ' '
+title: 'Lunetius the lacerna'
+tags: ['lunetius']
+---
+
+
+
+
+
+
+
+
+This is the original Lunetius! Some comments from its lovely maker (with minor edits for the showcase format):
+
+_Lunetius the lacerna is a cloak, where I could not quite figure out the history, but seems to have been used for both civilian/representative and military purposes. There is a [text passage](http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0063:entry=lacerna-cn) where an emperor (Domitian, early empire) apparently complained about people parading around in their colourful lacernae when going to the theatre, and passed a law that only allows white ones 🤷_
+
+_It's essentially also a rectangle with rounded corners, that is closed by a fibula - a clasp/brooch/pin - over the right shoulder. It can be worn almost closed or whipped back around the shoulders (and you can still draw your sword easily even when it's closed), it doesn't provide as much protection against wind or rain though, but it's still better than just a tunica or even a toga._
diff --git a/sites/orgdocs/showcase/lunetius-walburga-tiberius-ensemble/index.mdx b/sites/orgdocs/showcase/lunetius-walburga-tiberius-ensemble/index.mdx
new file mode 100644
index 00000000000..12db7a5fca2
--- /dev/null
+++ b/sites/orgdocs/showcase/lunetius-walburga-tiberius-ensemble/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'starf'
+caption: "A great shot of FreeSewing's historical pattern offerings"
+date: '2022-04-27'
+intro: 'This handsome Lunetius-Walburga-Tiberius ensemble was made by its designer, the valiant and multitalented Starf!'
+title: 'Another view of the Lunetius-Walburga-Tiberius ensemble'
+tags: ['lunetius', 'walburga', 'tiberius']
+authors: 22708
+---
+
+
+
+This handsome Lunetius-Walburga-Tiberius ensemble was made by its designer, the valiant and multitalented Starf!
diff --git a/sites/orgdocs/showcase/magicantace-breanna-sandy/index.mdx b/sites/orgdocs/showcase/magicantace-breanna-sandy/index.mdx
new file mode 100644
index 00000000000..fd324019c49
--- /dev/null
+++ b/sites/orgdocs/showcase/magicantace-breanna-sandy/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'MagicantAce'
+caption: "MagicantAce's doll's outfit with Breanna and Sandy"
+date: '2021-09-15'
+intro: 'MagicantAce made this fantastic doll outfit with Breanna and Sandy! He said it was great to be able to use doll measurements on FreeSewing since this doll line has been hard to find patterns for and has a dramatic hourglass shape that makes drafting difficult. We love the results!'
+title: "MagicantAce's doll's outfit with Breanna and Sandy"
+tags: ['breanna', 'sandy']
+---
+
+
+
+MagicantAce made this fantastic doll outfit with Breanna and Sandy! He said it was great to be able to use doll measurements on FreeSewing since this doll line has been hard to find patterns for and has a dramatic hourglass shape that makes drafting difficult. We love the results!
+
+Yay for parametric design!
diff --git a/sites/orgdocs/showcase/mark-wears-simon/index.mdx b/sites/orgdocs/showcase/mark-wears-simon/index.mdx
new file mode 100644
index 00000000000..6d781aa4ab2
--- /dev/null
+++ b/sites/orgdocs/showcase/mark-wears-simon/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'unknown'
+caption: 'Good tie action too'
+date: '2017-08-20'
+intro: 'Mark wears a simon shirt made by his wife'
+title: 'Mark wears a simon shirt made by his wife'
+tags: ['simon']
+---
+
+
+
+
+
+
+
+> ##### Check the original in the Instagram feed of swissarmywife
+>
+> This picture is from [the Instagram feed](https://www.instagram.com/p/BYAX07OFEPL/)
+> of [swissarmywife](https://mnel2.wordpress.com/).
+> It's posted here with permission.
diff --git a/sites/orgdocs/showcase/matching-florents/index.mdx b/sites/orgdocs/showcase/matching-florents/index.mdx
new file mode 100644
index 00000000000..060ebc9b855
--- /dev/null
+++ b/sites/orgdocs/showcase/matching-florents/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Jasmine'
+caption: 'Jasmine and her dad in their matching blue hats'
+date: '2023-01-17'
+intro: 'Well, this is delightful! FreeSewing user Jasmine created these incredible matched Florents for herself and her dad in a deep navy blue canvas. And she sewed them up by hand to boot .'
+title: 'A matching set of Florents'
+tags: ['florent']
+---
+
+
+
+Well, this is delightful! FreeSewing user Jasmine created these incredible matched Florents for herself and her dad in a deep navy blue canvas. And she sewed them up by hand to boot .
+
+
diff --git a/sites/orgdocs/showcase/matching-simon/index.mdx b/sites/orgdocs/showcase/matching-simon/index.mdx
new file mode 100644
index 00000000000..2c7d2dd322e
--- /dev/null
+++ b/sites/orgdocs/showcase/matching-simon/index.mdx
@@ -0,0 +1,27 @@
+---
+maker: 'unknown'
+caption: "Is it me, or does this seriously overload one's cute sensors?"
+date: '2018-02-05'
+intro: 'Matching simon shirts for these two cuties'
+title: 'Matching simon shirts for these two cuties'
+tags: ['simon']
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+:::tip See the originals on the Instragram feed of ecmtts
+These images are from
+[the Instagram feed](https://www.instagram.com/ecmtts/)
+of [@ericamattos](/users/user?id=750).
+They are published here with permission.
+:::
diff --git a/sites/orgdocs/showcase/meet-octoplushy/index.mdx b/sites/orgdocs/showcase/meet-octoplushy/index.mdx
new file mode 100644
index 00000000000..ced0e76b0b7
--- /dev/null
+++ b/sites/orgdocs/showcase/meet-octoplushy/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'Wouter.vdub'
+caption: 'Acute Cuteness Overload! Meet Octoplushy'
+date: '2022-09-03'
+intro: 'This showcase features the very first completed Octoplushy, the standard variant.'
+title: 'Meet Octoplushy'
+tags: ['octoplushy']
+authors: 132
+---
+
+
+
+This showcase features the very first completed Octoplushy, the standard variant.
+
+
+
+As a bonus, here is an early version:
+
+
diff --git a/sites/orgdocs/showcase/meine-erste-badehose/index.mdx b/sites/orgdocs/showcase/meine-erste-badehose/index.mdx
new file mode 100644
index 00000000000..93b8a147de2
--- /dev/null
+++ b/sites/orgdocs/showcase/meine-erste-badehose/index.mdx
@@ -0,0 +1,10 @@
+---
+title: 'My first swim trunks'
+caption: ''
+date: '2024-07-03'
+intro: ''
+authors: 71794
+tags: ['shin']
+---
+
+
diff --git a/sites/orgdocs/showcase/mermaid-scale-print-waralees-by-magicantace/index.mdx b/sites/orgdocs/showcase/mermaid-scale-print-waralees-by-magicantace/index.mdx
new file mode 100644
index 00000000000..db5b01574da
--- /dev/null
+++ b/sites/orgdocs/showcase/mermaid-scale-print-waralees-by-magicantace/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'Mermaid scale print Waralees by MagicantAce'
+caption: 'These Waralees are faintly sparkly!'
+date: '2023-12-27'
+intro: 'We love these awesome, faintly sparkly mermaid scale print Waralees.'
+tags: ['waralee']
+maker: Natalia
+---
+
+
+
+We love these awesome, faintly sparkly mermaid scale print Waralees. Maker MagicantAce doesn't usually sew human-sized garments -- be sure to check out his fantastic doll outfits in other FreeSewing showcases -- but did a great job with these. He mentioned that the hardest part was turning the tubes for the ties right side out.
diff --git a/sites/orgdocs/showcase/microhi/index.mdx b/sites/orgdocs/showcase/microhi/index.mdx
new file mode 100644
index 00000000000..0d61be37069
--- /dev/null
+++ b/sites/orgdocs/showcase/microhi/index.mdx
@@ -0,0 +1,15 @@
+---
+maker: 'unknown'
+caption: 'The tiniest Hi ever made'
+date: '2023-01-28'
+intro: "Oh my gosh, a question came up in the FreeSewing Discord asking how small you could get away with making a Hi shark, and Calgeka rose to the challenge! This Hi is a mere 5 centimeters long, just about the size of a finger puppet. We're in love."
+title: 'microHi'
+tags: ['hi']
+---
+
+
+
+Oh my gosh, a question came up in the FreeSewing Discord asking how small you could get away with making a Hi shark, and Calgeka rose to the challenge! This Hi is a mere 5 centimeters long, just about the size of a finger puppet. We're in love.
+
+
+
diff --git a/sites/orgdocs/showcase/mini-shin-swim-trunks/index.mdx b/sites/orgdocs/showcase/mini-shin-swim-trunks/index.mdx
new file mode 100644
index 00000000000..d0797f88679
--- /dev/null
+++ b/sites/orgdocs/showcase/mini-shin-swim-trunks/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Natalia Sayang'
+caption: 'Sewing this doll size "5" pair of Shin swim trunks was an adventure'
+date: '2022-06-27'
+intro: 'The making of these mini Shins was photographed to help draw illustrations for the instructions. While those are under construction -- or if you prefer photographs to drawings -- the entire series of photos can be viewed on Discord .'
+title: 'Mini Shin swim trunks'
+tags: ['shin']
+authors: 19867
+---
+
+
+
+The making of these mini Shins was photographed to help draw illustrations for the instructions. While those are under construction -- or if you prefer photographs to drawings -- the entire series of photos can be [viewed on Discord](https://discord.com/channels/698854858052075530/787402509543145532/973065355763253289).
diff --git a/sites/orgdocs/showcase/modified-tamiko-nursing-cover/index.mdx b/sites/orgdocs/showcase/modified-tamiko-nursing-cover/index.mdx
new file mode 100644
index 00000000000..74eaddb3a06
--- /dev/null
+++ b/sites/orgdocs/showcase/modified-tamiko-nursing-cover/index.mdx
@@ -0,0 +1,25 @@
+---
+maker: 'unknown'
+caption: 'The maker used stretchy mesh fabric'
+date: '2022-06-12'
+intro: 'The maker shared:'
+title: 'Modified Tamiko as a nursing cover'
+tags: ['tamiko']
+authors: 19867
+---
+
+
+
+The maker shared:
+
+> I used the Tamiko as a base to dupe a popular knit nursing cover! My version uses a 95% cotton/5% spandex mesh fabric. I ordered one yard but decided to hem it so I lost a few inches. I skipped most of the sewing (only did "C" as shown in the instructions) because this will be worn as an overlay, not a regular top, and I wanted it to open freely. I actually didn't even sew "C" -- I inserted Kam snaps instead. This was quick and fun to sew.
+
+
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/more-shin-swim-shorts/index.mdx b/sites/orgdocs/showcase/more-shin-swim-shorts/index.mdx
new file mode 100644
index 00000000000..443b6c822ef
--- /dev/null
+++ b/sites/orgdocs/showcase/more-shin-swim-shorts/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'comixminx'
+caption: "Shin shorts featuring comixminx's new skill in triple stretch stitch"
+date: '2022-06-09'
+intro: 'comixminx made another fun pair of Shin swim shorts, this time for her younger kid. Even with a test pair (pictured below), the final version was slightly too snug. The wearer of the first pair reported the same feedback. Others who may try Shin for kids may want to take this into account. (They are still being worn in the weekly swimming lessons, however!)'
+title: 'More Shin swim shorts'
+tags: ['shin']
+---
+
+
+
+comixminx made another fun pair of Shin swim shorts, this time for her younger kid. Even with a test pair (pictured below), the final version was slightly too snug. The wearer of the first pair reported the same feedback. Others who may try Shin for kids may want to take this into account. (They are still being worn in the weekly swimming lessons, however!)
+
+
diff --git a/sites/orgdocs/showcase/more-wahid-by-adam/index.mdx b/sites/orgdocs/showcase/more-wahid-by-adam/index.mdx
new file mode 100644
index 00000000000..999017b40e7
--- /dev/null
+++ b/sites/orgdocs/showcase/more-wahid-by-adam/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: 'So. Much. Style.'
+date: '2020-08-10'
+intro: 'After his first jaw-dropping Wahid Adam is back with another beauty.'
+title: 'Another Wahid waistcoat by Adam'
+tags: ['wahid']
+---
+
+
+
+After [his first jaw-dropping Wahid](/showcase/wahid-by-adam/) Adam is back with another beauty.
+
+:::note
+This picture is from the [the Instagram feed](https://www.instagram.com/p/CDPh9MbhWuH/) of [Adam Bradley](https://www.instagram.com/grandmarquess/).
+It is posted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/my-fisrt-sewing-project/index.mdx b/sites/orgdocs/showcase/my-fisrt-sewing-project/index.mdx
new file mode 100644
index 00000000000..2a0edfd0ef6
--- /dev/null
+++ b/sites/orgdocs/showcase/my-fisrt-sewing-project/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'My fisrt sewing project!'
+caption: '25/03/2024'
+date: '2024-03-25'
+intro: 'idk what to put here.'
+authors: 73391
+tags: ['shelly']
+---
+
+
+
+????
diff --git a/sites/orgdocs/showcase/nani-hugo/index.mdx b/sites/orgdocs/showcase/nani-hugo/index.mdx
new file mode 100644
index 00000000000..74fd22402e3
--- /dev/null
+++ b/sites/orgdocs/showcase/nani-hugo/index.mdx
@@ -0,0 +1,10 @@
+---
+maker: 'unknown'
+caption: 'This is a very cool make IMHO'
+date: '2016-03-19'
+intro: 'FIXME_no_intro'
+title: 'Hugo hacked into a zip-up hoodie by Nani Roma'
+tags: ['hugo']
+---
+
+
diff --git a/sites/orgdocs/showcase/no-waistband-cornelius-cycling-breeches/index.mdx b/sites/orgdocs/showcase/no-waistband-cornelius-cycling-breeches/index.mdx
new file mode 100644
index 00000000000..13a6e63f93c
--- /dev/null
+++ b/sites/orgdocs/showcase/no-waistband-cornelius-cycling-breeches/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'No-waistband Cornelius cycling breeches'
+caption: 'Look ma no waistband!'
+date: '2024-05-23'
+intro: 'These Cornelius trousers are by the talented and prolific Laser.'
+authors: 31287
+tags: ['cornelius']
+---
+
+
+
+These Cornelius trousers are by the talented and prolific Laser. We dig! She shared:
+
+"I didn't check the default waistband height so I had to remove some and I finished it without a waistband so the pockets would work as originally patterned. There's elastic in the center back because it was a little big and I wanted stretch anyway."
diff --git a/sites/orgdocs/showcase/noble-based-evening-gown-with-sweetheart-neckline/index.mdx b/sites/orgdocs/showcase/noble-based-evening-gown-with-sweetheart-neckline/index.mdx
new file mode 100644
index 00000000000..21bf59cef3c
--- /dev/null
+++ b/sites/orgdocs/showcase/noble-based-evening-gown-with-sweetheart-neckline/index.mdx
@@ -0,0 +1,23 @@
+---
+title: 'Noble-based evening gown with sweetheart neckline'
+caption: 'My noble-based evening gown in green velvet. '
+date: '2024-05-14'
+intro: 'I made myself an evening gown in dark green velvet based on the noble body block. I used the armhole princess seam option , added a sweetheart necklace, tilted v-waistline, short sleeves and a floor-length skirt.'
+authors: 47151
+tags: ['noble']
+---
+
+
+
+Inspiration struck ten days before the ball. I'll finally make myself an evening gown! I finished it the night before, just in time. Some parts were a bit rushed, but luckily only I know what it looks like on the inside. I really enjoyed this challenge, and having made one noble-based garment before helped. I learnt a lot about choosing fabrics, lining a garment, using iron-on interfacing and general patternmaking and fitting. And some hard lessons about the importance of making a mock-up and basting difficult seams before sewing them...
+
+I made the first version of the pattern that night, and went shopping for fabrics the next day. I found this really pretty and cheap dark green polyester velvet, and some green slippery polyester fabric for the lining. In hindsight, the fabric choice was bad, because the velvet was a stretchy knit fabric and the lining was non-stretch woven. This made fitting the lining into the dress difficult, and I had to re-do the velvet bodice. I used interfacing along the neckline and next to the zipper to prevent the velvet from stretching out of shape.
+
+In the final version the lining is attatched at the waist and the neckline, that I also top-stitched. I hid a zipper in the side seam, just below my armpit. It opens from the bottom up. That way it won't slide down if the zipper loosens, and I can later add a hidden pocket in! I'm planning to make a matching clutch first, using the leftover pieces and all the fabric scraps I saved to pad and quilt the body of the purse.
+
+
+
+Here are the pattern pieces for the bodice! I traced them from my laptop screen using the paperless mode. I had to add some ease for the back of the lining, and those alterations (as well as the v-shaped waistline) are added in yellow. They are 'flippable', meaning that I only taped them on one edge so that I can flip the alteration away when cutting the velvet that does not need them.
+
+
+The dress turned out very versatile! Besides the annual ball that I made it for, I got to style it into a medieval look for another party.
diff --git a/sites/orgdocs/showcase/nsfw-bruce/index.mdx b/sites/orgdocs/showcase/nsfw-bruce/index.mdx
new file mode 100644
index 00000000000..405e2c3ded0
--- /dev/null
+++ b/sites/orgdocs/showcase/nsfw-bruce/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'Depending on your job, this might be NSFW'
+date: '2014-09-15'
+intro: 'FIXME_no_intro'
+title: 'The lesser-spotted shot of Bruce on an actual human being'
+tags: ['bruce']
+---
+
+
diff --git a/sites/orgdocs/showcase/octopus-variant-octoplushy/index.mdx b/sites/orgdocs/showcase/octopus-variant-octoplushy/index.mdx
new file mode 100644
index 00000000000..3936e943425
--- /dev/null
+++ b/sites/orgdocs/showcase/octopus-variant-octoplushy/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'Wouter.vdub'
+caption: 'This is the octopus variant, featured with the original Octoplushy and Hi'
+date: '2022-09-03'
+intro: 'The "octopus" variant of Octoplushy'
+title: 'The "octopus" variant of Octoplushy'
+tags: ['octoplushy']
+authors: 132
+---
+
+
+
+This is the original "octopus" variant of Octoplushy as made by its designer, Wouter.
+
+
+
+
diff --git a/sites/orgdocs/showcase/onyx-by-thrunic/index.mdx b/sites/orgdocs/showcase/onyx-by-thrunic/index.mdx
new file mode 100644
index 00000000000..69b23903092
--- /dev/null
+++ b/sites/orgdocs/showcase/onyx-by-thrunic/index.mdx
@@ -0,0 +1,15 @@
+---
+title: 'Onyx by Thrunic'
+caption: 'An embroidered Onyx!'
+date: '2023-12-27'
+intro: 'Thrunic used the same Onyx pattern as a previous version, but made various improvements when sewing this one.'
+tags: ['onyx']
+maker: Natalia
+authors: 33070
+---
+
+
+
+This is the latest Onyx garment by maker Thrunic. For this version, he greatly improved the quality of the seams and the zipper, and moved the embroideries up a bit so that they show above the bib of his various shortalls.
+
+
diff --git a/sites/orgdocs/showcase/onyx-full-body-unisuit/index.mdx b/sites/orgdocs/showcase/onyx-full-body-unisuit/index.mdx
new file mode 100644
index 00000000000..0fff2fe7eb6
--- /dev/null
+++ b/sites/orgdocs/showcase/onyx-full-body-unisuit/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'A Onyx full-body unisuit'
+caption: 'Mirror selfie of this onyx body suit'
+date: '2023-11-01'
+intro: 'A blue full-body Onyx unisuit by Thrunic'
+tags: ['onyx']
+maker: joost
+authors: 33070
+---
+
+
+
+This is a full-body Onyx unisuit by Thrunic who created [the Onyx design](/designs/onyx).
+They write:
+
+> _A new Onyx full-body unisuit. It's got a hood, long sleeves with thumb holes, and long legs. It's fully lined except for the sleeves. It looks a lot like a wetsuit._
+>
+> _I took it for a test swim in the cool waters around here, and it certainly does confer some warmth, though not nearly as much as a real wetsuit. I think it would work best as a garment for boating or other activities where you'll both get wet and a lot of sun exposure. It's not particularly warm when dry, but doesn't lose much insulation when it gets wet._
diff --git a/sites/orgdocs/showcase/outfit-wahid-theo-florent-by-paul/index.mdx b/sites/orgdocs/showcase/outfit-wahid-theo-florent-by-paul/index.mdx
new file mode 100644
index 00000000000..ca69336ac5c
--- /dev/null
+++ b/sites/orgdocs/showcase/outfit-wahid-theo-florent-by-paul/index.mdx
@@ -0,0 +1,11 @@
+---
+maker: 'unknown'
+caption: 'Outfit - Florent, Theodore & Wahid by Paul'
+date: '2018-01-02'
+intro: 'Outfit - Florent, Theodore & Wahid by Paul'
+title: 'Outfit - Florent, Theodore & Wahid by Paul'
+tags: ['florent', 'theo', 'wahid']
+authors: 433
+---
+
+
diff --git a/sites/orgdocs/showcase/outfit-wahid-theo-simon-by-paul/index.mdx b/sites/orgdocs/showcase/outfit-wahid-theo-simon-by-paul/index.mdx
new file mode 100644
index 00000000000..806533cbffc
--- /dev/null
+++ b/sites/orgdocs/showcase/outfit-wahid-theo-simon-by-paul/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'unknown'
+caption: 'Outfit - Simon, Theo & Wahid by Paul'
+date: '2018-01-02'
+intro: 'Outfit - Simon, Theo & Wahid by Paul'
+title: 'Outfit - Simon, Theo & Wahid by Paul'
+tags: ['simon', 'wahid', 'theo']
+authors: 433
+---
+
+
+
+
diff --git a/sites/orgdocs/showcase/packer-pocket-bruce-by-nael-with-mini-tutorial/index.mdx b/sites/orgdocs/showcase/packer-pocket-bruce-by-nael-with-mini-tutorial/index.mdx
new file mode 100644
index 00000000000..44121f6a961
--- /dev/null
+++ b/sites/orgdocs/showcase/packer-pocket-bruce-by-nael-with-mini-tutorial/index.mdx
@@ -0,0 +1,28 @@
+---
+title: 'Packer pocket Bruce by Naël with mini-tutorial'
+caption: 'This is a picture of the interior'
+date: '2024-05-05'
+intro: 'The maker graciously shared details of this new packer pocket Bruce.'
+authors: 32412
+tags: ['bruce']
+---
+
+
+
+The maker graciously shared details of this new packer pocket Bruce. Naël blogged about the creation of these here (in French): https://petitslutins.eu/tuto/boxer_packer.php
+
+"I’ve combined two versions with the only difference being the option for the depth of the pouch. This option adds (or removes) the dart on the front piece. This piece is already meant to be doubled, so you just have to use one version with a pouch for the outside and one without a pouch for the inside.
+
+"The pattern pieces look like this:
+
+
+
+"Then to make the opening for the packer pouch, I’ve cut the top of the inside front piece 2cm from the waistband, then I’ve added 3cm so that the two pieces overlap and finally a hem allowance for each of the two pieces (mine was 1cm, I should have used more since it doesn’t overlap enough). The two pieces can be seen in the image at the top.
+
+"Then to put it together, start by hemming the two modified pieces (I used a double needle), close the dart on the pouch before attaching the front pieces to the insets, then when you attach the front piece to the sides, overlap the flap so that it will give the desired result.
+
+"I couldn’t test it with a real packer (which is usually heavier than my socks) but if there are problems with the stability of the pouch, it’s possible to add stitches between the flap and the pouch to close up the opening a bit more and prevent it from gaping too much."
+
+
+
+Hopefully a designer will be able to code this option into the FreeSewing Bruce design in the future. In the meantime, thank you to Naël for sharing their process!
diff --git a/sites/orgdocs/showcase/paco-by-joost/index.mdx b/sites/orgdocs/showcase/paco-by-joost/index.mdx
new file mode 100644
index 00000000000..5995b99bf2c
--- /dev/null
+++ b/sites/orgdocs/showcase/paco-by-joost/index.mdx
@@ -0,0 +1,14 @@
+---
+authors: 1
+caption: 'These Paco pants were the initial test for this pattern'
+date: '2020-08-08'
+intro: "Here's the very first Paco pair I've made. These ones have side pockets, no back pockets, and an elasticated hem."
+title: 'Joost does Paco'
+tags: ['paco']
+---
+
+
+
+Here's the very first Paco pair I've made. These ones have side pockets, no back pockets, and an elasticated hem.
+
+In other words, these are made with all default options.
diff --git a/sites/orgdocs/showcase/paco-by-karen/index.mdx b/sites/orgdocs/showcase/paco-by-karen/index.mdx
new file mode 100644
index 00000000000..11af7e89164
--- /dev/null
+++ b/sites/orgdocs/showcase/paco-by-karen/index.mdx
@@ -0,0 +1,21 @@
+---
+maker: 'unknown'
+caption: 'Rayon Paco pants in a dark floral print'
+date: '2021-04-01'
+intro: "The Pacos were made in a rayon challis, with the default options (and the front rise lowered a touch). They're modelled here with a bonus Teagan T-shirt."
+title: 'Tropical Pacos'
+tags: ['paco', 'teagan']
+authors: 13050
+---
+
+
+
+The Pacos were made in a rayon challis, with the default options (and the front rise lowered a touch). They're modelled here with a bonus Teagan T-shirt.
+
+
+
+Some additional views...
+
+
+
+
diff --git a/sites/orgdocs/showcase/paco-by-stefan/index.mdx b/sites/orgdocs/showcase/paco-by-stefan/index.mdx
new file mode 100644
index 00000000000..2c6f871b7e3
--- /dev/null
+++ b/sites/orgdocs/showcase/paco-by-stefan/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'A wearable toile of Paco pants'
+date: '2021-07-26'
+intro: "We're very impressed with these Pacos made by Stefan. This was his toile which is very wearable. He did an incredible job and got really great fit for a first toile."
+title: "Stefan's stripey Pacos"
+tags: ['paco']
+---
+
+
+
+We're very impressed with these Pacos made by Stefan. This was his toile which is very wearable. He did an incredible job and got really great fit for a first toile.
+
+:::note
+This picture is from Stefan Thanheiser-Fischer and was shared in the [FreeSewing Facebook group](https://www.facebook.com/groups/627769821272714). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/paco-pj-shorts/index.mdx b/sites/orgdocs/showcase/paco-pj-shorts/index.mdx
new file mode 100644
index 00000000000..dc0c7049b18
--- /dev/null
+++ b/sites/orgdocs/showcase/paco-pj-shorts/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Duck'
+caption: 'An updated version of Paco as PJ shorts, now with yoke'
+date: '2022-07-13'
+intro: 'Paco PJ shorts, now with added yoke'
+title: 'Paco PJ shorts, now with added yoke'
+tags: ['paco']
+---
+
+
+
+Like [comixminx's Paco showcase](https://freesewing.org/showcase/duvet-trousers-ahoy/), Duck adjusted their Paco PJ shorts to add a yoke. They reported: "The fit is so much better now, they don't feel too tight in the crotch, and don't feel like they're about to slip off my butt all the time"
+
+
+
+
diff --git a/sites/orgdocs/showcase/pirate-bruce/index.mdx b/sites/orgdocs/showcase/pirate-bruce/index.mdx
new file mode 100644
index 00000000000..14ae2334a06
--- /dev/null
+++ b/sites/orgdocs/showcase/pirate-bruce/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'Arrr!'
+date: '2016-08-19'
+intro: "This picture is from the Instagram feed of Irene's Stoffen ."
+title: 'Boxers for Sjoerd, by Irene'
+tags: ['bruce']
+---
+
+
+
+This picture is from [the Instagram feed](https://www.instagram.com/p/BJS0jaThfh1/) of [Irene's Stoffen](https://www.facebook.com/irenes.stoffen).
diff --git a/sites/orgdocs/showcase/pregnant-lady-penelope/index.mdx b/sites/orgdocs/showcase/pregnant-lady-penelope/index.mdx
new file mode 100644
index 00000000000..c95f32219c2
--- /dev/null
+++ b/sites/orgdocs/showcase/pregnant-lady-penelope/index.mdx
@@ -0,0 +1,27 @@
+---
+maker: 'unknown'
+caption: 'A Penelope modeled with a baby bump'
+date: '2022-04-05'
+intro: 'The maker made the following adjustments to adapt Penelope to work with knit fabric and her pregnant belly:'
+title: 'Pregnant-lady Penelope'
+tags: ['penelope']
+---
+
+
+
+The maker made the following adjustments to adapt Penelope to work with knit fabric and her pregnant belly:
+
+- Took new measurements with "waist" at the narrowest part of her body, which was several cm higher than normal, up at the ribcage
+- Added 15cm to the vertical measurements, then used that length of swim elastic to scrunch the top 30cm or so on the side seams
+- Omitted the back vent and trimmed the seam allowance on the straight side of the Back part to make it cut on fold
+- Took the width of the darts out of the sides and waistband
+- Reduced the ease to 0% (in advanced options) and sewed extra wide seam allowances, an imprecise method of accounting for the stretch of the fabric that ended up working out well
+- She printed the pattern with a hem bonus of −10% and later took another ~1.5cm out of each side
+
+She reports that this was very easy to sew without the zipper requirement of woven fabric, and that she is happy with the outcome!
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/printed-charlies-by-william/index.mdx b/sites/orgdocs/showcase/printed-charlies-by-william/index.mdx
new file mode 100644
index 00000000000..1a7012e98c8
--- /dev/null
+++ b/sites/orgdocs/showcase/printed-charlies-by-william/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'William'
+caption: 'William is rocking these patterned blue Charlies'
+date: '2023-03-21'
+intro: 'William is back at it, making a top-notch pair of Charlies in this abstract patterned blue denim with just a hint of stretch. We think they turned out awesome - way to go, William!'
+title: 'Printed Charlies by William'
+tags: ['charlie']
+---
+
+
+
+William is back at it, making a top-notch pair of Charlies in this abstract patterned blue denim with just a hint of stretch. We think they turned out awesome - way to go, William!
diff --git a/sites/orgdocs/showcase/purple-bruce/index.mdx b/sites/orgdocs/showcase/purple-bruce/index.mdx
new file mode 100644
index 00000000000..c0463eef6af
--- /dev/null
+++ b/sites/orgdocs/showcase/purple-bruce/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'These are slightly shortened in comparison to the original pattern'
+date: '2016-08-23'
+intro: 'This picture is from the Instagram feed of zephine_malvimavie .'
+title: 'Purple boxers by zephine_malvimavie'
+tags: ['bruce']
+---
+
+
+
+This picture is from [the Instagram feed](https://www.instagram.com/p/BJcIzihhz-b-2_3G5FtvtsnUz1ZKoqADYPAyZw0/) of [zephine_malvimavie](https://instagram.com/zephine_malvimavie).
diff --git a/sites/orgdocs/showcase/purple-huey/index.mdx b/sites/orgdocs/showcase/purple-huey/index.mdx
new file mode 100644
index 00000000000..ed6cc6e0629
--- /dev/null
+++ b/sites/orgdocs/showcase/purple-huey/index.mdx
@@ -0,0 +1,15 @@
+---
+authors: 1
+caption: 'Yes, that vintage Atari T-shirt is pretty sweet too.'
+date: '2017-10-18'
+intro: 'This post is originally appeared on the Instagram feed of joostdecock .'
+title: "This was the first ever Huey that's been made and of course it's purple"
+tags: ['huey']
+---
+
+
+
+This post is [originally appeared](https://www.instagram.com/p/BaRWb34jYCL/)
+on [the Instagram feed of joostdecock](https://www.instagram.com/joostdecock/).
+
+It is reposted here with permission.
diff --git a/sites/orgdocs/showcase/pyjama-paco-by-gaelle/index.mdx b/sites/orgdocs/showcase/pyjama-paco-by-gaelle/index.mdx
new file mode 100644
index 00000000000..972be240c48
--- /dev/null
+++ b/sites/orgdocs/showcase/pyjama-paco-by-gaelle/index.mdx
@@ -0,0 +1,14 @@
+---
+authors: 27669
+caption: 'Pyjama pants'
+date: '2022-12-11'
+intro: 'Here’s a pyjama Paco by Gaëlle, without pockets or elasticated cuffs.'
+title: 'Pyjama Paco by Gaëlle'
+tags: ['paco']
+---
+
+
+
+Here’s a pyjama Paco by Gaëlle, without pockets or elasticated cuffs.
+
+
diff --git a/sites/orgdocs/showcase/quentin-carlita/index.mdx b/sites/orgdocs/showcase/quentin-carlita/index.mdx
new file mode 100644
index 00000000000..d878ce609db
--- /dev/null
+++ b/sites/orgdocs/showcase/quentin-carlita/index.mdx
@@ -0,0 +1,27 @@
+---
+maker: 'quentin'
+caption: "Quentin's Carlita coat"
+date: '2021-09-16'
+intro: 'The talented Quentin made this sleek and stylish Carlita coat.'
+title: "Quentin's Carlita coat"
+tags: ['carlita']
+---
+
+
+
+The talented Quentin made this sleek and stylish Carlita coat.
+
+It was made from a thick wool, found in a destash event, and lined in silk.
+
+He mentioned a few tweaks:
+
+- the back is getting a box pleat above the waist. The seam at the waist will be covered with half belts. Below the waist comes another pleat arrangement (Box pleat with a vent underneath)
+- the front is getting vertical welt pockets for holding your hands between chest and waist (offset from the princess seam to reduce bulk and provide a bit more room in the pocket before the front edge and slightly slanted to go with the movement of the hand) and jetted pockets at the waist (instead of patch pockets)
+- the front lining gets one jetted pocket, with the narrowest welt I have ever made... pattern matched of course
+
+Here are a few making-of photos. For even more, check out Quentin's Instagram!
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/quilted-jersey-huey/index.mdx b/sites/orgdocs/showcase/quilted-jersey-huey/index.mdx
new file mode 100644
index 00000000000..5f5dbb24d6d
--- /dev/null
+++ b/sites/orgdocs/showcase/quilted-jersey-huey/index.mdx
@@ -0,0 +1,23 @@
+---
+maker: 'unknown'
+caption: 'Going for that casual and too cool to look at the camera look.'
+date: '2017-12-11'
+intro: 'A Huey in quilted jersey by Andrew Myles, aka Buster'
+title: 'A Huey in quilted jersey by Andrew Myles, aka Buster'
+tags: ['huey']
+authors: 2590
+---
+
+
+
+
+
+:::tip More pictures and info in the original blog post
+
+This picture
+[originally appeared](https://mensew.wordpress.com/2017/12/10/hugo-hoodie-freesewing-org/)
+on [@Buster](/users/user?id=2590)'s [MenSew](https://mensew.wordpress.com/) blog. It is reposted here with persmission.
+
+Do check out the blog post for there are loads more pictures and he also writes about his
+experience using [freesewing.org](/).
+:::
diff --git a/sites/orgdocs/showcase/ramoth-cathrin-corset/index.mdx b/sites/orgdocs/showcase/ramoth-cathrin-corset/index.mdx
new file mode 100644
index 00000000000..730a355e3fb
--- /dev/null
+++ b/sites/orgdocs/showcase/ramoth-cathrin-corset/index.mdx
@@ -0,0 +1,18 @@
+---
+authors: 23386
+caption: 'Ramoth Cathrin Corset ...with butterflies!'
+date: '2023-01-31'
+intro: "Here's a fantastic butterfly Cathrin corset made by Ramoth - their very first! They shared this about future alterations:"
+title: 'Cathrin Corset by Ramoth'
+tags: ['cathrin']
+---
+
+
+
+Here's a fantastic butterfly Cathrin corset made by Ramoth - their very first! They shared this about future alterations:
+
+"I might alter the front to be straighter/flatter next time; I'm not curved there, and the front edge flipped out a little and caught on my desk sometimes. I made this out of scraps (and laced it with a shoelace), so I don't feel too bad that the construction is a bit slapdash."
+
+That being said, we think it looks impeccable!
+
+
diff --git a/sites/orgdocs/showcase/ramoth-short-sleeve-simon/index.mdx b/sites/orgdocs/showcase/ramoth-short-sleeve-simon/index.mdx
new file mode 100644
index 00000000000..cb34d4efceb
--- /dev/null
+++ b/sites/orgdocs/showcase/ramoth-short-sleeve-simon/index.mdx
@@ -0,0 +1,16 @@
+---
+authors: 23386
+caption: "Ramoth's short-sleeve Simon with most of the shaping shifted to the back darts"
+date: '2021-09-30'
+intro: "Ramoth's short-sleeve Simon shirt"
+title: "Ramoth's short-sleeve Simon shirt"
+tags: ['simon']
+---
+
+
+
+
+
+Remember [Ramoth's first draft of Simon with fit notes](https://freesewing.org/showcase/simon-by-ramoth/)? Check out their latest version! We dig the great fit, the short sleeves design choice, and the perfect fabric selection.
+
+> Here's a short-sleeve Simon with most of the shaping shifted to the back darts. I really like this version and probably will be filling up my closet with it in various prints!
diff --git a/sites/orgdocs/showcase/ramoth-simon-flannel/index.mdx b/sites/orgdocs/showcase/ramoth-simon-flannel/index.mdx
new file mode 100644
index 00000000000..42fd755d68b
--- /dev/null
+++ b/sites/orgdocs/showcase/ramoth-simon-flannel/index.mdx
@@ -0,0 +1,21 @@
+---
+authors: 23386
+caption: 'Love the moths on this beautiful Simon flannel'
+date: '2023-02-03'
+intro: "Ramoth's Simon Flannel"
+title: "Ramoth's Simon Flannel"
+tags: ['simon']
+---
+
+
+
+
+
+Ramoth made this stunning upsized Simon for a cozy fall flannel. They increased the ease generally, and added a sleeve gusset to account for a fitting challenge. The stock version of the sleeves tend to pull tight at the shoulder/bicep when they moved their arms, but as you can see, the gusset solved that!
+
+
+
+
+They're still having trouble with the collar ease -- even at the max, it's a bit tight. For the next round, Ramoth's planning to fudge my neck measurement a bit to help with that.
+
+And to wrap things up, this from Ramoth about using FreeSewing patterns: "Love that I am able to get patterns that I don't have to shorten through the torso, though -- that's absolutely my favorite thing about freesewing!"
diff --git a/sites/orgdocs/showcase/red-button-simon/index.mdx b/sites/orgdocs/showcase/red-button-simon/index.mdx
new file mode 100644
index 00000000000..ed85a37401d
--- /dev/null
+++ b/sites/orgdocs/showcase/red-button-simon/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 1
+caption: 'A Simon shirt by Joost'
+date: '2017-04-03'
+intro: 'A Simon shirt with red contrasting buttons.'
+title: 'Joost does Simon again'
+tags: ['simon']
+---
+
+
+
+A Simon shirt with red contrasting buttons.
diff --git a/sites/orgdocs/showcase/red-theo/index.mdx b/sites/orgdocs/showcase/red-theo/index.mdx
new file mode 100644
index 00000000000..77480a56a35
--- /dev/null
+++ b/sites/orgdocs/showcase/red-theo/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Not the greatest quality picture, but what can we do'
+date: '2017-08-14'
+intro: 'Petros writes (via Facebook messenger):'
+title: 'Red bermuda shorts by Petros'
+tags: ['theo']
+---
+
+
+
+Petros writes (via Facebook messenger):
+
+> Hi, Joost. The new platform is amazing. Congratulations!!! I have posted a comment under username Petros. I used the pattern Theo from the previous site and i sewed a bermuda shorts under your guidance and thorough instructions of the youtube tutorials you 've made. I have never sewed a gament this complex before and yet you made it easy. You are extraordinary.
+
+
diff --git a/sites/orgdocs/showcase/redblaquegolden-simon-sandy/index.mdx b/sites/orgdocs/showcase/redblaquegolden-simon-sandy/index.mdx
new file mode 100644
index 00000000000..12bdea0a83f
--- /dev/null
+++ b/sites/orgdocs/showcase/redblaquegolden-simon-sandy/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'RedBlaqueGolden'
+caption: "RedBlaqueGolden's second version of Simon with lace"
+date: '2021-09-19'
+intro: 'Where to start with this fantastic outfit? A FreeSewing user said it best:'
+title: "RedBlaqueGolden's vintage high fashion outfit featuring Simon and Sandy"
+tags: ['simon', 'sandy']
+---
+
+
+
+Where to start with this fantastic outfit? A FreeSewing user said it best:
+
+> I can't stop looking at the pictures because you're just INCREDIBLE :star_struck: the posing, the colour coordination down to shoes socks and watch, everything just absolutely brilliant, the Simon with that collar is such a good look!
+
+We love this "vintage high fashion" version of Simon and Sandy by RedBlaqueGolden, who omitted the standard Simon collar and opted for a mandarin style collar instead.
+
+
+
+
diff --git a/sites/orgdocs/showcase/reversible-wahid-waistcoat-for-toddler/index.mdx b/sites/orgdocs/showcase/reversible-wahid-waistcoat-for-toddler/index.mdx
new file mode 100644
index 00000000000..3f9e4e04a08
--- /dev/null
+++ b/sites/orgdocs/showcase/reversible-wahid-waistcoat-for-toddler/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'unknown'
+caption: 'Check out this cute hobbit costume!'
+date: '2023-07-11'
+intro: 'This linen Wahid waistcoat was made for a 1-year-old toddler. It is made of linen and was made fully reversible following a tutorial by Sarah Kirsten: How to Sew a Lined Vest - Two Easy Methods'
+title: 'A reversible Wahid waistcoat for a toddler'
+tags: ['wahid']
+---
+
+
+
+This linen Wahid waistcoat was made for a 1-year-old toddler. It is made of linen and was made fully reversible following a tutorial by Sarah Kirsten: [How to Sew a Lined Vest - Two Easy Methods](https://sarkirsten.com/blog/2018/9/22/omuy047cpuvy6vy86m9e83caymfyae)
+
+The maker bumped up the chest (8%), waist (12%), and hips (12%) ease and reports she will increase the ease for the next one even more so that it can be worn longer. She also decreased the length bonus to 0% to allow the pattern pieces to each fit on one printed page.
+
+The outfit also features the Pythia paenula, a not-yet-published cloak pattern.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/ricos-huey/index.mdx b/sites/orgdocs/showcase/ricos-huey/index.mdx
new file mode 100644
index 00000000000..dbe96631913
--- /dev/null
+++ b/sites/orgdocs/showcase/ricos-huey/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'A FreeSewing user wearing their new Huey'
+date: '2020-11-03'
+intro: 'Another view'
+title: 'Huey by Ricos'
+tags: ['huey']
+---
+
+
+
+Another view
+
+
diff --git a/sites/orgdocs/showcase/ricos-sven/index.mdx b/sites/orgdocs/showcase/ricos-sven/index.mdx
new file mode 100644
index 00000000000..cffd66b4998
--- /dev/null
+++ b/sites/orgdocs/showcase/ricos-sven/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'A top-notch Sven, but just wait...'
+date: '2020-11-03'
+intro: "There's more! Check out the sleeves and stripes on this Sven!"
+title: 'Sven by Ricos'
+tags: ['sven']
+---
+
+
+
+There's more! Check out the sleeves and stripes on this Sven!
+
+
+
+
diff --git a/sites/orgdocs/showcase/rockerkittens-simone-muslin-with-a-few-modifications/index.mdx b/sites/orgdocs/showcase/rockerkittens-simone-muslin-with-a-few-modifications/index.mdx
new file mode 100644
index 00000000000..85d20f01b88
--- /dev/null
+++ b/sites/orgdocs/showcase/rockerkittens-simone-muslin-with-a-few-modifications/index.mdx
@@ -0,0 +1,21 @@
+---
+title: "RockerKitten's Simone muslin with a few modifications"
+caption: 'RockerKitten sewed this muslin of the Simone shirt'
+date: '2024-01-06'
+intro: 'RockerKitten sewed this muslin of the Simone shirt with a few mods.'
+tags: ['simone']
+maker: Natalia
+authors: 50818
+---
+
+
+
+RockerKitten sewed this muslin of the Simone shirt with a few mods.
+
+
+
+
+
+
+
+This was made by RockerKitten, [@rockerkitten on Instagram](https://www.instagram.com/rockerkitten/), and has been shared here with permission.
diff --git a/sites/orgdocs/showcase/rostic-wahid/index.mdx b/sites/orgdocs/showcase/rostic-wahid/index.mdx
new file mode 100644
index 00000000000..7a935e96b02
--- /dev/null
+++ b/sites/orgdocs/showcase/rostic-wahid/index.mdx
@@ -0,0 +1,29 @@
+---
+maker: 'rostic'
+caption: 'This lovely Wahid was made from floral cotton'
+date: '2022-01-22'
+intro: "Rostic made this great Wahid waistcoat! You won't want to miss the detail pictures below."
+title: "Rostic's excellent Wahid waistcoat"
+tags: ['wahid']
+---
+
+
+
+Rostic made this great Wahid waistcoat! You won't want to miss the detail pictures below.
+
+They shared:
+
+> wahid pattern worked out great for me! used some 1975 laura ashley floral cotton from my mum's collection and an old bed sheet for lining
+
+> I used the pattern to my measurements without any adjustments, it is a very good fit but I can still squeeze another layer underneath for warmth. I used the instructions for some of the assembly but not all - I assembled the outer layer and lining separately including the shoulder seams while leaving the side seams open. Then I sewed outside to lining at the armscye right sides together to have a clean finished edge that's easy to press at the shoulder. Next I sewed side seams right sides together; lining and outer layer form one long continuous side seam. Lastly I did the edges all the way around in two parts with what I've seen called the "burrito roll" technique.
+
+> For finishing I added pick stitching around all the edges (somewhat visible in one of the detail pictures showing the inside) and closures.
+
+> I didn't end up interfacing the full front since I didn't have enough on hand, but I think the materials are a good weight on their own. The outer floral fabric is a heavier 1970s Laura Ashley cotton. The lining is old bed sheet in an unobtrusive muted blue.
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/rowan-reversible-florence/index.mdx b/sites/orgdocs/showcase/rowan-reversible-florence/index.mdx
new file mode 100644
index 00000000000..1fd42d4a1f2
--- /dev/null
+++ b/sites/orgdocs/showcase/rowan-reversible-florence/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Rowan'
+caption: "One side of Rowan's reversible Florence face mask"
+date: '2023-01-28'
+intro: "Impeccable work from Rowan on this Florence Face Mask, but just wait... It's also reversible!"
+title: "Rowan's Reversible Florence"
+tags: ['florence']
+---
+
+
+
+Impeccable work from Rowan on this Florence Face Mask, but just wait... It's also reversible!
+
+Kudos to you for clicking through to the full Showcase post, because that means you get to see the other side. They're both so good. How would you even pick?
+
+
diff --git a/sites/orgdocs/showcase/rowans-leaf-print-florence/index.mdx b/sites/orgdocs/showcase/rowans-leaf-print-florence/index.mdx
new file mode 100644
index 00000000000..45fe54a56a8
--- /dev/null
+++ b/sites/orgdocs/showcase/rowans-leaf-print-florence/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Rowan'
+caption: 'Love the coordinating leaf prints'
+date: '2022-01-22'
+intro: "Rowan's first ever FreeSewing pattern was this Florence! We are big fans of the coordinating prints."
+title: "Rowan's leaf-print Florence"
+tags: ['florence']
+---
+
+
+
+Rowan's first ever FreeSewing pattern was this Florence! We are big fans of the coordinating prints.
+
+
diff --git a/sites/orgdocs/showcase/sample-wahid/index.mdx b/sites/orgdocs/showcase/sample-wahid/index.mdx
new file mode 100644
index 00000000000..11064e633f4
--- /dev/null
+++ b/sites/orgdocs/showcase/sample-wahid/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'I made this as a sample when designing the pattern. The default neckline has been lowered since.'
+date: '2016-05-02'
+intro: 'FIXME_no_intro'
+title: 'A blue/greenish Wahid waistcoat by joostdecock'
+tags: ['wahid']
+---
+
+
diff --git a/sites/orgdocs/showcase/sandy-by-adam/index.mdx b/sites/orgdocs/showcase/sandy-by-adam/index.mdx
new file mode 100644
index 00000000000..e4517cf91a0
--- /dev/null
+++ b/sites/orgdocs/showcase/sandy-by-adam/index.mdx
@@ -0,0 +1,10 @@
+---
+maker: 'unknown'
+caption: 'A simple Sandy skirt made from an old curtain.'
+date: '2018-10-08'
+intro: 'FIXME_no_intro'
+title: 'Sandy Skirt by Adam'
+tags: ['sandy']
+---
+
+
diff --git a/sites/orgdocs/showcase/sandy-by-anneke/index.mdx b/sites/orgdocs/showcase/sandy-by-anneke/index.mdx
new file mode 100644
index 00000000000..24e58e16d18
--- /dev/null
+++ b/sites/orgdocs/showcase/sandy-by-anneke/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'Anneke Caramin'
+caption: "back view of Anneke's shiny black Sandy skirt"
+date: '2020-10-20'
+intro: "Read Anneke's extensive 2018 blogpost about her new Sandy skirt , including how she added pockets and a curved waistband."
+title: "Anneke's shiny black Sandy circle skirt"
+tags: ['sandy']
+---
+
+
+
+Read Anneke's extensive 2018 [blogpost about her new Sandy skirt](http://www.annekecaramin.com/2018/08/garbage-dragon.html), including how she added pockets and a curved waistband.
+
+Other views:
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/sandy-by-jv/index.mdx b/sites/orgdocs/showcase/sandy-by-jv/index.mdx
new file mode 100644
index 00000000000..da3ba647619
--- /dev/null
+++ b/sites/orgdocs/showcase/sandy-by-jv/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'RedBlaqueGolden'
+caption: 'JV in a Sandy with matching mask'
+date: '2020-10-20'
+intro: 'JV shared their new dress using the Sandy skirt on Twitter.'
+title: "JV's dress made using a Sandy circle skirt"
+tags: ['sandy']
+---
+
+
+
+JV shared their [new dress using the Sandy skirt](https://twitter.com/RedBlaqueGolden/status/1317752221933633537) on Twitter.
+
+Here are some other views.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/sandy-by-karin/index.mdx b/sites/orgdocs/showcase/sandy-by-karin/index.mdx
new file mode 100644
index 00000000000..4cf37ccdef2
--- /dev/null
+++ b/sites/orgdocs/showcase/sandy-by-karin/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'Karin poses by the water in her new skirt'
+date: '2018-11-18'
+intro: 'Sandy by Karin'
+title: 'Sandy by Karin'
+tags: ['sandy']
+---
+
+
+
+After [her previous showcase of Hugo](/showcase/hugo-by-karin), Karin is back with another freesewing make:
+this Sandy skirt.
+
+
+
+
+
+More details [on Karin's blog](https://www.karinkay.nl/sandy-een-gratis-patroon-voor-een-cirkelrok-op-maat/) (in Dutch);
diff --git a/sites/orgdocs/showcase/sandy-by-sunshine/index.mdx b/sites/orgdocs/showcase/sandy-by-sunshine/index.mdx
new file mode 100644
index 00000000000..d2602ccfac6
--- /dev/null
+++ b/sites/orgdocs/showcase/sandy-by-sunshine/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'Paneled Sandy skirt by Sunshine'
+date: '2021-02-15'
+intro: 'This lovely Sandy skirt was made by Sunshine. The maker shared more information about the project:'
+title: 'Sandy skirt by Sunshine'
+tags: ['sandy']
+---
+
+
+
+This lovely Sandy skirt was made by Sunshine. The maker shared more information about the project:
+
+"I couldn't fit the Sandy pattern on the 44"fabric I bought, so I ended up folding it a few times and using it to cut sections for a panel skirt using alternating colors instead that I had dyed last week. I added a strip on the bottom to increase the length. Then, I added a trim that I had sitting in my sewing basket for 2 years. I hadn't previously considered using a section of the Sandy as a panel segment, but it worked super well!!! I'm not perfect at sewing, but I think it turned out alright!"
+
+:::note
+This project is from [the FreeSewing Discord](https://discord.freesewing.org/)
+and has been shared here with permission.
+:::
diff --git a/sites/orgdocs/showcase/scifaeries-simon-shirt/index.mdx b/sites/orgdocs/showcase/scifaeries-simon-shirt/index.mdx
new file mode 100644
index 00000000000..248eff88a1d
--- /dev/null
+++ b/sites/orgdocs/showcase/scifaeries-simon-shirt/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Leny A.'
+caption: 'Check out that perfect pattern alignment'
+date: '2022-01-22'
+intro: "This Simon shirt looks great and the maker's pattern placement is impeccable!"
+title: "SciFaerie's Simon shirt"
+tags: ['simon']
+---
+
+
+
+This Simon shirt looks great and the maker's pattern placement is impeccable!
+
+
diff --git a/sites/orgdocs/showcase/sebastiansew-paco-2/index.mdx b/sites/orgdocs/showcase/sebastiansew-paco-2/index.mdx
new file mode 100644
index 00000000000..69f0e4b275e
--- /dev/null
+++ b/sites/orgdocs/showcase/sebastiansew-paco-2/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'SebastianSew'
+caption: 'Paco pants for outdoor work without ankle elastic'
+date: '2021-09-07'
+intro: "These crowd-favorite Paco pants skipped the ankle elastic (check out SebastianSew's other Paco showcase for a version with elastic) and feature back, front and lateral pockets. Fabric is all-cotton denim, medium weight fabric."
+title: 'Another outstanding ourdoorsy pair of Pacos by SebastianSew'
+tags: ['paco']
+---
+
+
+
+These crowd-favorite Paco pants skipped the ankle elastic (check out [SebastianSew's other Paco showcase](https://freesewing.org/showcase/sebastiansew-paco/) for a version with elastic) and feature back, front and lateral pockets. Fabric is all-cotton denim, medium weight fabric.
+
+
diff --git a/sites/orgdocs/showcase/sebastiansew-paco/index.mdx b/sites/orgdocs/showcase/sebastiansew-paco/index.mdx
new file mode 100644
index 00000000000..7b1534de783
--- /dev/null
+++ b/sites/orgdocs/showcase/sebastiansew-paco/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'SebastianSew'
+caption: 'Paco pants for outdoor work with ankle elastic'
+date: '2021-09-07'
+intro: 'This is the first of two super rad pairs of Paco pants by SebastianSew! These ones have ankle elastic. With back, front and lateral pockets. The fabric is all-cotton denim, medium weight fabric.'
+title: "SebastianSew's first-rate Paco pants, with elastic"
+tags: ['paco']
+---
+
+
+
+This is the first of two super rad pairs of Paco pants by SebastianSew! These ones have ankle elastic. With back, front and lateral pockets. The fabric is all-cotton denim, medium weight fabric.
+
+
diff --git a/sites/orgdocs/showcase/short-sleeve-shelly-rash-guard/index.mdx b/sites/orgdocs/showcase/short-sleeve-shelly-rash-guard/index.mdx
new file mode 100644
index 00000000000..8c0a412bd4f
--- /dev/null
+++ b/sites/orgdocs/showcase/short-sleeve-shelly-rash-guard/index.mdx
@@ -0,0 +1,13 @@
+---
+title: 'Short-sleeve Shelly rash guard'
+caption: 'A tight-fitting short-sleeve Shelly rash guard, by Thrunic.'
+date: '2023-10-16'
+intro: 'A tight-fitting short-sleeve Shelly rash guard, by Thrunic. Made from 20%spandex/80%nylon swim fabric, using a serger for the seams, a double needle for the sleeve hems, and no hem on the waist. Perfect for swimming, water sports, or as an athletic shirt.'
+tags: ['shelly']
+maker: Natalia
+authors: 33070
+---
+
+
+
+A tight-fitting short-sleeve Shelly rash guard, by Thrunic. Made from 20%spandex/80%nylon swim fabric, using a serger for the seams, a double needle for the sleeve hems, and no hem on the waist. Perfect for swimming, water sports, or as an athletic shirt.
diff --git a/sites/orgdocs/showcase/short-sleeve-short-leg-onyx-swimsuit/index.mdx b/sites/orgdocs/showcase/short-sleeve-short-leg-onyx-swimsuit/index.mdx
new file mode 100644
index 00000000000..eec48056062
--- /dev/null
+++ b/sites/orgdocs/showcase/short-sleeve-short-leg-onyx-swimsuit/index.mdx
@@ -0,0 +1,17 @@
+---
+title: 'Short-sleeve, short-leg Onyx swimsuit'
+caption: 'Short-sleeved, short-legged, Lilo & Stitch-themed swimsuit.'
+date: '2023-11-06'
+intro: ''
+tags: ['onyx']
+maker: Thrunic
+authors: 33070
+---
+
+
+
+An Onyx one-piece swimsuit/unisuit made with short sleeves and short legs. It's great for a summer beach day, looking cute and stylish while providing more modesty and sun coverage than traditional swimwear.
+
+It uses 80% nylon / 20% spandex mid-weight swim fabric for the fashion layer, and 80% polyester / 20% spandex heavyweight swim fabric for the lining layer.
+
+Made with a front zipper, a neckband, ~30% leg and sleeve length, ~-20% ease for chest, waist, hips, upper legs, ~-10% sleeve ease, ~-10% center seam ease. The seams are made with a serger/overlocker. The hems are single-fold and made with a double-needle using a triple stretch stitch. The zipper is a 12" long, #5 gauge molded plastic zipper.
diff --git a/sites/orgdocs/showcase/shorts/index.mdx b/sites/orgdocs/showcase/shorts/index.mdx
new file mode 100644
index 00000000000..b394c78d615
--- /dev/null
+++ b/sites/orgdocs/showcase/shorts/index.mdx
@@ -0,0 +1,13 @@
+---
+title: 'Shorts'
+caption: 'Shorts'
+date: '2023-11-18'
+intro: '-'
+tags: ['titan']
+maker: Galit
+authors: 49445
+---
+
+
+
+Shorts for my daughter
diff --git a/sites/orgdocs/showcase/simon-as-overshirt/index.mdx b/sites/orgdocs/showcase/simon-as-overshirt/index.mdx
new file mode 100644
index 00000000000..287c02a25a0
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-as-overshirt/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'ferdi'
+caption: 'This Simon was sewn a little wider to be worn as an overshirt'
+date: '2021-11-07'
+intro: 'What an attractive version of the Simon shirt! The maker says:'
+title: 'Simon as overshirt by Ferdi'
+tags: ['simon']
+authors: 1972
+---
+
+
+
+What an attractive version of the Simon shirt! The maker says:
+
+> My third Simon shirt, this time as an overshirt, which I therefore made a little wider (well, at the shoulders it has become a little too wide). The fabric is 60/40% merino wool / cordura - very comfy. On the left is a small zipper pocket inserted. I wear it both hiking and in the office.
+
+
diff --git a/sites/orgdocs/showcase/simon-by-alan/index.mdx b/sites/orgdocs/showcase/simon-by-alan/index.mdx
new file mode 100644
index 00000000000..ee342c566ae
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-alan/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'unknown'
+caption: 'A short-sleeved Simon shirt'
+date: '2021-06-25'
+intro: 'Alan jumped right in the sewing deep end with this Simon shirt, with very impressive results!'
+title: "Alan's short-sleeved Simon shirt"
+tags: ['simon']
+---
+
+
+
+Alan jumped right in the sewing deep end with this Simon shirt, with very impressive results!
+
+Alan shared:
+
+> This Simon shirt is the first piece of clothing that I have ever sewn. I decided to try for short sleeves since where I live is pretty much summer from March-October. I really struggled attaching the sleeves, and they came out a bit funky. As I was sewing this, making mistake after mistake, ripping seams and doing them over, I fully expected it to look horrible. I am very happy with how it turned out for my first shirt. I can't wait to try another or maybe the Hugo hoodie. Anyways... thanks for this awesome site!
+
+:::note
+This picture is from Alan on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-by-anna/index.mdx b/sites/orgdocs/showcase/simon-by-anna/index.mdx
new file mode 100644
index 00000000000..7e7ad2d7928
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-anna/index.mdx
@@ -0,0 +1,30 @@
+---
+maker: 'unknown'
+caption: 'A linen gingham Simon'
+date: '2021-06-12'
+intro: 'Anna shared this terrific Simon shirt with us! Anna said:'
+title: 'Simon shirt by Anna'
+tags: ['simon']
+---
+
+
+
+Anna shared this terrific Simon shirt with us! Anna said:
+
+> At long last, this project is finished: a men's collared dress shirt! It is made of gingham medium-weight linen, so it will be perfect for summertime. I got to practice lots of hand-sewing and tailoring with this project, and am so pleased with how it turned out.
+
+We just love the fabric choice, details, and great modeling.
+
+
+
+
+
+
+
+
+
+:::note
+This picture is from Anna, [@celtichomestead on
+Instagram](https://www.instagram.com/celtichomestead/). It is reposted here
+with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-by-deby/index.mdx b/sites/orgdocs/showcase/simon-by-deby/index.mdx
new file mode 100644
index 00000000000..f4908dd316a
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-deby/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'Deby'
+caption: 'Simon shirt with colourful details'
+date: '2021-07-26'
+intro: 'Simon by Deby'
+title: 'Simon by Deby'
+tags: ['simon']
+---
+
+
+
+Wow! This sharp Simon shirt was made by the talented Deby and modeled by her stylish husband, Achachiez. As a fellow FreeSewing contributor said in the Discord community, "the colour details are great!"
+
+:::note
+This picture is from [@achachiez on Twitter](https://twitter.com/achachiez) who goes by the same username on [Facebook](https://web.facebook.com/achachiez/), and sewn by [Deby on Facebook](https://web.facebook.com/nyatichi.deborah). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-by-julian/index.mdx b/sites/orgdocs/showcase/simon-by-julian/index.mdx
new file mode 100644
index 00000000000..7457cb42302
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-julian/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'A sharp Simon shirt'
+date: '2021-06-12'
+intro: "It doesn't get any better than this Simon shirt by Julian! Great fabric choice, fantastic details, and he will even teach you how to make your own. Check out #simonsayssew with kelly hogaboom & julian collins ."
+title: 'Simon by Julian'
+tags: ['simon']
+---
+
+
+
+It doesn't get any better than this Simon shirt by Julian! Great fabric choice, fantastic details, and he will even teach you how to make your own. Check out [#simonsayssew with kelly hogaboom & julian collins](https://kelly.hogaboom.org/2020/07/simon-says-sew-with-kelly-hogaboom-and-julian-collins/).
+
+:::note
+This picture is from Julian, [@juliancreates on Instagram](https://www.instagram.com/juliancreates/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-by-lasermonkey12-feat-hand-sewn-buttonholes/index.mdx b/sites/orgdocs/showcase/simon-by-lasermonkey12-feat-hand-sewn-buttonholes/index.mdx
new file mode 100644
index 00000000000..0c50a23920f
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-lasermonkey12-feat-hand-sewn-buttonholes/index.mdx
@@ -0,0 +1,24 @@
+---
+title: 'Simon by lasermonkey12, feat. hand-sewn buttonholes'
+caption: "Don't miss the details on this great-looking Simon"
+date: '2024-01-06'
+intro: 'This Simon shirt features hand-sewn buttonholes and a home-patterned tower placket.'
+tags: ['simon']
+maker: Natalia
+---
+
+
+
+This Simon shirt by maker lasermonkey12 features hand-sewn buttonholes and a home-patterned tower placket.
+
+She shared that this version has hand-sewn buttonholes and a home-patterned tower placket. The detail photos below include the accent fabric for placket, inside undercollar and inside cuffs because it's fun!
+
+
+
+
+
+
+
+
+
+These photos were shared by lasermonkey12 on [Discord](https://discord.freesewing.org/), and have been reposted here with permission.
diff --git a/sites/orgdocs/showcase/simon-by-mick/index.mdx b/sites/orgdocs/showcase/simon-by-mick/index.mdx
new file mode 100644
index 00000000000..b5b769dae44
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-mick/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: 'This matching shirt and mask are coordinated perfection'
+date: '2020-11-27'
+intro: 'Micheál made this fantastic Simon shirt in multicolored dots, with Florence face mask to match!'
+title: 'Speckled Simon Shirt by Mick'
+tags: ['simon', 'florence']
+---
+
+
+
+Micheál made this fantastic Simon shirt in multicolored dots, with Florence face mask to match!
+
+:::note
+This picture is from the instagram feed of [Micheál](https://www.instagram.com/popshaped/). It is
+posted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-by-ramoth/index.mdx b/sites/orgdocs/showcase/simon-by-ramoth/index.mdx
new file mode 100644
index 00000000000..0f2d5ca7764
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-ramoth/index.mdx
@@ -0,0 +1,20 @@
+---
+authors: 23386
+caption: "Ramoth's impressive first Simon"
+date: '2021-08-24'
+intro: 'Ramoth made this fantastic first draft of the Simon shirt and generously shared some helpful fit notes. They said:'
+title: "Ramoth's first draft of the Simon with fit notes"
+tags: ['simon']
+---
+
+
+
+Ramoth made this fantastic first draft of the Simon shirt and generously shared some helpful fit notes. They said:
+
+> Finished my first draft of the Simon! Collar was too tight and the sleeves could be a tiny bit longer, but otherwise the fit is great!
+
+We love this illustration of the value of making a mockup of a complex garment. Even with the fit issues, we think it looks great and bet the next version will be even better!
+
+
+
+
diff --git a/sites/orgdocs/showcase/simon-by-sewandrew/index.mdx b/sites/orgdocs/showcase/simon-by-sewandrew/index.mdx
new file mode 100644
index 00000000000..73718abb7c9
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-sewandrew/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Simon shirt by Andrew'
+date: '2021-01-22'
+intro: 'This excellent Simon shirt was made by Andrew, who also blogged about the process .'
+title: 'Simon by Andrew'
+tags: ['simon']
+---
+
+
+
+This excellent Simon shirt was made by Andrew, who also [blogged about the process](https://sewandrew.com/2019/03/13/spiderweb-paper-a-freesewing-shirt/).
+
+:::note
+This picture is from [the Instagram feed of @sewandrew](https://www.instagram.com/sewandrew/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-by-stefan/index.mdx b/sites/orgdocs/showcase/simon-by-stefan/index.mdx
new file mode 100644
index 00000000000..58190699a78
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-by-stefan/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'unknown'
+caption: 'Stefan wearing Simon shirt, holding his grandson'
+date: '2020-10-20'
+intro: 'Simon shirt by Stefan'
+title: 'Simon shirt by Stefan'
+tags: ['simon']
+---
+
+
+
+Stefan's Simon shirt review is unambiguous - as he puts it, "Simon shirt is what I love most". This is his first Simon, made around 2 years ago.
diff --git a/sites/orgdocs/showcase/simon-for-schorsch/index.mdx b/sites/orgdocs/showcase/simon-for-schorsch/index.mdx
new file mode 100644
index 00000000000..c8c03b62cbf
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-for-schorsch/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'A Simon for Schorsch'
+date: '2020-12-28'
+intro: "Perhaps the most adorable Simon to date, this shirt was made for a FreeSewing user's baby frog, Schorsch."
+title: 'A Simon for Schorsch'
+tags: ['simon']
+---
+
+
+
+Perhaps the most adorable Simon to date, this shirt was made for a FreeSewing user's baby frog, Schorsch.
+
+This picture was originally posted on Twitter and is reproduced here with permission.
diff --git a/sites/orgdocs/showcase/simon-on-snook/index.mdx b/sites/orgdocs/showcase/simon-on-snook/index.mdx
new file mode 100644
index 00000000000..6bbfde6993f
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-on-snook/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'unknown'
+caption: "If your partner's name was Snook, you'd call him snook too."
+date: '2017-11-25'
+intro: 'A Simon shirt by Kris for her Snook'
+title: 'A Simon shirt by Kris for her Snook'
+tags: ['simon']
+---
+
+
+
+
+
+:::tip
+
+See the original on [@web_goddess](/users/user?id=1719)'s blog
+
+This picture is from [this blog post](https://www.web-goddess.org/archive/18117)
+on [web-goddess.org](https://www.web-goddess.org/).
+
+It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/simon-shirt-by-sewingdentist/index.mdx b/sites/orgdocs/showcase/simon-shirt-by-sewingdentist/index.mdx
new file mode 100644
index 00000000000..c06d67a29f6
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-shirt-by-sewingdentist/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'sewingdentist'
+caption: 'A handsome Simon shirt'
+date: '2022-08-02'
+intro: 'sewingdentist is back with more great work, this time a Simon shirt. They shared:'
+title: 'Simon shirt by sewingdentist'
+tags: ['simon']
+---
+
+
+
+sewingdentist is back with more great work, this time a Simon shirt. They shared:
+
+> Party!😊🎉 I made this shirt a while ago for Rob and used the Simon shirt by @freesewing_org, which you can draft to your own measurements and with a lot of options. Rob wanted a seamless style button and buttenhole placket, chamfer barrel cuffs and back darts. I will use this pattern again! Only adjustment I did: extra room in the cuffs for a watch.
+
+
diff --git a/sites/orgdocs/showcase/simon-shirt-by-solstice/index.mdx b/sites/orgdocs/showcase/simon-shirt-by-solstice/index.mdx
new file mode 100644
index 00000000000..f8f6e78f792
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-shirt-by-solstice/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'Solstice'
+caption: 'An elegant version of Simon'
+date: '2022-06-27'
+intro: 'Simon shirt by Solstice'
+title: 'Simon shirt by Solstice'
+tags: ['simon']
+---
+
+
+
+We were all rather impressed with Solstice's first Simon shirt -- joost in particular now has "shirt-envy."
+
+Solstice shared some helpful comments that will be incorporated into future adjustments to Simon:
+
+> There are a couple fit issues but I'm finding ways around them so I can still wear the shirt. The hem hits at my high hip, which is too short for most of my trousers, but I have a pair that goes to my natural waist so I wear it with those. I think I'll close up the arms a little bit because the cuff openings currently go all the way to my elbows and it's a little uncomfortable. Also the neck is probably 0.5-1in too narrow for my comfort, so I style it in ways that allow me to leave the top button or two open to keep it comfortable. Oh! And I adjusted the armscye as I was sewing it because the shape was a bit off. I still love the shirt though, and I can adjust those things on my next one. Mostly I'm happy to have a shirt pattern that started with the right measurements!
+
+
diff --git a/sites/orgdocs/showcase/simon-white-stripe/index.mdx b/sites/orgdocs/showcase/simon-white-stripe/index.mdx
new file mode 100644
index 00000000000..b739540e858
--- /dev/null
+++ b/sites/orgdocs/showcase/simon-white-stripe/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Looking sharp in a striped Simon'
+date: '2020-11-27'
+intro: "Michele made this Simon shirt in a white cotton with thin blue stripes. Don't miss the dark blue thread they used to add a little extra interest!"
+title: 'White Striped Simon Shirt by Michele'
+tags: ['simon']
+---
+
+
+
+Michele made this Simon shirt in a white cotton with thin blue stripes. Don't miss the dark blue thread they used to add a little extra interest!
+
+:::note
+This picture is from the instagram feed of
+[Michele](https://www.instagram.com/swissarmywife/). It is posted here with
+permission.
+:::
diff --git a/sites/orgdocs/showcase/simone-by-gaelle/index.mdx b/sites/orgdocs/showcase/simone-by-gaelle/index.mdx
new file mode 100644
index 00000000000..27a46e2ef1e
--- /dev/null
+++ b/sites/orgdocs/showcase/simone-by-gaelle/index.mdx
@@ -0,0 +1,20 @@
+---
+title: 'Simone by Gaëlle'
+caption: 'A lovely Simone shirt with beautiful details'
+date: '2023-10-17'
+intro: 'This Simone shirt features beautiful details, including coordinated buttons and custom labels.'
+tags: ['simone']
+authors: 27669
+---
+
+
+
+The talented Gaëlle shared this Simone shirt. Don't miss the the detail photos.
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/simone-by-jackseye/index.mdx b/sites/orgdocs/showcase/simone-by-jackseye/index.mdx
new file mode 100644
index 00000000000..3b4ba712648
--- /dev/null
+++ b/sites/orgdocs/showcase/simone-by-jackseye/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'Jackseye'
+caption: "Jackseye's lovely Simone shirt"
+date: '2021-11-07'
+intro: 'We love this Simone shirt by Jackseye, who shared:'
+title: 'Simone by Jackseye'
+tags: ['simone']
+authors: 28890
+---
+
+
+
+We love this Simone shirt by Jackseye, who shared:
+
+> My Simone! It's tight at the shoulders and collar but fit exactly the way I needed everywhere else; pretty happy with it
+
+
diff --git a/sites/orgdocs/showcase/sleeveless-simon-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/sleeveless-simon-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..3dc89452614
--- /dev/null
+++ b/sites/orgdocs/showcase/sleeveless-simon-by-lasermonkey12/index.mdx
@@ -0,0 +1,13 @@
+---
+title: 'Sleeveless Simone by lasermonkey12'
+caption: 'A sleeveless Simone shirt'
+date: '2024-01-06'
+intro: 'Maker lasermonkey12 has made lots of great Simon shirts, including this sleeveless one.'
+tags: ['simone']
+maker: lasermonkey12
+authors: 31287
+---
+
+
+
+Maker lasermonkey12 has made lots of great Simon and Simone shirts. This sleeveless one is a Simone. We love the fresh look, well-suited for hot weather! This was shared on [Discord](https://discord.freesewing.org/) and is reposted here with permission.
diff --git a/sites/orgdocs/showcase/small-calico-skully-and-a-bit-of-a-pattern-test-too/index.mdx b/sites/orgdocs/showcase/small-calico-skully-and-a-bit-of-a-pattern-test-too/index.mdx
new file mode 100644
index 00000000000..8af858b4db7
--- /dev/null
+++ b/sites/orgdocs/showcase/small-calico-skully-and-a-bit-of-a-pattern-test-too/index.mdx
@@ -0,0 +1,26 @@
+---
+title: 'Small calico Skully (and a bit of a pattern test too)'
+caption: 'Skully grins at you! A small handmade skull stuffed with scraps made in a pale beige calico fabric faces the viewer.'
+date: '2023-12-05'
+intro: 'A cute little handsewn skull can be yours! This is a fairly quick project with some challenging moments and a very worthwhile result.'
+tags: ['skully']
+authors: 22141
+---
+
+
+
+I was intrigued at the time that the Skully pattern was launched; it looked cool and like it might be a fun challenge. Come the run up to Christmas, I had some calico and the idea to make a small Skully, partly as a trial and partly as a present.
+
+I'm very pleased with the result and am going to make another ASAP, to keep for myself! This first one was a learning experience and a bit of a challenge at points, but nothing was insurmountable with a bit of patience.
+
+The calico fabric is sturdy and sews well (as well as being a good colour for bone); it does fray a bit with repeated handling and I would suggest that other makers might prefer to choose a more tightly-woven fabric instead. I stitched the seamlines in black thread to mark where they should be; they look good to me personally but others might want to unpick the lines afterwards, or mark the stitching lines in a more temporary way. (The stitching did help as a kind of stay stitch though.)
+
+Some of the steps were challenging in terms of puzzling out which bit was sewn to which other piece, and in which orientation. (I definitely sewed at least one piece upside down, and unpicked after I'd worked it out.) I've given suggestions for more instruction detail, but it is definitely manageble with patience. As the instructions suggested, I sewed by hand apart from the initial marking of the seam lines. This was partly due to the fact I made a 50% size skull so a number of the individual pieces were rather small, and it was hard to press the seams as I went on.
+
+But overall it was a fun and quick sew - I did it over the weekend, completing a seam at a time in between other activities. With each seam I could feel a sense of achievement and see progress, without the difficulty level growing to be too frustrating. And the end result looks great all round! Note though that even this small one needs more scraps than you might think, in order to fill it well.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/speckles-simon/index.mdx b/sites/orgdocs/showcase/speckles-simon/index.mdx
new file mode 100644
index 00000000000..941af02816b
--- /dev/null
+++ b/sites/orgdocs/showcase/speckles-simon/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'That constrasting buttonhole packet is a great touch.'
+date: '2018-03-05'
+intro: 'Allie writes:'
+title: 'A speckled simon by Allie for her husband'
+tags: ['simon']
+---
+
+
+
+Allie writes:
+
+> Have you heard of freesewing.org? It’s pretty much the greatest thing ever!
+
+This image and the quote above are from [the Aspiring Seamstress blog](https://theaspiringseamstress.wordpress.com/2018/03/01/freesewing-org-simon/)
+It is published here with permission.
+
+Follow the link above for a review of the pattern.
diff --git a/sites/orgdocs/showcase/sterling42-wahid/index.mdx b/sites/orgdocs/showcase/sterling42-wahid/index.mdx
new file mode 100644
index 00000000000..4207c55ad22
--- /dev/null
+++ b/sites/orgdocs/showcase/sterling42-wahid/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Sterling42'
+caption: 'A sleek silver Wahid'
+date: '2021-09-28'
+intro: 'We love this sleek Wahid waistcoat by Sterling42!'
+title: "Sterling42's Wahid"
+tags: ['wahid']
+---
+
+
+
+We love this sleek Wahid waistcoat by Sterling42!
diff --git a/sites/orgdocs/showcase/stripey-teagan/index.mdx b/sites/orgdocs/showcase/stripey-teagan/index.mdx
new file mode 100644
index 00000000000..3633c18137c
--- /dev/null
+++ b/sites/orgdocs/showcase/stripey-teagan/index.mdx
@@ -0,0 +1,21 @@
+---
+maker: 'unknown'
+caption: 'Love the fit and stripes on this modified Teagan!'
+date: '2023-01-15'
+intro: "A FreeSewing user gave modifying Teagan a try, and we love how the results turned out! Here's a little explanation she shared of how she drafted her Teagan and shaped the side seams for a closer fit."
+title: 'A Spectacular Stripey Teagan'
+tags: ['teagan']
+authors: 8
+---
+
+
+
+A FreeSewing user gave modifying Teagan a try, and we love how the results turned out! Here's a little explanation she shared of how she drafted her Teagan and shaped the side seams for a closer fit.
+
+"I'm really happy with how this turned out! I was curious to see how a close-fitting made-to-measure t-shirt would look on me, so I gave Teagan a try. I set both chest and hips ease as low as they would go (5% and 8%, respectively) and added some bonus length to both the shirt itself and the sleeves.
+
+For a tighter fit at the top I enabled 'draft for high bust'. There was no option to set the waist ease (yet), so I combined two versions, one generated as usual and one where I replaced my hips measurement with my waist measurement.
+
+The neckband is just a (horizontal) strip of the same fabric, attached as a knit band.
+
+I was surprised by how quickly this came together, and I can definitely see myself making several of these in different fabrics!"
diff --git a/sites/orgdocs/showcase/suit/index.mdx b/sites/orgdocs/showcase/suit/index.mdx
new file mode 100644
index 00000000000..bf97fd602dc
--- /dev/null
+++ b/sites/orgdocs/showcase/suit/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'I made a Suit!'
+caption: 'I made a suit!'
+date: '2024-07-30'
+intro: 'A suit using the Jeager Jacket and Charlie Chinos patters. The main fabric is a silk noil, and the liner is silk as well.'
+authors: 62144
+tags: ['jaeger', 'charlie']
+---
+
+
+
+
+
+This took 6 months and 15 yards of muslin, but I did finish in time for the wedding.
diff --git a/sites/orgdocs/showcase/surprise-giant-hi-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/surprise-giant-hi-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..04f8ea923e4
--- /dev/null
+++ b/sites/orgdocs/showcase/surprise-giant-hi-by-lasermonkey12/index.mdx
@@ -0,0 +1,23 @@
+---
+title: 'Surprise-giant Hi by lasermonkey12'
+caption: 'A hilariously large Hi'
+date: '2024-01-06'
+intro: "Bet you can't guess how small this Hi shark packed down."
+tags: ['hi']
+maker: Natalia
+authors: 31287
+---
+
+
+
+Bet you can't guess how small this Hi shark packed down. Maker lasermonkey12 shared:
+
+> i asked a friend if i could send him an empty plushie with a zipper installed and have him stuff it. he did not expect me to make it this large (and i intentionally packed it as small as possible)
+
+Best. Delivery. Ever.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/sven-nr1/index.mdx b/sites/orgdocs/showcase/sven-nr1/index.mdx
new file mode 100644
index 00000000000..02712032805
--- /dev/null
+++ b/sites/orgdocs/showcase/sven-nr1/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'hashtag resist'
+date: '2017-02-12'
+intro: 'FIXME_no_intro'
+title: 'An era-appropriate Sven'
+tags: ['sven']
+---
+
+
diff --git a/sites/orgdocs/showcase/sven-nr2/index.mdx b/sites/orgdocs/showcase/sven-nr2/index.mdx
new file mode 100644
index 00000000000..2268189788b
--- /dev/null
+++ b/sites/orgdocs/showcase/sven-nr2/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'This fabric has wool in it a is super warm.'
+date: '2017-02-18'
+intro: 'FIXME_no_intro'
+title: "The world's most boring sweater, perfect for the office"
+tags: ['sven']
+---
+
+
diff --git a/sites/orgdocs/showcase/sven-nr3/index.mdx b/sites/orgdocs/showcase/sven-nr3/index.mdx
new file mode 100644
index 00000000000..0bbbe85126f
--- /dev/null
+++ b/sites/orgdocs/showcase/sven-nr3/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: 'This fabric has wool in it a is super warm.'
+date: '2017-02-19'
+intro: 'FIXME_no_intro'
+title: 'A green Sven with a black shoulder detail and ribbing'
+tags: ['sven']
+---
+
+
diff --git a/sites/orgdocs/showcase/tamiko-by-gaelle/index.mdx b/sites/orgdocs/showcase/tamiko-by-gaelle/index.mdx
new file mode 100644
index 00000000000..71b8baf881c
--- /dev/null
+++ b/sites/orgdocs/showcase/tamiko-by-gaelle/index.mdx
@@ -0,0 +1,12 @@
+---
+authors: 27669
+caption: 'A slightly customized Tamiko'
+date: '2022-06-09'
+intro: 'Gaëlle made this lovely Tamiko for a friend!'
+title: 'Tamiko by Gaëlle'
+tags: ['tamiko']
+---
+
+
+
+Gaëlle made this lovely Tamiko for a friend!
diff --git a/sites/orgdocs/showcase/tartan-fu-mask/index.mdx b/sites/orgdocs/showcase/tartan-fu-mask/index.mdx
new file mode 100644
index 00000000000..1bb7333ba7f
--- /dev/null
+++ b/sites/orgdocs/showcase/tartan-fu-mask/index.mdx
@@ -0,0 +1,15 @@
+---
+authors: 1
+caption: 'Sorcha wears a red and blue tartan Florence face mask'
+date: '2020-03-01'
+intro: 'A Florence face mask in red and blue'
+title: 'A Florence face mask in red and blue'
+tags: ['florence']
+---
+
+
+
+Sorcha is a healthcare provider working in the [Antwerp University Hospital](https://www.uza.be/),
+one of Belgium's two centres of reference for coronavirus.
+
+At work, she wears a medical-grade face mask. This [Florence face mask](/designs/florence/) is for her commute to work on public transport.
diff --git a/sites/orgdocs/showcase/teagan-by-daryl/index.mdx b/sites/orgdocs/showcase/teagan-by-daryl/index.mdx
new file mode 100644
index 00000000000..9afa186fae8
--- /dev/null
+++ b/sites/orgdocs/showcase/teagan-by-daryl/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'unknown'
+caption: 'A shortened Teagan'
+date: '2021-07-26'
+intro: 'Daryl made this terrific Teagan in a cropped length, as short as it can go (-20%). They shared:'
+title: "Daryl's cropped Teagan t-shirt"
+tags: ['teagan']
+---
+
+
+
+Daryl made this terrific Teagan in a cropped length, as short as it can go (-20%). They shared:
+
+> I was so intimidated I have put off making anything for ages which was silly of me - this was so easy to make! I'm so chuffed with how well it fits... Turns out all those measurements are worth it,
+
+That's what FreeSewing is all about!
+
+:::note
+This picture is from Daryl, [@actual.disney.prince on Instagram](https://www.instagram.com/actual.disney.prince/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/teagan-by-karen/index.mdx b/sites/orgdocs/showcase/teagan-by-karen/index.mdx
new file mode 100644
index 00000000000..83443e1a4a8
--- /dev/null
+++ b/sites/orgdocs/showcase/teagan-by-karen/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: 'Teagan T-shirt with a scalloped hem made out of lace fabric'
+date: '2021-06-22'
+intro: 'Another version of the Teagan T-shirt by Karen. This time made with black lace fabric and with the addition of a scalloped hem.'
+title: 'Scalloped Hem Teagan T-Shirt by Karen'
+tags: ['teagan']
+authors: 13050
+---
+
+
+
+Another version of [the Teagan T-shirt](/designs/teagan/) by Karen. This time made with black lace fabric and with the addition of a scalloped hem.
+
+:::note
+This picture is from Discord and is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/teagan-karen/index.mdx b/sites/orgdocs/showcase/teagan-karen/index.mdx
new file mode 100644
index 00000000000..0311515c706
--- /dev/null
+++ b/sites/orgdocs/showcase/teagan-karen/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'unknown'
+caption: 'Karen in her Teagan T-shirt'
+date: '2020-10-19'
+intro: 'Karen made this version of the Teagan T-shirt drafted for high-bust measurements, one of several options for making the Teagan T-shirt just right for you!'
+title: 'Teagan T-Shirt by Karen'
+tags: ['teagan']
+authors: 13050
+---
+
+
+
+Karen made this version of [the Teagan T-shirt](/designs/teagan/) drafted for high-bust measurements, one of several options for making the Teagan T-shirt just right for you!
diff --git a/sites/orgdocs/showcase/teagans-for-swimming/index.mdx b/sites/orgdocs/showcase/teagans-for-swimming/index.mdx
new file mode 100644
index 00000000000..27a48ea878c
--- /dev/null
+++ b/sites/orgdocs/showcase/teagans-for-swimming/index.mdx
@@ -0,0 +1,16 @@
+---
+authors: 22141
+caption: 'Navy Teagan in a swim fabric'
+date: '2023-01-16'
+intro: "FreeSewing user comixminx made this great Teagan tee as part of a swimming costume for a non-binary kid. The navy version in the header image is the final version, but since you clicked into the post, here's a bonus first draft in gray!"
+title: 'Two Teagans for Swimming'
+tags: ['teagan']
+---
+
+
+
+FreeSewing user comixminx made this great Teagan tee as part of a swimming costume for a non-binary kid. The navy version in the header image is the final version, but since you clicked into the post, here's a bonus first draft in gray!
+
+
+
+The top here is intended to match the Shin swimming trunks that you'll find here: [Shins by Comixminx](https://freesewing.org/showcase/comixminx-shins/)
diff --git a/sites/orgdocs/showcase/the-bella-block-by-rockerkitten/index.mdx b/sites/orgdocs/showcase/the-bella-block-by-rockerkitten/index.mdx
new file mode 100644
index 00000000000..a6df24031a7
--- /dev/null
+++ b/sites/orgdocs/showcase/the-bella-block-by-rockerkitten/index.mdx
@@ -0,0 +1,17 @@
+---
+title: 'The Bella block by RockerKitten'
+caption: 'A muslin of Bella'
+date: '2024-01-06'
+intro: "The Bella block is what brought RockerKitten to FreeSewing -- and we couldn't be more grateful that she found us!"
+tags: ['bella']
+maker: Natalia
+authors: 50818
+---
+
+
+
+The Bella block is what brought RockerKitten to FreeSewing -- and we couldn't be more grateful that she found us! She has dialed in her preferences and measurements to find her ideal fit. This is one of her muslins.
+
+RockerKitten graciously shares tips, encouragement, and advice with folks on [Discord](https://discord.freesewing.org/). Come join the discussion over there if you're interested in trying FreeSewing's blocks!
+
+This was made by RockerKitten, [@rockerkitten on Instagram](https://www.instagram.com/rockerkitten/), and has been shared here with permission.
diff --git a/sites/orgdocs/showcase/theo-by-theodore/index.mdx b/sites/orgdocs/showcase/theo-by-theodore/index.mdx
new file mode 100644
index 00000000000..fcf9b637fc6
--- /dev/null
+++ b/sites/orgdocs/showcase/theo-by-theodore/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Cropped trousers by Theodore'
+date: '2019-06-17'
+intro: 'Theodore writes on Reddit :'
+title: 'Theodore makes cropped Theo trousers'
+tags: ['theo']
+---
+
+
+
+Theodore writes [on Reddit](https://www.reddit.com/r/sewing/comments/c1fue3/cropped_pants_for_the_summer_weather/):
+
+> Are capris cool again yet? I don't care, I like them.
+>
+> Used some nice olive green Armani cotton fabric with a customized pattern from FreeSewing.org, the Theo model. Drafted for a higher rise, they fit really nice!
diff --git a/sites/orgdocs/showcase/theo-jeroen/index.mdx b/sites/orgdocs/showcase/theo-jeroen/index.mdx
new file mode 100644
index 00000000000..9eb077640b1
--- /dev/null
+++ b/sites/orgdocs/showcase/theo-jeroen/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'Red plaid perfection'
+date: '2020-11-27'
+intro: 'Jeroen made these shortened Theo trousers in a bright, bold red plaid. We love the way they turned out!'
+title: 'Red Plaid Theo Shorts by Jeroen'
+tags: ['theo']
+---
+
+
+
+Jeroen made these shortened Theo trousers in a bright, bold red plaid. We love the way they turned out!
+
+Check out the matching Wahid waistcoat Jeroen made [here](https://freesewing.org/showcase/wahid-jeroen/)!
+
+:::note
+This picture is from the instagram feed of [Jeroen Keerl](https://www.instagram.com/jeroenkeerl/).
+It is posted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/tiberius-the-tunica/index.mdx b/sites/orgdocs/showcase/tiberius-the-tunica/index.mdx
new file mode 100644
index 00000000000..44ba8f86497
--- /dev/null
+++ b/sites/orgdocs/showcase/tiberius-the-tunica/index.mdx
@@ -0,0 +1,24 @@
+---
+maker: 'starf'
+caption: 'Tiberius the Tunica is the simplest shape a garment can be'
+date: '2021-10-18'
+intro: 'Tiberius the Tunica'
+title: 'Tiberius the Tunica'
+tags: ['tiberius']
+---
+
+
+
+
+
+This is the original Tiberius! Some info from its terrific maker, Starf (with minor edits for the showcase format):
+
+_Tiberius the Tunica is the base for everything, and also the simplest shape a garment can be: literally just a rectangle with holes (= parts you don't sew together) for the head and both arms. Worn only as-is, it looks like the proverbial sack of potatoes, especially with my choice of fabric here. Take a belt to it, and it already gives you much better looks (belt like this definitely not historically accurate)._
+
+_Your colour choice and fabric quality will greatly influence the look here._
+
+_The length I chose here is just above the knee, which is typical for the Roman army (trousers - or breeches - were at some point adopted from Gaul/Germanic tribes, after [being frowned upon as being "not civilised"](https://penelope.uchicago.edu/Thayer/E/Roman/Texts/secondary/SMIGRA_/Bracae.html)). Civilians (citizens) also wore longer lengths, that covered at least the knees. There are some text passages that suggest that Roman women wore generally longer tunicae (up to floor length), and that this was considered "too effeminate" for men of the time [Keith, A.M., Edmondson, J. C..; Roman Dress and the Fabrics of Roman Culture, Univ. of Toronto Press, 2008].\*
+
+_The width also varied a bit, but generally ranged from about elbow-to-elbow to shoulder-to-shoulder, although it is sometimes hard to tell (for me) from paintings/sculptures if there is a separate sleeve or not. Going from the dating of the pieces, I assume mostly no sleeves. I chose a width that is somewhere in the middle, because I wanted a more streamlined version for my fighting and generally active character, but in hindsight I would have made it slightly wider for more mobility. The wider the tunica, the stronger the illusion of sleeves._
+
+_Since this is literally a long cylinder, it will depend highly on the individual proportions what a good fit will be._
diff --git a/sites/orgdocs/showcase/tight-aaron/index.mdx b/sites/orgdocs/showcase/tight-aaron/index.mdx
new file mode 100644
index 00000000000..001300436b1
--- /dev/null
+++ b/sites/orgdocs/showcase/tight-aaron/index.mdx
@@ -0,0 +1,10 @@
+---
+authors: 1
+caption: "I misjudged the stretch on this fabric, and it's super clingy"
+date: '2016-08-16'
+intro: 'FIXME_no_intro'
+title: 'Aaron in signature purple, but arguably too tight'
+tags: ['aaron']
+---
+
+
diff --git a/sites/orgdocs/showcase/titan-by-deby/index.mdx b/sites/orgdocs/showcase/titan-by-deby/index.mdx
new file mode 100644
index 00000000000..eb2b03a5bb9
--- /dev/null
+++ b/sites/orgdocs/showcase/titan-by-deby/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Deby'
+caption: 'A Titan block turned pants by Deby'
+date: '2020-07-25'
+intro: 'Titan by Deby'
+title: 'Titan by Deby'
+tags: ['titan']
+---
+
+
+
+Deby tried out our Titan trouser block and liked the fit so much that she promptly turned it into proper trousers.
+She added a waistband and pockets to the basic block.
diff --git a/sites/orgdocs/showcase/trampoline-punk-a-punk-suit-made-from-a-trampoline-using-the-jaeger-jacket-and-charlie-chinos-patterns/index.mdx b/sites/orgdocs/showcase/trampoline-punk-a-punk-suit-made-from-a-trampoline-using-the-jaeger-jacket-and-charlie-chinos-patterns/index.mdx
new file mode 100644
index 00000000000..41fc308bcbf
--- /dev/null
+++ b/sites/orgdocs/showcase/trampoline-punk-a-punk-suit-made-from-a-trampoline-using-the-jaeger-jacket-and-charlie-chinos-patterns/index.mdx
@@ -0,0 +1,13 @@
+---
+title: 'Trampoline Punk: A Punk Suit Made from a Trampoline Using the Jaeger Jacket and Charlie Chinos Patterns'
+caption: 'Jaeger Jacket and Charlie Chinos from the back, with a skull applique on the jacket'
+date: '2024-04-12'
+intro: |
+ Trampoline Punk attempts to answer the question "Can you sew a formal suit from a trampoline?" The answer: sort of, but you have to be willing to bleed for it.
+authors: 65187
+tags: ['jaeger', 'charlie']
+---
+
+
+
+Trampoline Punk attempts to answer the question "Can you sew a formal suit from a trampoline?" The answer: sort of, but you have to be willing to bleed for it. The formal jacket and pants are sewn from the family's trampoline that was destroyed in a 2023 windstorm. The dress shirt and patchwork skull are sewn from the designer's 22-year-old wedding dress. The garment features punk detailing such as DIY patches, safety pin embellishments, and chains from the trampoline rigging. Don't try this at home unless you are willing to sacrifice several sewing machine needles, your favorite scissors, and most of the skin on your hands.
diff --git a/sites/orgdocs/showcase/trans-hi-by-halbmoki/index.mdx b/sites/orgdocs/showcase/trans-hi-by-halbmoki/index.mdx
new file mode 100644
index 00000000000..3a82fd4196a
--- /dev/null
+++ b/sites/orgdocs/showcase/trans-hi-by-halbmoki/index.mdx
@@ -0,0 +1,14 @@
+---
+title: 'Trans Hi by Halbmoki'
+caption: 'Trans Hi is here!'
+date: '2023-12-27'
+intro: 'This Hi by Halbmoki was a fan favorite of the FreeSewing community.'
+tags: ['hi']
+maker: Natalia
+---
+
+
+
+This Hi's maker Halbmoki notes that it's a bit lumpy, but we guess most trans folks can relate to having lumps in the wrong places. The FreeSewing community loved this creation, lumps and all.
+
+
diff --git a/sites/orgdocs/showcase/trayvon-tie-by-aneconradie/index.mdx b/sites/orgdocs/showcase/trayvon-tie-by-aneconradie/index.mdx
new file mode 100644
index 00000000000..5eb83e2ee61
--- /dev/null
+++ b/sites/orgdocs/showcase/trayvon-tie-by-aneconradie/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'An excellent Trayvon tie'
+date: '2021-12-18'
+intro: 'This great Trayvon tie was made by Aneconradie:'
+title: 'Trayvon tie by Aneconradie'
+tags: ['trayvon']
+---
+
+
+
+This great Trayvon tie was made by Aneconradie:
+
+> Made a Trayvon Tie for my boyfriend's birthday - took me a lot longer than I thought it would and it is RIDDLED with mistakes but I'm still pretty proud!
+
+:::note
+This picture is from aneconradie on Discord. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/trayvon-tie-square/index.mdx b/sites/orgdocs/showcase/trayvon-tie-square/index.mdx
new file mode 100644
index 00000000000..19351684cb6
--- /dev/null
+++ b/sites/orgdocs/showcase/trayvon-tie-square/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'Trayvon Tie + Square'
+caption: "outfit for my cousin's wedding"
+date: '2024-07-09'
+intro: 'Custom Tie and Square'
+authors: 83912
+tags: ['trayvon']
+---
+
+
+
+It's my first time sewing anything and sewing as a guy not encouraged in my
+family but I'm pretty happy with how it turned out. I admittedly still don't
+quite understand interfacing, and felt overwhelmed with trying to find a scrap
+tie I could use; so instead I cut up a bunch of left over N95 Masks and
+stitched them together into the tie interface pattern.
+
+
diff --git a/sites/orgdocs/showcase/two-bruce-boxer-briefs/index.mdx b/sites/orgdocs/showcase/two-bruce-boxer-briefs/index.mdx
new file mode 100644
index 00000000000..58bfc16b688
--- /dev/null
+++ b/sites/orgdocs/showcase/two-bruce-boxer-briefs/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'unknown'
+caption: 'We love the pattern choices'
+date: '2023-05-03'
+intro: 'The maker of these Bruce boxer briefs says they will be making even more pairs!'
+title: 'Two Bruce boxer briefs'
+tags: ['bruce']
+---
+
+
+
+The maker of these Bruce boxer briefs says they will be making even more pairs!
+
+
diff --git a/sites/orgdocs/showcase/two-non-binary-hi/index.mdx b/sites/orgdocs/showcase/two-non-binary-hi/index.mdx
new file mode 100644
index 00000000000..17b27d786cb
--- /dev/null
+++ b/sites/orgdocs/showcase/two-non-binary-hi/index.mdx
@@ -0,0 +1,17 @@
+---
+title: 'Two Non-binary Hi'
+caption: 'Two Hi sharks, at 100% size done in non-binary flag stripes '
+date: '2024-05-02'
+intro: "This was my first Freesewing make, and I'm really pleased with how they came out!"
+authors: 31916
+tags: ['hi']
+---
+
+
+
+This was my first Freesewing make, and I'm really pleased with how they came out!
+They were presents for two friends and my first time sewing with this kind of fabric. It was 'cuddle fleece' with a one way stretch and fur a little bit longer than the original Blåhaj.
+
+As happy as I am with them, I did not enjoy sewing these. I printed my copy without seam allowance cause I come from a hand sewing background and that's what I'm used to, but it was definitely a mistake when using black fur since marking out the stitch lines was a nightmare when preparing the striped pieces. Fluffy fabric brings its own challenges and I could have made it a lot easier for myself.
+
+They came out as good as I had hoped and the pattern was really simple to follow (especially if you don't impose setbacks on yourself) and the recipients were overjoyed with their enbyhajs!
diff --git a/sites/orgdocs/showcase/two-short-sleeved-simons-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/two-short-sleeved-simons-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..c0a7df4c2b8
--- /dev/null
+++ b/sites/orgdocs/showcase/two-short-sleeved-simons-by-lasermonkey12/index.mdx
@@ -0,0 +1,15 @@
+---
+title: 'Two short-sleeved Simons by lasermonkey12'
+caption: 'A cheerful yellow Simon shirt'
+date: '2024-01-06'
+intro: 'lasermonkey12 shortened the sleeves on these two Simon shirts.'
+tags: ['simon']
+maker: Natalia
+authors: 31287
+---
+
+
+
+lasermonkey12 shortened the sleeves on these two Simon shirts. I've cheated by putting them together in a single showcase post. Love this variation! Great stitch details and fabric choices.
+
+
diff --git a/sites/orgdocs/showcase/two-tone-teagan/index.mdx b/sites/orgdocs/showcase/two-tone-teagan/index.mdx
new file mode 100644
index 00000000000..45114434105
--- /dev/null
+++ b/sites/orgdocs/showcase/two-tone-teagan/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Imunar'
+caption: 'The creator in their fab two-tone Teagan'
+date: '2023-03-03'
+intro: "This Teagan is only the second ever sewing project for this FreeSewing maker! Imunar shares that there was a fair bit of seam ripping working with jersey, but we think they're right to be pleased with the end result. Love the color-blocking choices."
+title: 'Two-Tone Teagan'
+tags: ['teagan']
+authors: 32339
+---
+
+
+
+This Teagan is only the second ever sewing project for this FreeSewing maker! Imunar shares that there was a fair bit of seam ripping working with jersey, but we think they're right to be pleased with the end result. Love the color-blocking choices.
diff --git a/sites/orgdocs/showcase/ursula-and-bee/index.mdx b/sites/orgdocs/showcase/ursula-and-bee/index.mdx
new file mode 100644
index 00000000000..608a8fca3e7
--- /dev/null
+++ b/sites/orgdocs/showcase/ursula-and-bee/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'bookandneedle'
+caption: 'A reversible Ursula and Bee swimsuit'
+date: '2021-08-27'
+intro: 'A reversible Ursula and Bee swimsuit'
+title: 'A reversible Ursula and Bee swimsuit'
+tags: ['ursula', 'bee']
+---
+
+
+
+The maker added a waistband to Ursula for this reversible two-piece swimsuit. She said, "Ursula is so versatile and fun!" We think it turned out amazing!
+
+She shared the design so that others can generate the exact same design (adapted to their own measurements): [https://freesewing.org/patterns/feaxz/](https://freesewing.org/patterns/feaxz/)
+
+These photos also feature the soon to be released Bee Bikini Top!
+
+
+
diff --git a/sites/orgdocs/showcase/ursula-by-karen/index.mdx b/sites/orgdocs/showcase/ursula-by-karen/index.mdx
new file mode 100644
index 00000000000..8cd24b82364
--- /dev/null
+++ b/sites/orgdocs/showcase/ursula-by-karen/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'unknown'
+caption: 'A test pair of Ursulas'
+date: '2021-07-26'
+intro: 'A jazzy pair of Ursula undies'
+title: 'A jazzy pair of Ursula undies'
+tags: ['ursula']
+authors: 13050
+---
+
+
+
+Karen turned a stretchy fabric scrap into this fun pair of Ursulas! She shared that based on the test results, she will narrow the gusset on the next version and lower the rise a bit more. We think the "Jazzercise effect" on the test pair is pretty fun :)
+
+:::note
+This picture is from Karen on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/ursula-by-starf/index.mdx b/sites/orgdocs/showcase/ursula-by-starf/index.mdx
new file mode 100644
index 00000000000..c8e19f9817f
--- /dev/null
+++ b/sites/orgdocs/showcase/ursula-by-starf/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'starf'
+caption: 'Ursula pic feat. a FreeSewing sticker'
+date: '2021-10-18'
+intro: 'Starf made Ursula -- with excellent color choices -- and shared this rad photo featuring a FreeSewing sticker they received as a FreeSewing patron .'
+title: 'Ursula by Starf'
+tags: ['ursula']
+---
+
+
+
+Starf made Ursula -- with excellent color choices -- and shared this rad photo featuring a FreeSewing sticker they received as a [FreeSewing patron](https://freesewing.org/patrons/join/).
+
+They used the default "old" settings and said that for the next one they would probably have adjusted the settings similar to the October 2021 patch 😀
diff --git a/sites/orgdocs/showcase/ursula-test-pairs/index.mdx b/sites/orgdocs/showcase/ursula-test-pairs/index.mdx
new file mode 100644
index 00000000000..5611d141067
--- /dev/null
+++ b/sites/orgdocs/showcase/ursula-test-pairs/index.mdx
@@ -0,0 +1,66 @@
+---
+maker: 'Natalia Sayang'
+caption: 'Some early versions of Ursula'
+date: '2021-06-26'
+intro: 'Ursula is a basic, highly-customizable undies pattern. Here are some of the early versions testing different combinations of options, which may be useful to you as you design your own pairs.'
+title: 'Early tests of Ursula'
+tags: ['ursula']
+authors: 19867
+---
+
+
+
+Ursula is a basic, highly-customizable undies pattern. Here are some of the early versions testing different combinations of options, which may be useful to you as you design your own pairs.
+
+
+
+This (yellow with blue elastic) is a basic Ursula with the default options. It is a lowish-mid rise with moderate front and back coverage. The fabric is a modal spandex knit and the elastic is fold over elastic, so the seam allowances were trimmed away.
+
+
+
+
+This (white with black elastic) is a thong Ursula with high back exposure. Specifically, these options were changed from the defaults:
+
+- Leg opening = 70%
+- Front dip = 7%
+- Front exposure = 85%
+- Back exposure = 80%
+
+The fabric was a remnant and turned out to be a poor choice of fabric for this because it was too thick and not stretchy enough. The elastic was 0.5 in (1.27 cm) which was probably too wide. This probably isn't the "ideal" thong version but hopefully these notes are a helpful starting point.
+
+
+
+This (yellow with black elastic) is a low rise Ursula with slightly higher coverage. These options were changed from the defaults:
+
+- Gusset width = 7.1%
+- Elastic stretch = 10%
+- Rise = 45.4%
+- Leg opening = 60.6%
+- Front dip = 2.5%
+- Back dip = 1%
+- Front exposure = 69.5%
+- Back exposure = -6.7%
+
+The elastic was probably cut too short, contributing to the waviness. However, the fit was great. This is a modal spandex knit.
+
+
+
+This (yellow with burgundy elastic) is a high rise Ursula. It used these options:
+
+- Rise = 100%
+- Leg opening = 41.2%
+- Front exposure = 27.2%
+- Back exposure = 10.3%
+
+The fit is truly high waisted, slightly above the belly button on the tester, and very comfortable. This is a modal spandex knit.
+
+
+
+
+These last two (gray and blue, gray and burgundy) were early test pairs of Ursula.
+
+:::note
+These pictures were shared on the [FreeSewing
+Discord](https://discord.freesewing.org/) and are reposted here with
+permission.
+:::
diff --git a/sites/orgdocs/showcase/ursula-undies-by-cakeymcdoodle/index.mdx b/sites/orgdocs/showcase/ursula-undies-by-cakeymcdoodle/index.mdx
new file mode 100644
index 00000000000..d2818c859ea
--- /dev/null
+++ b/sites/orgdocs/showcase/ursula-undies-by-cakeymcdoodle/index.mdx
@@ -0,0 +1,20 @@
+---
+maker: 'cakeymcdoodle '
+authors: 292
+caption: 'The first of many pairs'
+date: '2022-07-29'
+intro: 'cakeymcdoodle made these delightful Ursula undies! She shared:'
+title: 'Ursula undies by cakeymcdoodle'
+tags: ['ursula']
+---
+
+
+
+cakeymcdoodle made these delightful Ursula undies! She shared:
+
+> I'm about to make lots and lots of underwear, so I'm testing the Ursula
+> pattern. This is low rise, high cut at the front, full coverage at the back
+> and a bit of an anterior pelvic tilt adjustment. They already fit a million
+> times better than any RTW pants I've ever had. My plan is to make lots of
+> jersey, lace, and period knickers, then when I've made all the practical ones
+> I'll do some thongs. I think I will have a whole drawer full by the end
diff --git a/sites/orgdocs/showcase/ursulas-with-lace/index.mdx b/sites/orgdocs/showcase/ursulas-with-lace/index.mdx
new file mode 100644
index 00000000000..d8f88f022d9
--- /dev/null
+++ b/sites/orgdocs/showcase/ursulas-with-lace/index.mdx
@@ -0,0 +1,23 @@
+---
+maker: 'unknown'
+caption: 'Default and high-waisted pairs of Ursulas'
+date: '2021-07-29'
+intro: "We love the fabric and elastic choices on Sanne's first two pairs of Ursulas! FreeSewing contributors in Discord said they loved the lace and the color combos."
+title: 'Ursulas with lace'
+tags: ['ursula']
+---
+
+
+
+We love the fabric and elastic choices on Sanne's first two pairs of Ursulas! FreeSewing contributors in Discord said they loved the lace and the color combos.
+
+The first pair was a little big, so her next version increased the _fabric stretch_ percentage option a bit. A good guideline might be:
+
+- fabric stretch < 30% --> shrink pattern by stretch - 15
+- fabric stretch > 30% --> shrink pattern by stretch/2
+
+
+
+:::note
+This picture is from Sanne K on [Discord](https://discord.freesewing.org/). It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wahid-by-adam/index.mdx b/sites/orgdocs/showcase/wahid-by-adam/index.mdx
new file mode 100644
index 00000000000..16da12b76fb
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-by-adam/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Adam looking spectacularly dapper in his Wahid'
+date: '2020-07-01'
+intro: 'Wahid by Adam'
+title: 'Wahid by Adam'
+tags: ['wahid']
+---
+
+
+
+You'd be forgiven to think we cut this out of a high-fashion magazine, but it's a picture
+from Adam who made this gorgeous Wahid for himself.
+
+:::note
+This picture is from the [the Instagram feed](https://www.instagram.com/p/CCGnNvQBxJe/) of [Adam Bradley](https://www.instagram.com/grandmarquess/).
+It is posted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wahid-by-minty/index.mdx b/sites/orgdocs/showcase/wahid-by-minty/index.mdx
new file mode 100644
index 00000000000..9d2afb921b0
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-by-minty/index.mdx
@@ -0,0 +1,16 @@
+---
+maker: 'unknown'
+caption: 'Wahid waistcoat by Minty'
+date: '2021-03-06'
+intro: 'This classy Wahid waistcoat was made by Minty!'
+title: 'Wahid by Minty'
+tags: ['wahid']
+---
+
+
+
+This classy Wahid waistcoat was made by Minty!
+
+:::note
+This picture is from Minty on Discord. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wahid-by-ogredandy/index.mdx b/sites/orgdocs/showcase/wahid-by-ogredandy/index.mdx
new file mode 100644
index 00000000000..10102f6ac0e
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-by-ogredandy/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'ogredandy'
+caption: 'A handsome Wahid waistcoat'
+date: '2022-06-27'
+intro: "ogredandy has been making rather impressive progress through the FreeSewing catalog with great results. You won't want to miss their other work in the Simon, Bruce, and Aaron showcases."
+title: 'Wahid by ogredandy'
+tags: ['wahid']
+---
+
+
+
+ogredandy has been making rather impressive progress through the FreeSewing catalog with great results. You won't want to miss their other work in the Simon, Bruce, and Aaron showcases.
diff --git a/sites/orgdocs/showcase/wahid-by-pho/index.mdx b/sites/orgdocs/showcase/wahid-by-pho/index.mdx
new file mode 100644
index 00000000000..8a52a54a267
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-by-pho/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'unknown'
+caption: 'Wahid waistcoat by Pho'
+date: '2021-05-10'
+intro: 'Pho made this stellar Wahid! They shared:'
+title: 'Wahid by Pho'
+tags: ['wahid']
+---
+
+
+
+Pho made this stellar Wahid! They shared:
+
+> Wahid to my measurements. I opted out of buttons since I sit a lot at work and a completely fitted garment for me wouldn't be able to stay buttoned. I also did the pocket bags as one long piece of fabric which was easiest for me to understand under guidance of a sewing teacher. I might opt for snaps or just leave it open. My size stomach wise is bigger than my chest. Amazing how a garment my size makes me look great! Thanks for the pattern!
+
+One more picture of their fantastic work:
+
+
+
+:::note
+This picture is from Pho on Discord. It is reposted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wahid-grey-windowpane/index.mdx b/sites/orgdocs/showcase/wahid-grey-windowpane/index.mdx
new file mode 100644
index 00000000000..203d8d858c8
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-grey-windowpane/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'This Wahid looks great in a print with elegant silver buttons'
+date: '2023-02-21'
+intro: 'This FreeSewing user finished their first Wahid waistcoat, and it turned out great!'
+title: 'A grey windowpane Wahid'
+tags: ['wahid']
+---
+
+
+
+This FreeSewing user finished their first Wahid waistcoat, and it turned out great!
+
+They had this to share about the experience: "Definitely was out of practice but worked out smoother than expected and in a lot less time. In the end I’m slightly unhappy with the arm holes and the button holes, but the result is solid. My interfacing also likely was way too strong, resulting in a weird front panel with unfortunate wrinkles."
+
+
+
+
diff --git a/sites/orgdocs/showcase/wahid-jeroen/index.mdx b/sites/orgdocs/showcase/wahid-jeroen/index.mdx
new file mode 100644
index 00000000000..2fbdabf4f36
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-jeroen/index.mdx
@@ -0,0 +1,19 @@
+---
+maker: 'unknown'
+caption: 'Red plaid perfection'
+date: '2020-11-27'
+intro: 'Jeroen made this stunning Wahid waistcoat in a beautiful red plaid.'
+title: 'Red Plaid Wahid Waistcoat by Jeroen'
+tags: ['wahid']
+---
+
+
+
+Jeroen made this stunning Wahid waistcoat in a beautiful red plaid.
+
+Check out the matching Theo shorts Jeroen made [here](https://freesewing.org/showcase/theo-jeroen/)!
+
+:::note
+This picture is from the instagram feed of [Jeroen Keerl](https://www.instagram.com/jeroenkeerl/).
+It is posted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wahid-kaena/index.mdx b/sites/orgdocs/showcase/wahid-kaena/index.mdx
new file mode 100644
index 00000000000..5bc84afd747
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-kaena/index.mdx
@@ -0,0 +1,18 @@
+---
+maker: 'unknown'
+caption: 'Purple, floral, utterly delightful Wahid waistcoat'
+date: '2020-11-27'
+intro: 'Kaena made her husband a Wahid waistcoat to go to a wedding, and we just love it!'
+title: 'Purple Wahid by Kaena'
+tags: ['wahid']
+---
+
+
+
+Kaena made her husband a Wahid waistcoat to go to a wedding, and we just love it!
+
+
+
+:::note
+These pictures are from the instagram feed of [Kaena](https://www.instagram.com/kaena.mackinnon/). They are posted here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wahid-waistcoat-by-womp/index.mdx b/sites/orgdocs/showcase/wahid-waistcoat-by-womp/index.mdx
new file mode 100644
index 00000000000..6bfe3ed7329
--- /dev/null
+++ b/sites/orgdocs/showcase/wahid-waistcoat-by-womp/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'womp'
+caption: 'This Wahid looks great in an attractive charcoal fabric'
+date: '2023-05-03'
+intro: "We think this Wahid waistcoat -- the maker's first attempt -- looks razor sharp!"
+title: 'Wahid waistcoat by womp'
+tags: ['wahid']
+authors: 72337
+---
+
+
+
+We think this Wahid waistcoat -- the maker's first attempt -- looks razor sharp!
diff --git a/sites/orgdocs/showcase/walburga-the-wappenrock/index.mdx b/sites/orgdocs/showcase/walburga-the-wappenrock/index.mdx
new file mode 100644
index 00000000000..c17cf9e5498
--- /dev/null
+++ b/sites/orgdocs/showcase/walburga-the-wappenrock/index.mdx
@@ -0,0 +1,25 @@
+---
+maker: 'starf'
+caption: "Walburga the Wappenrock (German for tabard/surcoat) is Starf's own medieval Europe (and Legend of Zelda) inspired fantasy design"
+date: '2021-10-18'
+intro: 'Walburga the Wappenrock'
+title: 'Walburga the Wappenrock'
+tags: ['walburga']
+---
+
+
+
+
+
+
+This is the original Walburga! Some notes from its wonderful maker (edited for showcase format):
+
+_This is Walburga the Wappenrock (German for tabard/surcoat), which does not follow any real historical garment but is my own medieval Europe (and Legend of Zelda) inspired fantasy design._
+
+_As far as my research showed, Romans didn't use these types of garments for identifying purposes. In medieval times in Europe they were used for displaying the colours or heraldry of the kingdom, etc._
+
+_It's also a very simple shape, that can be made in various lengths; comparatively short like I did here, or almost reaching the floor. As for width, it goes from shoulder to shoulder and is supposed to be open at the sides. I decided on a triangular neck opening here, so that the tunica peeks through and the shoulder seam does not become too narrow/it can lie closer to your neck._
+
+_There are also some checks in place to ensure that your head still fits through, even if you change the opening angle (the default triangle is calculated to have a golden ratio, as well as the bottom triangles). The bottom part is split (can also not be cut) for mobility (though honestly, at this length mostly for style). Since there is no way to add a seam/hem allowance like this, I decided on finishing all edges with not-quite bias tape which looks quite nice._
+
+_You can also see my first attempt at appliqué here :D_
diff --git a/sites/orgdocs/showcase/waralee-by-wouter/index.mdx b/sites/orgdocs/showcase/waralee-by-wouter/index.mdx
new file mode 100644
index 00000000000..df8521c6f67
--- /dev/null
+++ b/sites/orgdocs/showcase/waralee-by-wouter/index.mdx
@@ -0,0 +1,17 @@
+---
+maker: 'Wouter.vdub'
+caption: 'Wouter in his Waralee wrap pants'
+date: '2019-08-27'
+intro: 'This is the first version Wouter made after completing the Waralee pattern.'
+title: 'Waralee by Wouter'
+tags: ['waralee']
+authors: 132
+---
+
+
+
+This is the first version Wouter made after completing the Waralee pattern.
+
+Nice for staying cool when it's warm:
+
+
diff --git a/sites/orgdocs/showcase/waralee-shorts-by-space/index.mdx b/sites/orgdocs/showcase/waralee-shorts-by-space/index.mdx
new file mode 100644
index 00000000000..24d41dff34c
--- /dev/null
+++ b/sites/orgdocs/showcase/waralee-shorts-by-space/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'Space'
+caption: 'These Waralees were shortened'
+date: '2022-07-29'
+intro: 'We love this shorts version of the Waralee wrap pants by Space!'
+title: 'Waralee shorts by Space'
+tags: ['waralee']
+---
+
+
+
+We love this shorts version of the Waralee wrap pants by Space!
+
+
diff --git a/sites/orgdocs/showcase/waralee-with-pocket-by-nael/index.mdx b/sites/orgdocs/showcase/waralee-with-pocket-by-nael/index.mdx
new file mode 100644
index 00000000000..8981e99c140
--- /dev/null
+++ b/sites/orgdocs/showcase/waralee-with-pocket-by-nael/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'Waralee with pocket, by Naël'
+caption: 'These Waralees look so good on the recipient.'
+date: '2024-04-29'
+intro: 'We adore these Waralee wrap pants by Naël featuring a pocket on the belt and a cute FreeSewing label.'
+authors: 32412
+tags: ['waralee']
+---
+
+
+
+We adore these Waralee wrap pants by Naël featuring a pocket on the belt and a cute FreeSewing label.
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/waralee-wrap-pants-by-wouter/index.mdx b/sites/orgdocs/showcase/waralee-wrap-pants-by-wouter/index.mdx
new file mode 100644
index 00000000000..aad0a9840f5
--- /dev/null
+++ b/sites/orgdocs/showcase/waralee-wrap-pants-by-wouter/index.mdx
@@ -0,0 +1,13 @@
+---
+maker: 'Wouter.vdub'
+caption: 'Feat. beautiful mitered hems'
+date: '2022-06-09'
+intro: 'These fun Waralee wrap pants were made by Wouter. They feature mitered hems.'
+title: 'Waralee wrap pants by Wouter'
+tags: ['waralee']
+authors: 132
+---
+
+
+
+These fun Waralee wrap pants were made by Wouter. They feature mitered hems.
diff --git a/sites/orgdocs/showcase/waralees-by-gaelle/index.mdx b/sites/orgdocs/showcase/waralees-by-gaelle/index.mdx
new file mode 100644
index 00000000000..88b936793c1
--- /dev/null
+++ b/sites/orgdocs/showcase/waralees-by-gaelle/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'Waralees by Gaëlle'
+caption: 'Great looking wrap pants'
+date: '2024-06-18'
+intro: 'These Waralee wrap pants are by the talented and prolific Gaëlle!'
+authors: 27669
+tags: ['waralee']
+---
+
+
+
+These Waralee wrap pants were made by the talented and prolific Gaëlle!
diff --git a/sites/orgdocs/showcase/waralees-by-moderndragon-featuring-a-fancy-seam-finish/index.mdx b/sites/orgdocs/showcase/waralees-by-moderndragon-featuring-a-fancy-seam-finish/index.mdx
new file mode 100644
index 00000000000..800be1adba0
--- /dev/null
+++ b/sites/orgdocs/showcase/waralees-by-moderndragon-featuring-a-fancy-seam-finish/index.mdx
@@ -0,0 +1,20 @@
+---
+title: 'Waralees by moderndragon, featuring a fancy seam finish'
+caption: 'These Waralees were made of a old duvet cover that they dyed.'
+date: '2024-04-23'
+intro: "This was moderndragon's very first Waralee wrap pants!"
+authors: 22007
+tags: ['waralee']
+---
+
+
+
+This was moderndragon's very first Waralee wrap pants!
+
+They also tried their hand at a fancy seam finish for the crotch seam. Which was a bit of a challenge, given that it's a really curved seam. But they think it was worth it.
+
+Can you believe they created this vibrant fabric by dyeing an old duvet cover?
+
+Lovely work!
+
+
diff --git a/sites/orgdocs/showcase/watermelon-charlie-chinos/index.mdx b/sites/orgdocs/showcase/watermelon-charlie-chinos/index.mdx
new file mode 100644
index 00000000000..97b2426cad1
--- /dev/null
+++ b/sites/orgdocs/showcase/watermelon-charlie-chinos/index.mdx
@@ -0,0 +1,18 @@
+---
+title: 'Watermelon Charlie Chinos'
+caption: 'Splash of green on the right, splash of pink on the left'
+date: '2024-06-15'
+intro: 'Watermelon 🍉 Themed Pants!'
+authors: 61987
+tags: ['charlie']
+---
+
+
+
+Watermelon 🍉 themed Charlie Chinos!
+
+I dyed the bottom of the pant legs, the inside of the back pockets, and the inside of the front pockets. The fabric is cotton nylon blend and I used synthetic dye.
+
+
+
+
diff --git a/sites/orgdocs/showcase/who-can-resist-a-cuddly-shark-named-hi/index.mdx b/sites/orgdocs/showcase/who-can-resist-a-cuddly-shark-named-hi/index.mdx
new file mode 100644
index 00000000000..e67e9a897ff
--- /dev/null
+++ b/sites/orgdocs/showcase/who-can-resist-a-cuddly-shark-named-hi/index.mdx
@@ -0,0 +1,16 @@
+---
+title: 'Who can resist a cuddly shark named Hi'
+caption: 'Hi surfing on kitchen island'
+date: '2024-01-19'
+intro: 'Hi has a finished length of 26” long. He body is made from gray and white fleece while his mouth and teeth are felt as are his eyes. Not bad for my first attempt at a stuffed animal!'
+tags: ['hi']
+maker: mjpell
+---
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/wonder-warrior-jacket/index.mdx b/sites/orgdocs/showcase/wonder-warrior-jacket/index.mdx
new file mode 100644
index 00000000000..cbc50e0c884
--- /dev/null
+++ b/sites/orgdocs/showcase/wonder-warrior-jacket/index.mdx
@@ -0,0 +1,14 @@
+---
+maker: 'RedBlaqueGolden'
+caption: 'This is the Wonder Warrior jacket, looking pretty great'
+date: '2017-10-01'
+intro: 'This image was republished (with permission) from the Twitter account of @MyxterHyde'
+title: 'A wonder woman themed jacket based on the Brian Body Block by Myxter Hyde'
+tags: ['brian']
+---
+
+
+
+This image was republished (with permission) from
+[the Twitter account](https://twitter.com/MyxterHyde/status/914274197345570816) of
+[@MyxterHyde](https://twitter.com/MyxterHyde)
diff --git a/sites/orgdocs/showcase/wonder-woman-simon/index.mdx b/sites/orgdocs/showcase/wonder-woman-simon/index.mdx
new file mode 100644
index 00000000000..cfaeb0797e9
--- /dev/null
+++ b/sites/orgdocs/showcase/wonder-woman-simon/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'RedBlaqueGolden'
+caption: "There's some really quality posing in this set."
+date: '2018-02-05'
+intro: ' '
+title: 'A Wonder Women simon by JV'
+tags: ['simon']
+---
+
+
+
+
+
+
+
+
+:::tip See the originals on the Instragram feed of funloveadventure
+These images are from
+[the Instagram feed](https://www.instagram.com/myxterhyde/)
+of [@MyxterHyde](/users/user?id=87).
+They are published here with permission.
+:::
diff --git a/sites/orgdocs/showcase/wonderful-waralees-by-tuesday/index.mdx b/sites/orgdocs/showcase/wonderful-waralees-by-tuesday/index.mdx
new file mode 100644
index 00000000000..4879aae99df
--- /dev/null
+++ b/sites/orgdocs/showcase/wonderful-waralees-by-tuesday/index.mdx
@@ -0,0 +1,12 @@
+---
+title: 'Wonderful Waralees by Tuesday'
+caption: 'What a great look!'
+date: '2024-04-18'
+intro: 'FreeSewing maker Tuesday said these Waralee wrap pants are extremely comfortable.'
+authors: 22693
+tags: ['waralee']
+---
+
+
+
+FreeSewing maker Tuesday said these Waralee wrap pants are extremely comfortable. We enjoyed following along with the adventure of creating them! Turned out just fab.
diff --git a/sites/orgdocs/showcase/woolen-wahid/index.mdx b/sites/orgdocs/showcase/woolen-wahid/index.mdx
new file mode 100644
index 00000000000..2c2823238b8
--- /dev/null
+++ b/sites/orgdocs/showcase/woolen-wahid/index.mdx
@@ -0,0 +1,15 @@
+---
+title: 'Woolen Wahid'
+caption: 'Wahid maide in brown wool'
+date: '2024-06-23'
+intro: 'Wahid made in brown wool, altered to have princess seams. '
+tags: ['wahid']
+---
+
+
+
+I made a Wahid waistcoat for a 1920s themed costume party. Pattern was heavily
+altered, made fit adjustments and changed from bust darts to princess seams
+from the armscye. My first welt pockets!
+
+
diff --git a/sites/orgdocs/showcase/xl-octoplushy-by-lasermonkey12/index.mdx b/sites/orgdocs/showcase/xl-octoplushy-by-lasermonkey12/index.mdx
new file mode 100644
index 00000000000..3370daa9550
--- /dev/null
+++ b/sites/orgdocs/showcase/xl-octoplushy-by-lasermonkey12/index.mdx
@@ -0,0 +1,23 @@
+---
+title: 'XL Octoplushy by lasermonkey12'
+caption: 'Octoplushy, stuffing in progress'
+date: '2024-01-06'
+intro: 'Not sure what to do with your scraps? Let us introduce the best idea ever: an XL Octoplushy.'
+tags: ['octoplushy']
+maker: Natalia
+authors: 31287
+---
+
+
+
+Not sure what to do with your scraps? Let us introduce the best idea ever: an XL Octoplushy. This was made by lasermonkey12 who shared on [Discord](https://discord.freesewing.org/) and granted us permission to repost here. She notes that this Octoplushy is stuffed with scraps and is not full yet, thus the zipper.
+
+
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/yellow-button-simon/index.mdx b/sites/orgdocs/showcase/yellow-button-simon/index.mdx
new file mode 100644
index 00000000000..1e52dc09e54
--- /dev/null
+++ b/sites/orgdocs/showcase/yellow-button-simon/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'RedBlaqueGolden'
+caption: "That's one dapper gentleman"
+date: '2016-12-06'
+intro: 'This picture is from the Instagram feed of JV Hampton-VanSant .'
+title: 'Just look how happy JV is with his Simon shirt'
+tags: ['simon']
+---
+
+
+
+This picture is from [the Instagram feed](https://www.instagram.com/p/BNsGBSVho4u/) of [JV Hampton-VanSant](http://jvhvs.com/).
diff --git a/sites/orgdocs/showcase/yoga-set-by-paul/index.mdx b/sites/orgdocs/showcase/yoga-set-by-paul/index.mdx
new file mode 100644
index 00000000000..7e31fd25854
--- /dev/null
+++ b/sites/orgdocs/showcase/yoga-set-by-paul/index.mdx
@@ -0,0 +1,11 @@
+---
+maker: 'unknown'
+caption: 'Aaron and Bruce yoga set with stripes by Paul (up-side-down)'
+date: '2018-09-29'
+intro: 'FIXME_no_intro'
+title: 'Yoga Outfit by Paul'
+tags: ['aaron', 'bruce']
+authors: 433
+---
+
+
diff --git a/sites/orgdocs/showcase/yuri-by-its-designer/index.mdx b/sites/orgdocs/showcase/yuri-by-its-designer/index.mdx
new file mode 100644
index 00000000000..010c3eaaf6a
--- /dev/null
+++ b/sites/orgdocs/showcase/yuri-by-its-designer/index.mdx
@@ -0,0 +1,22 @@
+---
+maker: 'Hellgy'
+caption: 'Rear-view of the Yuri hoodie'
+date: '2021-09-05'
+intro: 'These are pictures of the original Yuri hoody from the designer Hellgy, who wanted to make a hoodie that did not require any zips.'
+title: 'The original Yuri by its designer'
+tags: ['yuri']
+---
+
+
+
+These are pictures of the original Yuri hoody from the designer Hellgy, who wanted to make a hoodie that did not require any zips.
+
+
+
+
+
+
+
+
+
+
diff --git a/sites/orgdocs/showcase/zees-lunetius-lacerna/index.mdx b/sites/orgdocs/showcase/zees-lunetius-lacerna/index.mdx
new file mode 100644
index 00000000000..462cd9151fa
--- /dev/null
+++ b/sites/orgdocs/showcase/zees-lunetius-lacerna/index.mdx
@@ -0,0 +1,12 @@
+---
+maker: 'Zee'
+caption: "Zee's lacerna"
+date: '2021-11-07'
+intro: 'Zee did a great job on this Lunetius lacerna, one of the latest FreeSewing patterns. Their fabric choice looks great and the drape is super nice. They sewed it completely by hand!'
+title: "Zee's handsewn Lunetius lacerna"
+tags: ['lunetius']
+---
+
+
+
+Zee did a great job on this Lunetius lacerna, one of the latest FreeSewing patterns. Their fabric choice looks great and the drape is super nice. They sewed it completely by hand!
diff --git a/sites/orgdocs/src/components/todo.mjs b/sites/orgdocs/src/components/todo.mjs
new file mode 100644
index 00000000000..0a40ff45d85
--- /dev/null
+++ b/sites/orgdocs/src/components/todo.mjs
@@ -0,0 +1,13 @@
+import React from 'react'
+
+export const HomeIcon = () => (
+
+)
diff --git a/sites/orgdocs/src/css/custom.css b/sites/orgdocs/src/css/custom.css
index a8af450eb3c..fa93ed7bf79 100644
--- a/sites/orgdocs/src/css/custom.css
+++ b/sites/orgdocs/src/css/custom.css
@@ -4,6 +4,16 @@
* work well for content-centric websites.
*/
+/*
+ * Add Tailwindcss but only inside a container
+ * This is needed because docusaurus and tailwind will clash
+ */
+.tailwind-container {
+ @tailwind base;
+ @tailwind components;
+ @tailwind utilities;
+}
+
/* You can override the default Infima variables here. */
:root {
/* Neutral */
@@ -102,9 +112,9 @@
--ifm-sidebar-item-spacing: 8px;
/* Navbar Customizations */
- --ifm-navbar-background-color: hsl(var(--sky-700));
- --ifm-navbar-link-color: hsl(var(--neutral-50));
- --ifm-navbar-link-hover-color: hsl(var(--sky-300));
+ --ifm-navbar-background-color: hsl(var(--neutral-50));
+ --ifm-navbar-link-color: hsl(var(--neutral-900));
+ --ifm-navbar-link-hover-color: hsl(var(--sky-500));
/* Footer colors */
--ifm-footer-background-color: hsl(var(--neutral-100));
@@ -197,409 +207,6 @@ div.footer__copyright a {
font-weight: bold;
}
-/* Don't let the SVG surpass the parent container */
-svg.freesewing.pattern {
- max-width: 100%;
- max-height: 100%;
-}
-
-/* Reset & defaults */
-svg.freesewing.pattern path,
-svg.freesewing.pattern circle {
- fill: none;
- stroke: none;
- stroke-opacity: 1;
- stroke-width: calc(var(--pattern-stroke) * var(--pattern-scale));
- stroke-linecap: round;
- stroke-linejoin: round;
- stroke: currentColor;
-}
-
-svg.freesewing.pattern path.fabric,
-svg.freesewing.pattern circle.fabric,
-svg.freesewing.pattern .stroke-fabric {
- stroke: var(--pattern-fabric);
-}
-
-svg.freesewing.pattern path.lining,
-svg.freesewing.pattern circle.lining,
-svg.freesewing.pattern .stroke-lining {
- stroke: var(--pattern-lining);
-}
-
-svg.freesewing.pattern path.interfacing,
-svg.freesewing.pattern circle.interfacing,
-svg.freesewing.pattern .stroke-interfacing {
- stroke: var(--pattern-interfacing);
-}
-
-svg.freesewing.pattern path.canvas,
-svg.freesewing.pattern circle.canvas,
-svg.freesewing.pattern .stroke-canvas {
- stroke: var(--pattern-canvas);
-}
-
-svg.freesewing.pattern path.various,
-svg.freesewing.pattern circle.various,
-svg.freesewing.pattern .stroke-various {
- stroke: var(--pattern-various);
-}
-
-svg.freesewing.pattern path.mark,
-svg.freesewing.pattern circle.mark,
-svg.freesewing.pattern .stroke-mark {
- stroke: var(--pattern-mark);
-}
-
-svg.freesewing.pattern path.contrast,
-svg.freesewing.pattern circle.contrast,
-svg.freesewing.pattern .stroke-contrast {
- stroke: var(--pattern-contrast);
-}
-
-svg.freesewing.pattern path.note,
-svg.freesewing.pattern circle.note,
-svg.freesewing.pattern .stroke-note {
- stroke: var(--pattern-note);
-}
-
-svg.freesewing.pattern tspan.fabric,
-svg.freesewing.pattern text.fabric,
-svg.freesewing.pattern .fill-fabric {
- fill: var(--pattern-fabric);
-}
-
-svg.freesewing.pattern tspan.lining,
-svg.freesewing.pattern text.lining,
-svg.freesewing.pattern .fill-lining {
- fill: var(--pattern-lining);
-}
-
-svg.freesewing.pattern tspan.interfacing,
-svg.freesewing.pattern text.interfacing,
-svg.freesewing.pattern .fill-interfacing {
- fill: var(--pattern-interfacing);
-}
-
-svg.freesewing.pattern tspan.canvas,
-svg.freesewing.pattern text.canvas,
-svg.freesewing.pattern .fill-canvas {
- fill: var(--pattern-canvas);
-}
-
-svg.freesewing.pattern tspan.various,
-svg.freesewing.pattern text.various,
-svg.freesewing.pattern .fill-various {
- fill: var(--pattern-various);
-}
-
-svg.freesewing.pattern tspan.mark,
-svg.freesewing.pattern text.mark,
-svg.freesewing.pattern .fill-mark {
- fill: var(--pattern-mark);
-}
-
-svg.freesewing.pattern tspan.contrast,
-svg.freesewing.pattern text.contrast,
-svg.freesewing.pattern .fill-contrast {
- fill: var(--pattern-contrast);
-}
-
-svg.freesewing.pattern tspan.note,
-svg.freesewing.pattern text.note,
-svg.freesewing.pattern .fill-note {
- fill: var(--pattern-note);
-}
-
-svg.freesewing.pattern path.stroke-xs,
-svg.freesewing.pattern circle.stroke-xs {
- stroke-width: calc(var(--pattern-stroke-xs) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-sm,
-svg.freesewing.pattern circle.stroke-sm {
- stroke-width: calc(var(--pattern-stroke-sm) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-lg,
-svg.freesewing.pattern circle.stroke-lg {
- stroke-width: calc(var(--pattern-stroke-lg) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-xl,
-svg.freesewing.pattern circle.stroke-xl {
- stroke-width: calc(var(--pattern-stroke-xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-xxl,
-svg.freesewing.pattern circle.stroke-xxl,
-svg.freesewing.pattern path.stroke-2xl,
-svg.freesewing.pattern circle.stroke-2xl {
- stroke-width: calc(var(--pattern-stroke-2xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-3xl,
-svg.freesewing.pattern circle.stroke-3xl {
- stroke-width: calc(var(--pattern-stroke-3xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-4xl,
-svg.freesewing.pattern circle.stroke-4xl {
- stroke-width: calc(var(--pattern-stroke-4xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-5xl,
-svg.freesewing.pattern circle.stroke-5xl {
- stroke-width: calc(var(--pattern-stroke-5xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-6xl,
-svg.freesewing.pattern circle.stroke-6xl {
- stroke-width: calc(var(--pattern-stroke-6xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-7xl,
-svg.freesewing.pattern circle.stroke-7xl {
- stroke-width: calc(var(--pattern-stroke-7xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.stroke-8xl,
-svg.freesewing.pattern circle.stroke-8xl {
- stroke-width: calc(var(--pattern-stroke-8xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern path.sa,
-svg.freesewing.pattern circle.sa {
- stroke-dasharray: 1, 3;
-}
-
-svg.freesewing.pattern path.help,
-svg.freesewing.pattern circle.help {
- stroke-dasharray: 15, 5, 2, 5;
-}
-
-svg.freesewing.pattern path.dotted,
-svg.freesewing.pattern circle.dotted {
- stroke-dasharray: 0.5, 1;
-}
-
-svg.freesewing.pattern path.dashed,
-svg.freesewing.pattern circle.dashed {
- stroke-dasharray: 2, 2;
-}
-
-svg.freesewing.pattern path.lashed,
-svg.freesewing.pattern circle.lashed {
- stroke-dasharray: 8, 3;
-}
-
-svg.freesewing.pattern path.hidden,
-svg.freesewing.pattern circle.hidden {
- stroke: none !important;
- fill: none !important;
-}
-
-svg.freesewing.pattern path.no-stroke,
-svg.freesewing.pattern circle.no-stroke {
- stroke: none !important;
-}
-
-svg.freesewing.pattern path.no-fill,
-svg.freesewing.pattern circle.no-fill {
- fill: none !important;
-}
-
-svg.freesewing.pattern text {
- font-size: calc(var(--pattern-text) * var(--pattern-scale));
- text-anchor: start;
- font-weight: normal;
- fill: currentColor;
- dominant-baseline: ideographic;
-}
-
-svg.freesewing.pattern .text-xs {
- font-size: calc(var(--pattern-text-xs) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-sm {
- font-size: calc(var(--pattern-text-sm) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-lg {
- font-size: calc(var(--pattern-text-lg) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-xl {
- font-size: calc(var(--pattern-text-xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-2xl {
- font-size: calc(var(--pattern-text-2xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-3xl {
- font-size: calc(var(--pattern-text-3xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-4xl {
- font-size: calc(var(--pattern-text-4xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .text-5xl {
- font-size: calc(var(--pattern-text-5xl) * var(--pattern-scale));
-}
-
-svg.freesewing.pattern .bold {
- font-weight: bold;
-}
-
-svg.freesewing.pattern .italic {
- font-style: italic;
-}
-
-svg.freesewing.pattern text.capitalize {
- text-transform: capitalize;
-}
-
-svg.freesewing.pattern .center {
- text-anchor: middle;
-}
-
-svg.freesewing.pattern .baseline-center {
- dominant-baseline: central;
-}
-
-svg.freesewing.pattern .right {
- text-anchor: end;
-}
-
-svg.freesewing.pattern .muted {
- opacity: 0.15;
-}
-
-/* Developer view */
-g.develop.point {
- circle.center {
- stroke: var(--pattern-contrast);
- stroke-width: calc(var(--pattern-stroke) * var(--pattern-scale) / 2);
- fill: transparent;
- }
-}
-circle.develop.path.cp {
- stroke: none;
- fill: var(--pattern-lining);
- fill-opacity: 0.4;
-}
-path.develop.path.cp {
- stroke: var(--pattern-lining);
- stroke-width: calc(var(--pattern-stroke) * var(--pattern-scale) / 2);
-}
-
-/* Styling the shadow DOM is hard to do
- * This is for styling FreeSewing snippets
- * TODO: Update snippets to use inline styles with CSS vars
- */
-g#notch circle.note,
-g#bnotch path.note,
-g#bnotch circle.note {
- stroke: var(--pattern-note);
- fill: none;
-}
-g#notch circle.fill-note,
-g#bnotch circle.fill-note {
- fill: var(--pattern-note);
-}
-g#button circle.mark {
- stroke: var(--pattern-mark);
- fill: none;
-}
-g#button circle.fill-mark {
- fill: var(--pattern-mark);
-}
-g#button circle.no-stroke {
- stroke: none;
-}
-g#buttonhole path.mark,
-g#buttonhole-start path.mark,
-g#buttonhole-end path.mark {
- fill: none;
- stroke: var(--pattern-mark);
-}
-
-/* Same for paperless grid, also in shadow DOM */
-rect.grid {
- stroke-width: 1;
- stroke: currentColor;
-}
-path.gridline {
- stroke-linecap: butt;
- stroke-width: 0.3 !important;
- stroke-dasharray: none;
-}
-path.gridline.sm {
- stroke-width: 0.15 !important;
-}
-path.gridline.xs {
- stroke-width: 0.1 !important;
-}
-path.gridline.metric.sm {
- stroke-dasharray: 3 1;
-}
-path.gridline.metric.xs {
- stroke-dasharray: 1 1;
-}
-path.gridline.imperial {
- stroke-dasharray: 5 5;
-}
-path.gridline.imperial.sm {
- stroke-dasharray: 2 2;
-}
-
-figure.develop.example div.develop {
- .path,
- .point {
- border-left: 0.25rem solid transparent;
- padding-left: 0.25rem;
- margin-bottom: 0.5rem;
- }
- .path {
- border-left: 3px dotted transparent;
- padding-left: 4px;
- }
- .path.c0,
- .point.c0 {
- border-color: var(--pattern-dev-0);
- }
- .path.c1,
- .point.c1 {
- border-color: var(--pattern-dev-1);
- }
- .path.c2,
- .point.c2 {
- border-color: var(--pattern-dev-2);
- }
- .path.c3,
- .point.c3 {
- border-color: var(--pattern-dev-3);
- }
- .path.c4,
- .point.c4 {
- border-color: var(--pattern-dev-4);
- }
- .path.c5,
- .point.c5 {
- border-color: var(--pattern-dev-5);
- }
- .path.c6,
- .point.c6 {
- border-color: var(--pattern-dev-6);
- }
- .path.c7,
- .point.c7 {
- border-color: var(--pattern-dev-7);
- }
-}
-
.caption {
text-align: center;
font-style: italic;
@@ -637,3 +244,14 @@ figcaption.mdx {
padding: 0 0.5rem;
font-size: 90%;
}
+
+/*
+ * fixes
+ */
+.avatar img {
+ width: var(--ifm-avatar-photo-size);
+ height: var(--ifm-avatar-photo-size);
+}
+.avatar > div {
+ aspect-ratio: auto;
+}
diff --git a/sites/orgdocs/src/css/patterns.css b/sites/orgdocs/src/css/patterns.css
new file mode 100644
index 00000000000..931a1cad5b3
--- /dev/null
+++ b/sites/orgdocs/src/css/patterns.css
@@ -0,0 +1,448 @@
+/* Don't let the SVG surpass the parent container */
+svg.freesewing.pattern {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+/* Reset & defaults */
+svg.freesewing.pattern path,
+svg.freesewing.pattern circle {
+ fill: none;
+ stroke: none;
+ stroke-opacity: 1;
+ stroke-width: calc(var(--pattern-stroke) * var(--pattern-scale));
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke: currentColor;
+}
+
+svg.freesewing.pattern path.fabric,
+svg.freesewing.pattern circle.fabric,
+svg.freesewing.pattern .stroke-fabric {
+ stroke: var(--pattern-fabric);
+}
+
+svg.freesewing.pattern path.lining,
+svg.freesewing.pattern circle.lining,
+svg.freesewing.pattern .stroke-lining {
+ stroke: var(--pattern-lining);
+}
+
+svg.freesewing.pattern path.interfacing,
+svg.freesewing.pattern circle.interfacing,
+svg.freesewing.pattern .stroke-interfacing {
+ stroke: var(--pattern-interfacing);
+}
+
+svg.freesewing.pattern path.canvas,
+svg.freesewing.pattern circle.canvas,
+svg.freesewing.pattern .stroke-canvas {
+ stroke: var(--pattern-canvas);
+}
+
+svg.freesewing.pattern path.various,
+svg.freesewing.pattern circle.various,
+svg.freesewing.pattern .stroke-various {
+ stroke: var(--pattern-various);
+}
+
+svg.freesewing.pattern path.mark,
+svg.freesewing.pattern circle.mark,
+svg.freesewing.pattern .stroke-mark {
+ stroke: var(--pattern-mark);
+}
+
+svg.freesewing.pattern path.contrast,
+svg.freesewing.pattern circle.contrast,
+svg.freesewing.pattern .stroke-contrast {
+ stroke: var(--pattern-contrast);
+}
+
+svg.freesewing.pattern path.note,
+svg.freesewing.pattern circle.note,
+svg.freesewing.pattern .stroke-note {
+ stroke: var(--pattern-note);
+}
+
+svg.freesewing.pattern tspan.fabric,
+svg.freesewing.pattern text.fabric,
+svg.freesewing.pattern .fill-fabric {
+ fill: var(--pattern-fabric);
+}
+
+svg.freesewing.pattern tspan.lining,
+svg.freesewing.pattern text.lining,
+svg.freesewing.pattern .fill-lining {
+ fill: var(--pattern-lining);
+}
+
+svg.freesewing.pattern tspan.interfacing,
+svg.freesewing.pattern text.interfacing,
+svg.freesewing.pattern .fill-interfacing {
+ fill: var(--pattern-interfacing);
+}
+
+svg.freesewing.pattern tspan.canvas,
+svg.freesewing.pattern text.canvas,
+svg.freesewing.pattern .fill-canvas {
+ fill: var(--pattern-canvas);
+}
+
+svg.freesewing.pattern tspan.various,
+svg.freesewing.pattern text.various,
+svg.freesewing.pattern .fill-various {
+ fill: var(--pattern-various);
+}
+
+svg.freesewing.pattern tspan.mark,
+svg.freesewing.pattern text.mark,
+svg.freesewing.pattern .fill-mark {
+ fill: var(--pattern-mark);
+}
+
+svg.freesewing.pattern tspan.contrast,
+svg.freesewing.pattern text.contrast,
+svg.freesewing.pattern .fill-contrast {
+ fill: var(--pattern-contrast);
+}
+
+svg.freesewing.pattern tspan.note,
+svg.freesewing.pattern text.note,
+svg.freesewing.pattern .fill-note {
+ fill: var(--pattern-note);
+}
+
+svg.freesewing.pattern path.stroke-xs,
+svg.freesewing.pattern circle.stroke-xs {
+ stroke-width: calc(var(--pattern-stroke-xs) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-sm,
+svg.freesewing.pattern circle.stroke-sm {
+ stroke-width: calc(var(--pattern-stroke-sm) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-lg,
+svg.freesewing.pattern circle.stroke-lg {
+ stroke-width: calc(var(--pattern-stroke-lg) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-xl,
+svg.freesewing.pattern circle.stroke-xl {
+ stroke-width: calc(var(--pattern-stroke-xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-xxl,
+svg.freesewing.pattern circle.stroke-xxl,
+svg.freesewing.pattern path.stroke-2xl,
+svg.freesewing.pattern circle.stroke-2xl {
+ stroke-width: calc(var(--pattern-stroke-2xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-3xl,
+svg.freesewing.pattern circle.stroke-3xl {
+ stroke-width: calc(var(--pattern-stroke-3xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-4xl,
+svg.freesewing.pattern circle.stroke-4xl {
+ stroke-width: calc(var(--pattern-stroke-4xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-5xl,
+svg.freesewing.pattern circle.stroke-5xl {
+ stroke-width: calc(var(--pattern-stroke-5xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-6xl,
+svg.freesewing.pattern circle.stroke-6xl {
+ stroke-width: calc(var(--pattern-stroke-6xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-7xl,
+svg.freesewing.pattern circle.stroke-7xl {
+ stroke-width: calc(var(--pattern-stroke-7xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.stroke-8xl,
+svg.freesewing.pattern circle.stroke-8xl {
+ stroke-width: calc(var(--pattern-stroke-8xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern path.sa,
+svg.freesewing.pattern circle.sa {
+ stroke-dasharray: 1, 3;
+}
+
+svg.freesewing.pattern path.help,
+svg.freesewing.pattern circle.help {
+ stroke-dasharray: 15, 5, 2, 5;
+}
+
+svg.freesewing.pattern path.dotted,
+svg.freesewing.pattern circle.dotted {
+ stroke-dasharray: 0.5, 1;
+}
+
+svg.freesewing.pattern path.dashed,
+svg.freesewing.pattern circle.dashed {
+ stroke-dasharray: 2, 2;
+}
+
+svg.freesewing.pattern path.lashed,
+svg.freesewing.pattern circle.lashed {
+ stroke-dasharray: 8, 3;
+}
+
+svg.freesewing.pattern path.hidden,
+svg.freesewing.pattern circle.hidden {
+ stroke: none !important;
+ fill: none !important;
+}
+
+svg.freesewing.pattern path.no-stroke,
+svg.freesewing.pattern circle.no-stroke {
+ stroke: none !important;
+}
+
+svg.freesewing.pattern path.no-fill,
+svg.freesewing.pattern circle.no-fill {
+ fill: none !important;
+}
+
+svg.freesewing.pattern text {
+ font-size: calc(var(--pattern-text) * var(--pattern-scale));
+ text-anchor: start;
+ font-weight: normal;
+ fill: currentColor;
+ dominant-baseline: ideographic;
+}
+
+svg.freesewing.pattern .text-xs {
+ font-size: calc(var(--pattern-text-xs) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-sm {
+ font-size: calc(var(--pattern-text-sm) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-lg {
+ font-size: calc(var(--pattern-text-lg) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-xl {
+ font-size: calc(var(--pattern-text-xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-2xl {
+ font-size: calc(var(--pattern-text-2xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-3xl {
+ font-size: calc(var(--pattern-text-3xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-4xl {
+ font-size: calc(var(--pattern-text-4xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .text-5xl {
+ font-size: calc(var(--pattern-text-5xl) * var(--pattern-scale));
+}
+
+svg.freesewing.pattern .bold {
+ font-weight: bold;
+}
+
+svg.freesewing.pattern .italic {
+ font-style: italic;
+}
+
+svg.freesewing.pattern text.capitalize {
+ text-transform: capitalize;
+}
+
+svg.freesewing.pattern .center {
+ text-anchor: middle;
+}
+
+svg.freesewing.pattern .baseline-center {
+ dominant-baseline: central;
+}
+
+svg.freesewing.pattern .right {
+ text-anchor: end;
+}
+
+svg.freesewing.pattern .muted {
+ opacity: 0.15;
+}
+
+/* Developer view */
+g.develop.point {
+ circle.center {
+ stroke: var(--pattern-contrast);
+ stroke-width: calc(var(--pattern-stroke) * var(--pattern-scale) / 2);
+ fill: transparent;
+ }
+}
+circle.develop.path.cp {
+ stroke: none;
+ fill: var(--pattern-lining);
+ fill-opacity: 0.4;
+}
+path.develop.path.cp {
+ stroke: var(--pattern-lining);
+ stroke-width: calc(var(--pattern-stroke) * var(--pattern-scale) / 2);
+}
+
+/* Styling the shadow DOM is hard to do
+ * This is for styling FreeSewing snippets
+ * TODO: Update snippets to use inline styles with CSS vars
+ */
+g#notch circle.note,
+g#bnotch path.note,
+g#bnotch circle.note {
+ stroke: var(--pattern-note);
+ fill: none;
+}
+g#notch circle.fill-note,
+g#bnotch circle.fill-note {
+ fill: var(--pattern-note);
+}
+g#button circle.mark {
+ stroke: var(--pattern-mark);
+ fill: none;
+}
+g#button circle.fill-mark {
+ fill: var(--pattern-mark);
+}
+g#button circle.no-stroke {
+ stroke: none;
+}
+g#buttonhole path.mark,
+g#buttonhole-start path.mark,
+g#buttonhole-end path.mark {
+ fill: none;
+ stroke: var(--pattern-mark);
+}
+
+/* Same for paperless grid, also in shadow DOM */
+rect.grid {
+ stroke-width: 1;
+ stroke: currentColor;
+}
+path.gridline {
+ stroke-linecap: butt;
+ stroke-width: 0.3 !important;
+ stroke-dasharray: none;
+}
+path.gridline.sm {
+ stroke-width: 0.15 !important;
+}
+path.gridline.xs {
+ stroke-width: 0.1 !important;
+}
+path.gridline.metric.sm {
+ stroke-dasharray: 3 1;
+}
+path.gridline.metric.xs {
+ stroke-dasharray: 1 1;
+}
+path.gridline.imperial {
+ stroke-dasharray: 5 5;
+}
+path.gridline.imperial.sm {
+ stroke-dasharray: 2 2;
+}
+
+figure.develop.example div.develop {
+ .path,
+ .point {
+ border-left: 0.25rem solid transparent;
+ padding-left: 0.25rem;
+ margin-bottom: 0.5rem;
+ }
+ .path {
+ border-left: 3px dotted transparent;
+ padding-left: 4px;
+ }
+ .path.c0,
+ .point.c0 {
+ border-color: var(--pattern-dev-0);
+ }
+ .path.c1,
+ .point.c1 {
+ border-color: var(--pattern-dev-1);
+ }
+ .path.c2,
+ .point.c2 {
+ border-color: var(--pattern-dev-2);
+ }
+ .path.c3,
+ .point.c3 {
+ border-color: var(--pattern-dev-3);
+ }
+ .path.c4,
+ .point.c4 {
+ border-color: var(--pattern-dev-4);
+ }
+ .path.c5,
+ .point.c5 {
+ border-color: var(--pattern-dev-5);
+ }
+ .path.c6,
+ .point.c6 {
+ border-color: var(--pattern-dev-6);
+ }
+ .path.c7,
+ .point.c7 {
+ border-color: var(--pattern-dev-7);
+ }
+}
+
+.caption {
+ text-align: center;
+ font-style: italic;
+ margin-top: -1rem;
+}
+
+.tag,
+.technique {
+ background: var(--ifm-color-primary);
+ padding: 0.2rem 0.5rem;
+ font-weight: bold;
+ color: var(--ifm-font-color-light);
+ border-radius: 0.5rem;
+}
+
+.technique {
+ background: hsl(var(--pink-500));
+}
+
+p > figure.mdx {
+ padding: 0;
+ margin: 0;
+}
+figure.mdx {
+ margin: 0;
+ padding: 1rem 0 0;
+}
+figure.mdx > img {
+ padding: 1rem;
+}
+figcaption.mdx {
+ font-style: italic;
+ margin-top: -0.25rem;
+ opacity: 0.8;
+ padding: 0 0.5rem;
+ font-size: 90%;
+}
+
+/*
+ * fixes
+ */
+.avatar img {
+ width: var(--ifm-avatar-photo-size);
+ height: var(--ifm-avatar-photo-size);
+}
diff --git a/sites/orgdocs/src/pages/account/index.md b/sites/orgdocs/src/pages/account/index.md
new file mode 100644
index 00000000000..23028acf7b9
--- /dev/null
+++ b/sites/orgdocs/src/pages/account/index.md
@@ -0,0 +1 @@
+Account goes here
diff --git a/sites/orgdocs/src/pages/designs/aaron.md b/sites/orgdocs/src/pages/designs/aaron.md
new file mode 100644
index 00000000000..7d93f099b6a
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/aaron.md
@@ -0,0 +1 @@
+aaron
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/albert.md b/sites/orgdocs/src/pages/designs/albert.md
new file mode 100644
index 00000000000..eb1e24640ea
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/albert.md
@@ -0,0 +1 @@
+albert
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/bee.md b/sites/orgdocs/src/pages/designs/bee.md
new file mode 100644
index 00000000000..84738b4acf6
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/bee.md
@@ -0,0 +1 @@
+bee
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/bella.md b/sites/orgdocs/src/pages/designs/bella.md
new file mode 100644
index 00000000000..c8be6e3816c
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/bella.md
@@ -0,0 +1 @@
+bella
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/benjamin.md b/sites/orgdocs/src/pages/designs/benjamin.md
new file mode 100644
index 00000000000..91e7e455446
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/benjamin.md
@@ -0,0 +1 @@
+benjamin
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/bent.md b/sites/orgdocs/src/pages/designs/bent.md
new file mode 100644
index 00000000000..7a4e85fd757
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/bent.md
@@ -0,0 +1 @@
+bent
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/bibi.md b/sites/orgdocs/src/pages/designs/bibi.md
new file mode 100644
index 00000000000..4f991146ad5
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/bibi.md
@@ -0,0 +1 @@
+bibi
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/bob.md b/sites/orgdocs/src/pages/designs/bob.md
new file mode 100644
index 00000000000..2529de8969e
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/bob.md
@@ -0,0 +1 @@
+bob
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/breanna.md b/sites/orgdocs/src/pages/designs/breanna.md
new file mode 100644
index 00000000000..5828010521e
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/breanna.md
@@ -0,0 +1 @@
+breanna
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/brian.md b/sites/orgdocs/src/pages/designs/brian.md
new file mode 100644
index 00000000000..c17e5c8fddc
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/brian.md
@@ -0,0 +1 @@
+brian
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/bruce.md b/sites/orgdocs/src/pages/designs/bruce.md
new file mode 100644
index 00000000000..db5a48dfd93
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/bruce.md
@@ -0,0 +1 @@
+bruce
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/carlita.md b/sites/orgdocs/src/pages/designs/carlita.md
new file mode 100644
index 00000000000..dc85855916e
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/carlita.md
@@ -0,0 +1 @@
+carlita
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/carlton.md b/sites/orgdocs/src/pages/designs/carlton.md
new file mode 100644
index 00000000000..941f51dd886
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/carlton.md
@@ -0,0 +1 @@
+carlton
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/cathrin.md b/sites/orgdocs/src/pages/designs/cathrin.md
new file mode 100644
index 00000000000..afa569b0787
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/cathrin.md
@@ -0,0 +1 @@
+cathrin
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/charlie.md b/sites/orgdocs/src/pages/designs/charlie.md
new file mode 100644
index 00000000000..b4d45cf2a60
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/charlie.md
@@ -0,0 +1 @@
+charlie
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/cornelius.md b/sites/orgdocs/src/pages/designs/cornelius.md
new file mode 100644
index 00000000000..bb71c8a8aa1
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/cornelius.md
@@ -0,0 +1 @@
+cornelius
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/diana.md b/sites/orgdocs/src/pages/designs/diana.md
new file mode 100644
index 00000000000..89f1b9b53ba
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/diana.md
@@ -0,0 +1 @@
+diana
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/florence.md b/sites/orgdocs/src/pages/designs/florence.md
new file mode 100644
index 00000000000..a770c181668
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/florence.md
@@ -0,0 +1 @@
+florence
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/florent.md b/sites/orgdocs/src/pages/designs/florent.md
new file mode 100644
index 00000000000..c520abc9187
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/florent.md
@@ -0,0 +1 @@
+florent
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/gozer.md b/sites/orgdocs/src/pages/designs/gozer.md
new file mode 100644
index 00000000000..0a7e34d8508
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/gozer.md
@@ -0,0 +1 @@
+gozer
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/hi.md b/sites/orgdocs/src/pages/designs/hi.md
new file mode 100644
index 00000000000..32f95c0d124
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/hi.md
@@ -0,0 +1 @@
+hi
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/holmes.md b/sites/orgdocs/src/pages/designs/holmes.md
new file mode 100644
index 00000000000..6eec9e12adf
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/holmes.md
@@ -0,0 +1 @@
+holmes
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/hortensia.md b/sites/orgdocs/src/pages/designs/hortensia.md
new file mode 100644
index 00000000000..6284cfbee45
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/hortensia.md
@@ -0,0 +1 @@
+hortensia
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/huey.md b/sites/orgdocs/src/pages/designs/huey.md
new file mode 100644
index 00000000000..8816c247324
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/huey.md
@@ -0,0 +1 @@
+huey
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/hugo.md b/sites/orgdocs/src/pages/designs/hugo.md
new file mode 100644
index 00000000000..2ffa7b29ab2
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/hugo.md
@@ -0,0 +1 @@
+hugo
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/index.md b/sites/orgdocs/src/pages/designs/index.md
new file mode 100644
index 00000000000..93722f6698c
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/index.md
@@ -0,0 +1 @@
+designs index
diff --git a/sites/orgdocs/src/pages/designs/jaeger.md b/sites/orgdocs/src/pages/designs/jaeger.md
new file mode 100644
index 00000000000..d3a76e02ed6
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/jaeger.md
@@ -0,0 +1 @@
+jaeger
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/jane.md b/sites/orgdocs/src/pages/designs/jane.md
new file mode 100644
index 00000000000..c6a51c1c338
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/jane.md
@@ -0,0 +1 @@
+jane
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/lily.md b/sites/orgdocs/src/pages/designs/lily.md
new file mode 100644
index 00000000000..a4c89dea035
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/lily.md
@@ -0,0 +1 @@
+lily
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/lucy.md b/sites/orgdocs/src/pages/designs/lucy.md
new file mode 100644
index 00000000000..e2b60c5f170
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/lucy.md
@@ -0,0 +1 @@
+lucy
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/lumina.md b/sites/orgdocs/src/pages/designs/lumina.md
new file mode 100644
index 00000000000..a188a9a4187
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/lumina.md
@@ -0,0 +1 @@
+lumina
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/lumira.md b/sites/orgdocs/src/pages/designs/lumira.md
new file mode 100644
index 00000000000..a05b233232c
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/lumira.md
@@ -0,0 +1 @@
+lumira
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/lunetius.md b/sites/orgdocs/src/pages/designs/lunetius.md
new file mode 100644
index 00000000000..3f18db6b8d7
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/lunetius.md
@@ -0,0 +1 @@
+lunetius
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/noble.md b/sites/orgdocs/src/pages/designs/noble.md
new file mode 100644
index 00000000000..c44ffafd2e4
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/noble.md
@@ -0,0 +1 @@
+noble
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/octoplushy.md b/sites/orgdocs/src/pages/designs/octoplushy.md
new file mode 100644
index 00000000000..5e433b729d3
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/octoplushy.md
@@ -0,0 +1 @@
+octoplushy
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/onyx.md b/sites/orgdocs/src/pages/designs/onyx.md
new file mode 100644
index 00000000000..37be007c6b9
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/onyx.md
@@ -0,0 +1 @@
+onyx
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/opal.md b/sites/orgdocs/src/pages/designs/opal.md
new file mode 100644
index 00000000000..c1fe64dd840
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/opal.md
@@ -0,0 +1 @@
+opal
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/otis.md b/sites/orgdocs/src/pages/designs/otis.md
new file mode 100644
index 00000000000..0e676881b13
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/otis.md
@@ -0,0 +1 @@
+otis
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/paco.md b/sites/orgdocs/src/pages/designs/paco.md
new file mode 100644
index 00000000000..f77ab651c92
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/paco.md
@@ -0,0 +1 @@
+paco
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/penelope.md b/sites/orgdocs/src/pages/designs/penelope.md
new file mode 100644
index 00000000000..9bcf72e8110
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/penelope.md
@@ -0,0 +1 @@
+penelope
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/sandy.md b/sites/orgdocs/src/pages/designs/sandy.md
new file mode 100644
index 00000000000..9acaf9ce63e
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/sandy.md
@@ -0,0 +1 @@
+sandy
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/shelly.md b/sites/orgdocs/src/pages/designs/shelly.md
new file mode 100644
index 00000000000..d6789a7ea7a
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/shelly.md
@@ -0,0 +1 @@
+shelly
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/shin.md b/sites/orgdocs/src/pages/designs/shin.md
new file mode 100644
index 00000000000..21f04bc5760
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/shin.md
@@ -0,0 +1 @@
+shin
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/simon.md b/sites/orgdocs/src/pages/designs/simon.md
new file mode 100644
index 00000000000..ad05d4a34c2
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/simon.md
@@ -0,0 +1 @@
+simon
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/simone.md b/sites/orgdocs/src/pages/designs/simone.md
new file mode 100644
index 00000000000..6d32071d64b
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/simone.md
@@ -0,0 +1 @@
+simone
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/skully.md b/sites/orgdocs/src/pages/designs/skully.md
new file mode 100644
index 00000000000..700fa0af62d
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/skully.md
@@ -0,0 +1 @@
+skully
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/sven.md b/sites/orgdocs/src/pages/designs/sven.md
new file mode 100644
index 00000000000..af9b1911bd4
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/sven.md
@@ -0,0 +1 @@
+sven
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/tamiko.md b/sites/orgdocs/src/pages/designs/tamiko.md
new file mode 100644
index 00000000000..d572a891469
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/tamiko.md
@@ -0,0 +1 @@
+tamiko
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/teagan.md b/sites/orgdocs/src/pages/designs/teagan.md
new file mode 100644
index 00000000000..1e8bba8cfdd
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/teagan.md
@@ -0,0 +1 @@
+teagan
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/tiberius.md b/sites/orgdocs/src/pages/designs/tiberius.md
new file mode 100644
index 00000000000..f0cf68f7937
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/tiberius.md
@@ -0,0 +1 @@
+tiberius
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/titan.md b/sites/orgdocs/src/pages/designs/titan.md
new file mode 100644
index 00000000000..a8693a3be48
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/titan.md
@@ -0,0 +1 @@
+titan
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/trayvon.md b/sites/orgdocs/src/pages/designs/trayvon.md
new file mode 100644
index 00000000000..145110c1d63
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/trayvon.md
@@ -0,0 +1 @@
+trayvon
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/tristan.md b/sites/orgdocs/src/pages/designs/tristan.md
new file mode 100644
index 00000000000..506cc1c6617
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/tristan.md
@@ -0,0 +1 @@
+tristan
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/uma.md b/sites/orgdocs/src/pages/designs/uma.md
new file mode 100644
index 00000000000..9c72f541203
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/uma.md
@@ -0,0 +1 @@
+uma
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/umbra.md b/sites/orgdocs/src/pages/designs/umbra.md
new file mode 100644
index 00000000000..709962e7aa5
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/umbra.md
@@ -0,0 +1 @@
+umbra
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/wahid.md b/sites/orgdocs/src/pages/designs/wahid.md
new file mode 100644
index 00000000000..06c540a55a1
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/wahid.md
@@ -0,0 +1 @@
+wahid
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/walburga.md b/sites/orgdocs/src/pages/designs/walburga.md
new file mode 100644
index 00000000000..0d5b675cdb2
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/walburga.md
@@ -0,0 +1 @@
+walburga
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/waralee.md b/sites/orgdocs/src/pages/designs/waralee.md
new file mode 100644
index 00000000000..31dca466129
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/waralee.md
@@ -0,0 +1 @@
+waralee
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/designs/yuri.md b/sites/orgdocs/src/pages/designs/yuri.md
new file mode 100644
index 00000000000..a9af95d9cab
--- /dev/null
+++ b/sites/orgdocs/src/pages/designs/yuri.md
@@ -0,0 +1 @@
+yuri
\ No newline at end of file
diff --git a/sites/orgdocs/src/pages/editor/index.md b/sites/orgdocs/src/pages/editor/index.md
new file mode 100644
index 00000000000..a1acccd6403
--- /dev/null
+++ b/sites/orgdocs/src/pages/editor/index.md
@@ -0,0 +1 @@
+Editor goes here
diff --git a/sites/orgdocs/src/pages/id.md b/sites/orgdocs/src/pages/id.md
new file mode 100644
index 00000000000..22accdd322b
--- /dev/null
+++ b/sites/orgdocs/src/pages/id.md
@@ -0,0 +1 @@
+ID page here (resolves the user's id)
diff --git a/sites/orgdocs/src/pages/index.js b/sites/orgdocs/src/pages/index.js
index f713b54e760..3411a33358b 100644
--- a/sites/orgdocs/src/pages/index.js
+++ b/sites/orgdocs/src/pages/index.js
@@ -62,7 +62,7 @@ export default function Home() {
>
-
Documentation
+
Fixme: Build home page
diff --git a/sites/orgdocs/src/pages/new/index.md b/sites/orgdocs/src/pages/new/index.md
new file mode 100644
index 00000000000..bb03016285a
--- /dev/null
+++ b/sites/orgdocs/src/pages/new/index.md
@@ -0,0 +1 @@
+New page here
diff --git a/sites/orgdocs/src/pages/new/showcase.md b/sites/orgdocs/src/pages/new/showcase.md
new file mode 100644
index 00000000000..32b8e1f10a5
--- /dev/null
+++ b/sites/orgdocs/src/pages/new/showcase.md
@@ -0,0 +1 @@
+New showcase page goes here
diff --git a/sites/orgdocs/src/pages/patrons/index.md b/sites/orgdocs/src/pages/patrons/index.md
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/sites/orgdocs/src/pages/patrons/join.md b/sites/orgdocs/src/pages/patrons/join.md
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/sites/orgdocs/src/pages/profile.md b/sites/orgdocs/src/pages/profile.md
new file mode 100644
index 00000000000..3ff621891b6
--- /dev/null
+++ b/sites/orgdocs/src/pages/profile.md
@@ -0,0 +1 @@
+Profile page goes here
diff --git a/sites/orgdocs/src/pages/share.md b/sites/orgdocs/src/pages/share.md
new file mode 100644
index 00000000000..a03dc63e6a3
--- /dev/null
+++ b/sites/orgdocs/src/pages/share.md
@@ -0,0 +1 @@
+Share page goes here
diff --git a/sites/orgdocs/src/pages/support.md b/sites/orgdocs/src/pages/support.md
new file mode 100644
index 00000000000..3b8de5d1440
--- /dev/null
+++ b/sites/orgdocs/src/pages/support.md
@@ -0,0 +1 @@
+Support page goes here
diff --git a/sites/orgdocs/src/pages/users/user.md b/sites/orgdocs/src/pages/users/user.md
new file mode 100644
index 00000000000..43fd2e4857a
--- /dev/null
+++ b/sites/orgdocs/src/pages/users/user.md
@@ -0,0 +1 @@
+User page goes here
diff --git a/sites/orgdocs/src/pages/welcome.md b/sites/orgdocs/src/pages/welcome.md
new file mode 100644
index 00000000000..8c22be7be8b
--- /dev/null
+++ b/sites/orgdocs/src/pages/welcome.md
@@ -0,0 +1 @@
+Welcome page goes here
diff --git a/sites/orgdocs/src/theme/BlogPostItem/index.js b/sites/orgdocs/src/theme/BlogPostItem/index.js
new file mode 100644
index 00000000000..7b7d6586727
--- /dev/null
+++ b/sites/orgdocs/src/theme/BlogPostItem/index.js
@@ -0,0 +1,78 @@
+import clsx from 'clsx'
+import { useBlogPost } from '@docusaurus/plugin-content-blog/client'
+import BlogPostItemContainer from '@theme/BlogPostItem/Container'
+import BlogPostItemContent from '@theme/BlogPostItem/Content'
+import BlogPostItemFooter from '@theme/BlogPostItem/Footer'
+import { useLocation } from '@docusaurus/router'
+import BlogPostItemHeaderInfo from '@theme/BlogPostItem/Header/Info'
+import BlogPostItemHeaderAuthors from '@theme/BlogPostItem/Header/Authors'
+import { Breadcrumbs } from '../BlogPostItems/index.js'
+import { capitalize } from '@site/src/lib/utils.mjs'
+
+// apply a bottom margin in list view
+function useContainerClassName() {
+ const { isBlogPostPage } = useBlogPost()
+ return !isBlogPostPage ? 'margin-bottom--xl' : undefined
+}
+
+const BlogPostHeader = ({ type }) => {
+ const { metadata } = useBlogPost()
+
+ return (
+ <>
+
+
+
+ {type}:
+ {metadata.title}
+
+
+
+
+ {type === 'newsletter' ? null : }
+ >
+ )
+}
+
+/*
+ * Get blog post image from permalink
+ */
+export const imgPrefix = 'https://imagedelivery.net/ouSuR9yY1bHt-fuAokSA5Q/'
+export const imgUrl = (permalink) => `${imgPrefix}${permalink.slice(1).split('/').join('-')}/public`
+
+export default function BlogPostItem(props) {
+ const { children, className } = props
+ const containerClassName = useContainerClassName()
+ const location = useLocation()
+ /*
+ * This code is shared between all blog instances
+ * which means: blog, showcase, and newsletter
+ * so we need to figure out which it is
+ */
+ const type = location.pathname.split('/')[1]
+
+ return (
+
+
+
+
+ )
+}
+
+const BlogPostItems = ({ items }) => {
+ const location = useLocation()
+ /*
+ * This code is shared between all blog instances
+ * which means: blog, showcase, and newsletter
+ * so we need to figure out which it is
+ */
+ const type = items[0].content.metadata.permalink.split('/')[1]
+
+ if (type === 'showcase') return
+ if (type === 'newsletter') return
+
+ return (
+ <>
+
+
+ >
+ )
+}
diff --git a/sites/orgdocs/tailwind.config.mjs b/sites/orgdocs/tailwind.config.mjs
new file mode 100644
index 00000000000..3ad051d60da
--- /dev/null
+++ b/sites/orgdocs/tailwind.config.mjs
@@ -0,0 +1,23 @@
+// Handle themes
+import { themes } from './themes/index.mjs'
+
+export default {
+ content: ['./src/*.js', './src/**/*.js', './src/*.mjs', './src/**/*.mjs'],
+ plugins: [require('daisyui'), require('tailwindcss/nesting')],
+ daisyui: {
+ themes: [themes],
+ styled: true,
+ base: true,
+ utils: true,
+ logs: true,
+ rtl: false,
+ themeRoot: '*',
+ },
+ theme: {
+ extend: {
+ aspectRatio: {
+ '9/16': '9 / 16',
+ },
+ },
+ },
+}
diff --git a/sites/orgdocs/themes/dark.mjs b/sites/orgdocs/themes/dark.mjs
new file mode 100644
index 00000000000..bb33d1b7360
--- /dev/null
+++ b/sites/orgdocs/themes/dark.mjs
@@ -0,0 +1,90 @@
+import colors from 'tailwindcss/colors'
+
+export const theme = {
+ fontFamily: 'system-ui, sans-serif',
+
+ 'base-100': colors.neutral['800'],
+ 'base-200': colors.neutral['700'],
+ 'base-300': colors.neutral['600'],
+ 'base-content': colors.neutral['200'],
+
+ primary: colors.violet['400'],
+ 'primary-focus': colors.violet['300'],
+ 'primary-content': colors.neutral['900'],
+
+ secondary: colors.sky['400'],
+ 'secondary-focus': colors.sky['300'],
+ 'secondary-content': colors.neutral['900'],
+
+ accent: colors.fuchsia['400'],
+ 'accent-focus': colors.fuchsia['300'],
+ 'accent-content': colors.neutral['900'],
+
+ neutral: colors.neutral['900'],
+ 'neutral-focus': colors.neutral['700'],
+ 'neutral-content': colors.neutral['50'],
+
+ info: colors.indigo['400'],
+ success: colors.green['400'],
+ warning: colors.orange['400'],
+ error: colors.red['400'],
+
+ '--btn-info-content': colors.neutral[900],
+ '--btn-success-content': colors.neutral[900],
+ '--btn-warning-content': colors.neutral[900],
+ '--btn-error-content': colors.neutral[900],
+
+ '--code-background-color': '#111',
+ '--code-background-highlight-color': '#191919',
+ '--code-border-color': colors.neutral['800'],
+ '--code-color': colors.neutral['300'],
+ '--code-font-family': `"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace`,
+ '--code-border-radius': '0.5rem',
+ '--code-border-style': 'solid',
+ '--code-border-width': 2,
+ '--code-outer-padding': '0 0.5rem',
+ '--code-inner-padding': '1rem',
+ '--code-color-keyword': colors.yellow['500'],
+ '--code-font-weight-keyword': 'bold',
+ '--code-color-entity': colors.violet['400'],
+ '--code-font-weight-entity': 'bold',
+ '--code-color-constant': colors.lime['300'],
+ '--code-color-string': colors.sky['300'],
+ '--code-font-style-string': 'italic',
+ '--code-color-variable': colors.indigo['300'],
+ '--code-color-comment': colors.neutral['400'],
+ '--code-color-tag': colors.green['600'],
+ '--code-color-property': colors.yellow['200'],
+ '--code-font-weight-property': 'bold',
+
+ '--rounded-box': '0.5rem',
+ '--rounded-btn': '0.5rem',
+ '--rounded-badge': '1.9rem',
+ '--animation-btn': '0.25s',
+ '--animation-input': '.4s',
+ '--padding-card': '2rem',
+ '--btn-text-case': 'uppercase',
+ '--navbar-padding': '.5rem',
+ '--border-btn': '1px',
+ '--focus-ring': '2px',
+ '--focus-ring-offset': '2px',
+
+ '--pattern-bg': colors.neutral['900'],
+ '--pattern-fabric': colors.neutral['300'],
+ '--pattern-lining': colors.emerald['300'],
+ '--pattern-interfacing': colors.neutral['500'],
+ '--pattern-canvas': colors.amber['300'],
+ '--pattern-various': colors.red['300'],
+ '--pattern-mark': colors.blue['300'],
+ '--pattern-contrast': colors.pink['300'],
+ '--pattern-note': colors.violet['300'],
+
+ '--pattern-dev-0': colors.red['500'],
+ '--pattern-dev-1': colors.green['500'],
+ '--pattern-dev-2': colors.blue['500'],
+ '--pattern-dev-3': colors.yellow['500'],
+ '--pattern-dev-4': colors.pink['500'],
+ '--pattern-dev-5': colors.violet['500'],
+ '--pattern-dev-6': colors.teal['500'],
+ '--pattern-dev-7': colors.neutral['500'],
+}
diff --git a/sites/orgdocs/themes/index.mjs b/sites/orgdocs/themes/index.mjs
new file mode 100644
index 00000000000..3f90288f6b2
--- /dev/null
+++ b/sites/orgdocs/themes/index.mjs
@@ -0,0 +1,4 @@
+import { theme as light } from './light.mjs'
+import { theme as dark } from './dark.mjs'
+
+export const themes = { light, dark }
diff --git a/sites/orgdocs/themes/light.mjs b/sites/orgdocs/themes/light.mjs
new file mode 100644
index 00000000000..f7838df83ab
--- /dev/null
+++ b/sites/orgdocs/themes/light.mjs
@@ -0,0 +1,258 @@
+/**
+ * This is a theme file for DaisyUI for FreeSewing's Docusaurus-based website
+ * You can change colors, fonts, and a few other things here.
+ */
+
+/*
+ * We're using the TailwindCSS colors.
+ * Let's include them so we can reference them by name.
+ * For a full list, see: https://tailwindcss.com/docs/customizing-colors
+ */
+import colors from 'tailwindcss/colors'
+
+/*
+ * This export is the DaisyUI theme
+ */
+export const theme = {
+ /* FONTS
+ *
+ * This will apply to everything except code blocks
+ * Note that we're using a system font stack here.
+ * That means we're not loading any fonts in the browser,
+ * but rather relying on what the user has available locally.
+ *
+ * You can get more font stacks here: https://modernfontstacks.com/
+ */
+ fontFamily: 'system-ui, sans-serif',
+
+ /* COLORS
+ *
+ * These names are a bit 'bootstrap' like, which can be misleading.
+ * We don't really use primary and secondary colors, nor do we have
+ * a warning color and so on.
+ * However, these names are used under the hood by TailwindCSS
+ * and DaisyUI, so we're stuck with them.
+ *
+ * Read the descriptions below to understand what each color is used for.
+ */
+
+ // base-100: The default background color for a regular page (docs and so on)
+ 'base-100': colors.neutral['50'],
+ // base-200: A slightly darker background color, used for hovers and so on
+ 'base-200': colors.neutral['100'],
+ // base-300: A shade midway between dark and light
+ 'base-300': colors.neutral['300'],
+ // base-content: The default text color for a regular page (docs and so on)
+ 'base-content': colors.neutral['700'],
+
+ // primary: The main brand color and color of the primary button
+ primary: colors.violet['600'],
+ // primary-focus: The :hover color for the primary button
+ 'primary-focus': colors.violet['500'],
+ // primary-content: The text color on a primary button
+ 'primary-content': colors.neutral['50'],
+
+ // secondary: The link color on default backgrounds (base-100)
+ secondary: colors.sky['600'],
+ // secondary-focus: The :hover link color for default backgrounds. Or:
+ // secondary-focus: An alternative link color for on dark backgrounds
+ 'secondary-focus': colors.sky['500'],
+ // secondary-content: The text color on a secondary button
+ 'secondary-content': colors.neutral['50'],
+
+ // accent: The accent color is used to highlight active things
+ // Should be something is positive/neutral. Avoid red or orange.
+ accent: colors.fuchsia['600'],
+ // accent-focus: The :hover color for the accent button
+ 'accent-focus': colors.fuchsia['500'],
+ // accent-content: The text color for the accent button
+ 'accent-content': colors.neutral['50'],
+
+ // neutral: Used as the background for the footer and navigation on desktop
+ // Should always be dark
+ neutral: colors.neutral['900'],
+ // neutral-focus: Typically a shade lighter than neutral
+ 'neutral-focus': colors.neutral['700'],
+ // neutral-content: The text color on neutral backgrounds
+ 'neutral-content': colors.neutral['50'],
+
+ // info: Used rarely, can be another color best somewhat neutral looking
+ // and should work with the default text color
+ info: colors.indigo['600'],
+ // Text color on the info button
+ '--btn-info-content': colors.neutral[50],
+ // success: Used rarely, but if it is it's in notifications indicating success
+ // Typically some shade of green
+ success: colors.green['600'],
+ // Text color on the success button
+ '--btn-success-content': colors.neutral[50],
+ // warning: We don't do warnings, but this is used for the tabs under code blocks
+ // and a couple of other UI elements.
+ warning: colors.orange['600'],
+ // Text color on the warning button
+ '--btn-warning-content': colors.neutral[50],
+ // error: Used rarely, but if it is it's in notifications indicating success
+ // or the danger button
+ // Typically some shade of red
+ error: colors.red['600'],
+ // Text color on the error button
+ '--btn-error-content': colors.neutral[50],
+
+ /* CODE HIGHLIGHTING COLORS
+ *
+ * These are variables to style highlighted code blocks.
+ *
+ * Specifically this first set applies to the wrapper around
+ * the highlighted code.
+ * The names should (hopefully) speak for themselves
+ */
+ '--code-background-color': colors.neutral['800'],
+ '--code-background-highlight-color': '#313131',
+ '--code-border-color': colors.neutral['900'],
+ '--code-color': colors.neutral['100'],
+ '--code-font-family': `"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace`,
+ '--code-border-radius': '0.5rem',
+ '--code-border-style': 'solid',
+ '--code-border-width': 1,
+ '--code-outer-padding': '0 0.5rem',
+ '--code-inner-padding': '1rem',
+ /*
+ * These variables are used to style the highlighted tokens themselves
+ */
+ '--code-color-keyword': colors.yellow['500'],
+ '--code-font-weight-keyword': 'bold',
+ '--code-color-entity': colors.violet['400'],
+ '--code-font-weight-entity': 'bold',
+ '--code-color-constant': colors.lime['400'],
+ '--code-color-string': colors.sky['400'],
+ '--code-font-style-string': 'italic',
+ '--code-color-variable': colors.indigo['400'],
+ '--code-color-comment': colors.neutral['400'],
+ '--code-color-tag': colors.green['400'],
+ '--code-color-property': colors.yellow['200'],
+ '--code-font-weight-property': 'bold',
+
+ /* VARIOUS
+ *
+ * These are additional variables to control other aspects of the theme
+ */
+ // border-radius for cards and other big elements
+ '--rounded-box': '0.5rem',
+ // border-radius for buttons and similar elements
+ '--rounded-btn': '0.5rem',
+ // border-radius for badges and other small elements
+ '--rounded-badge': '1.9rem',
+ // bounce animation time for button
+ '--animation-btn': '0.25s',
+ // bounce animation time for checkbox, toggle, etc
+ '--animation-input': '.4s',
+ // default card-body padding
+ '--padding-card': '2rem',
+ // default text case for buttons
+ '--btn-text-case': 'uppercase',
+ // default padding for navbar
+ '--navbar-padding': '.5rem',
+ // default border size for button
+ '--border-btn': '1px',
+ // focus ring size for button and inputs
+ '--focus-ring': '2px',
+ // focus ring offset size for button and inputs
+ '--focus-ring-offset': '2px',
+
+ /* FREESEWING PATTERN THEMEING
+ *
+ * These are variables to style FreeSewing SVG output (drafts, examples, and so on)
+ */
+ // Pattern background color
+ '--pattern-bg': colors.neutral['50'],
+ // Color for the main fabric
+ '--pattern-fabric': colors.neutral['700'],
+ // Color for lining fabric
+ '--pattern-lining': colors.emerald['500'],
+ // Color for interfacing
+ '--pattern-interfacing': colors.neutral['400'],
+ // Color for canvas
+ '--pattern-canvas': colors.amber['600'],
+ // Color for various fabric types
+ '--pattern-various': colors.red['500'],
+ // Color for marking things on a pattern
+ '--pattern-mark': colors.blue['500'],
+ // Color to provide contrast on a pattern
+ '--pattern-contrast': colors.pink['500'],
+ // Color for noting things on a pattern
+ '--pattern-note': colors.violet['500'],
+
+ // Color 0 in xray reveals
+ '--pattern-color-0': colors.red['500'],
+ // Color 1 in xray reveals
+ '--pattern-color-1': colors.green['500'],
+ // Color 2 in xray reveals
+ '--pattern-color-2': colors.blue['500'],
+ // Color 3 in xray reveals
+ '--pattern-color-3': colors.yellow['500'],
+ // Color 4 in xray reveals
+ '--pattern-color-4': colors.pink['500'],
+ // Color 5 in xray reveals
+ '--pattern-color-5': colors.violet['500'],
+ // Color 6 in xray reveals
+ '--pattern-color-6': colors.teal['500'],
+ // Color 7 in xray reveals
+ '--pattern-color-7': colors.amber['500'],
+ // Color 8 in xray reveals
+ '--pattern-color-8': colors.fuchsia['500'],
+ // Color 9 in xray reveals
+ '--pattern-color-9': colors.cyan['500'],
+
+ // Pattern xs text size
+ '--pattern-text-xs': '0.2rem',
+ // Pattern sm text size
+ '--pattern-text-sm': '0.3rem',
+ // Pattern default text size
+ '--pattern-text': '0.4rem',
+ // Pattern lg text size
+ '--pattern-text-lg': '0.6rem',
+ // Pattern xl text size
+ '--pattern-text-xl': '0.8rem',
+ // Pattern 2xl text size
+ '--pattern-text-2xl': '1.5rem',
+ // Pattern 3xl text size
+ '--pattern-text-3xl': '2rem',
+ // Pattern 4xl text size
+ '--pattern-text-4xl': '3rem',
+
+ // Pattern overal scale for strokes and text sizes
+ // '--pattern-scale': '1',
+ // Pattern xs stroke width
+ '--pattern-stroke-xs': '0.2px',
+ // Pattern sm stroke width
+ '--pattern-stroke-sm': '0.4px',
+ // Pattern default stroke width
+ '--pattern-stroke': '0.7px',
+ // Pattern lg stroke width
+ '--pattern-stroke-lg': '1.3px',
+ // Pattern xl stroke width
+ '--pattern-stroke-xl': '2px',
+ // Pattern 2xl stroke width
+ '--pattern-stroke-2xl': '4px',
+ // Pattern 3xl stroke width
+ '--pattern-stroke-3xl': '6px',
+ // Pattern 4xl stroke width
+ '--pattern-stroke-4xl': '8px',
+ // Pattern 5xl stroke width
+ '--pattern-stroke-5xl': '12px',
+ // Pattern 6xl stroke width
+ '--pattern-stroke-6xl': '16px',
+ // Pattern 7xl stroke width
+ '--pattern-stroke-7xl': '20px',
+
+ '--pattern-sample-1': colors.red['500'],
+ '--pattern-sample-2': colors.orange['500'],
+ '--pattern-sample-3': colors.yellow['500'],
+ '--pattern-sample-4': colors.lime['500'],
+ '--pattern-sample-5': colors.emerald['500'],
+ '--pattern-sample-6': colors.cyan['500'],
+ '--pattern-sample-7': colors.blue['500'],
+ '--pattern-sample-8': colors.violet['500'],
+ '--pattern-sample-9': colors.fuchsia['500'],
+ '--pattern-sample-10': colors.rose['500'],
+}
diff --git a/yarn.lock b/yarn.lock
index 6d7f586955b..590b8a8fcc3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5940,7 +5940,7 @@ autoprefixer@10.4.19:
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
-autoprefixer@^10.4.14, autoprefixer@^10.4.19:
+autoprefixer@^10.4.14, autoprefixer@^10.4.19, autoprefixer@^10.4.20:
version "10.4.20"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b"
integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==
@@ -15893,7 +15893,7 @@ postcss@^5.0.0, postcss@^5.0.21:
source-map "^0.5.6"
supports-color "^3.2.3"
-postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38:
+postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.47:
version "8.4.47"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365"
integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==
@@ -18025,16 +18025,7 @@ string-argv@~0.3.2:
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
-"string-width-cjs@npm:string-width@^4.2.0":
- version "4.2.3"
- resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -18148,7 +18139,7 @@ stringify-object@^3.3.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -18162,13 +18153,6 @@ strip-ansi@^3.0.0:
dependencies:
ansi-regex "^2.0.0"
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "7.1.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz"
@@ -18458,7 +18442,7 @@ tailwindcss@3.4.3:
resolve "^1.22.2"
sucrase "^3.32.0"
-tailwindcss@^3.4.13:
+tailwindcss@^3.4.14:
version "3.4.14"
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.14.tgz#6dd23a7f54ec197b19159e91e3bb1e55e7aa73ac"
integrity sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==
@@ -19808,7 +19792,7 @@ workerpool@^6.5.1:
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -19826,15 +19810,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^8.0.1, wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"