When it comes to deploying your plugin there are several platforms to choose from. Each platform has its unique features and benefits, so the choice depends on you.
In this guide you will found some options for static sites that have free plans.
## 3.1. Building your project
The building may vary between frameworks but if you had previously configured your scripts in <codeclass="language-bash">package.json</code>, <codeclass="language-bash">npm run build</code> should work.
The resulting build should be located somewhere in the <codeclass="language-bash">dist/</code> folder, maybe somewhere else if you have configured so.
Be wary that some framework's builders can add additional folders like <codeclass="language-bash">apps/project-name/</code>, <codeclass="language-bash">project-name/</code> or <codeclass="language-bash">browser/</code>.
You need a Netlify account if you don't already have one. You can <atarget="_blank"href="https://app.netlify.com/signup">sign up</a> with Github, GItlab, BItbucket or via email and password.
### CORS issues
To avoid these issues you can add a <codeclass="language-bash">_headers</code> file to your plugin. Place it in the <codeclass="language-bash">public/</code> folder or alongside the main files.
```js
/*
Access-Control-Allow-Origin: *
```
### Connect to Git
Netlify allows you to import an existing project from GitHub, GitLab, Bitbucket or Azure DevOps.
<videotitle="Deploy your plugin with Netlify using GitHub"muted=""playsinline=""controls=""width="100%"poster="/img/plugins/deploy-netlify-repo.png"height="auto">
1. Go to <atarget="_blank"href="https://app.netlify.com/start">Start</a> and connect with your repository. Allow Netlify to be installed in either all your projects or just the selected ones.
Netlify offers a simple drag and drop method. Check <atarget="_blank"href="https://app.netlify.com/drop">Netlify Drop</a>.
#### How to deploy
<figure>
<videotitle="Deploy your plugin with Netlify using drag and drop"muted=""playsinline=""controls=""width="100%"poster="/img/plugins/deploy-netlify-dragdrop.png"height="auto">
2. Go to <atarget="_blank"href="https://app.netlify.com/drop">Netlify Drop</a>.
3. Drag and drop the build folder into Netlify Sites. Dropping the whole dist may not work, you should drop the folder where the main files are located.
4. Done!
## 3.3. Cloudflare
### Create an account
You need a Cloudflare account if you don't already have one. You can <atarget="_blank"href="https://dash.cloudflare.com/sign-up">sign up</a> via email and password.
### CORS issues
To avoid these issues you can add a <codeclass="language-bash">_headers</code> file to your plugin. Place it in the <codeclass="language-bash">public/</code> folder or alongside the main files.
```js
/*
Access-Control-Allow-Origin: *
```
### Connect to Git
Cloudflare allows you to import an existing project from GitHub or GitLab.
<videotitle="Deploy your plugin with Cloudflare using GitHub"muted=""playsinline=""controls=""width="100%"poster="/img/plugins/deploy-cloudflare-repo.png"height="auto">
<videotitle="Deploy your plugin with Cloudflare using drag and drop"muted=""playsinline=""controls=""width="100%"poster="/img/plugins/deploy-netlify-dragdrop.png"height="auto">
To avoid these issues you can add a <codeclass="language-bash">CORS</code> file to your plugin. Place it in the <codeclass="language-bash">public/</code> folder or alongside the main files.
The <codeclass="language-bash">CORS</code> can contain a <codeclass="language-bash">*</code> for any domain, or a list of specific domains.
To make your finished plugin available in our catalog, submit in on the [plugin submission page](https://penpot.app/penpothub/plugins/create-plugin). Once it becomes available any Penpot user will be able to install and use it.