---
title: Setting up the FreeSewing development environment
sidebar_position: 40
---

FreeSewing provides the studio, a development environment to help you design and develop patterns.

There are two ways to run this studio:

- [**Repository studio**](#monorepo-studio): Use this if you intend to
  contribute your work to FreeSewing
- [**Stand-alone studio**](#stand-alone-studio): Use this if you want
  to do your own thing, and not contribute to FreeSewing

## Repository studio

:::note
This is the recommended way for (aspiring) FreeSewing contributors
:::

### TL;DR

```bash
git clone https://codeberg.org/freesewing/freesewing.git
cd freesewing
npm run kickstart
```

:::tip
Even better: [clone your own
fork](https://codeberg.org/freesewing/freesewing/fork)

```bash
git clone https://codeberg.org/your-username/freesewing.git
cd freesewing
npm run kickstart
```

:::

This sets up the monorepo. If you would like to create a new design or plugin, run the
following command:

```sh
npm run add
```

### Step by step

:::note
These docs assume you have git installed.
But if you're running Linux, you have git, right?
:::

#### Fork our repository

You'll want to fork our repository. This way you have your own copy where you can make
all the changes you want. To do so, visit https://codeberg.org/freesewing/freesewing/fork

#### Clone the forked repository

Now that you have your very own fork, it's time to clone it locally.

```bash
git clone <url to your fork>
```

Make sure to use the URL to your own fork, typically `https://codeberg.org/your-username/freesewing.git` but
obviously with your real username rather than `your-username`.

#### Install dependencies

Enter the directory that was created, and run the `npm run kickstart` command:

```bash
cd freesewing
npm run kickstart
```

Now you're ready to [start the development environment](/tutorials/getting-started-linux/dev-start).

### Creating a new design or plugin

If you would like to create a new design or plugin, run the following command:

```sh
npm run add
```

After you've answered [some questions](#questions), it create a new
sub-folder for your design in the `designs` folder.

Now you're ready to [start the development
environment](/tutorials/getting-started-linux/dev-start).

## Stand-alone development

With Node.js installed, all you need to do to setup the stand-alone development environment is run this command:

```bash
npx @freesewing/studio
```

After you enter the folder name to create, it will take a while to set
everything up. When it's done, you will have a new folder with the development
environment inside.

### Creating a new design

If you would like to create a new design, enter the folder that was just created and run the following command:

```sh
npm run add
```

After you've answered [some questions](#questions), it create a new
sub-folder for your design in the `designs` folder.

Now you're ready to [start the development
environment](/tutorials/getting-started-linux/dev-start).

:::note

### Questions

#### What design name to use

Please stick to a single word name using \[a-z] to avoid problems.

#### What template to use

Use `From scratch` unless you want to start from our of our blocks:

- Use `Extend Brian` to start from [Brian](https://freesewing.eu/designs/brian)
- Use `Extend Bent` to start from [Bent](https://freesewing.eu/designs/bent)
- Use `Extend Bella` to start from [Bella](https://freesewing.eu/designs/bella)
- Use `Extend Breanna` to start from [Breanna](https://freesewing.eu/designs/breanna)
- Use `Extend Titan` to start from [Titan](https://freesewing.eu/designs/titan)

:::
