Back to skills
SkillHub ClubRun DevOpsFull StackDevOps

netlify

Use the Netlify CLI (netlify) to create/link Netlify sites and set up CI/CD (continuous deployment) from GitHub, especially for monorepos (multiple sites in one repo like Hugo sites under sites/<domain>). Use when Avery asks to deploy a new site, connect a repo to Netlify, configure build/publish settings, set environment variables, enable deploy previews, or automate Netlify site creation.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
2,902
Hot score
99
Updated
March 19, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
D52.4

Install command

npx @skill-hub/cli install openclaw-skills-netlify

Repository

openclaw/skills

Skill path: skills/ajmwagar/netlify

Use the Netlify CLI (netlify) to create/link Netlify sites and set up CI/CD (continuous deployment) from GitHub, especially for monorepos (multiple sites in one repo like Hugo sites under sites/<domain>). Use when Avery asks to deploy a new site, connect a repo to Netlify, configure build/publish settings, set environment variables, enable deploy previews, or automate Netlify site creation.

Open repository

Best for

Primary workflow: Run DevOps.

Technical facets: Full Stack, DevOps.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install netlify into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding netlify to shared team environments
  • Use netlify for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: netlify
description: Use the Netlify CLI (netlify) to create/link Netlify sites and set up CI/CD (continuous deployment) from GitHub, especially for monorepos (multiple sites in one repo like Hugo sites under sites/<domain>). Use when Avery asks to deploy a new site, connect a repo to Netlify, configure build/publish settings, set environment variables, enable deploy previews, or automate Netlify site creation.
---

# netlify

Use the `netlify` CLI to create projects (“sites”), link local folders, and configure CI/CD from GitHub.

## Pre-reqs

- `netlify --version`
- Logged in (`netlify login`) **or** provide `--auth $NETLIFY_AUTH_TOKEN`.
- Know the Netlify team/account slug you want to create sites under (optional but recommended).

Helpful checks:

```bash
netlify status
netlify sites:list
```

## Monorepo pattern (recommended)

For **one repo with multiple sites** (e.g. `sites/seattlecustomboatparts.com`, `sites/floridacustomerboatparts.com`):

- Create **one Netlify site per domain**.
- Set the site’s **Base directory** to that subfolder.
- Put a `netlify.toml` *inside that subfolder*.

This keeps each domain’s build config self-contained.

### Hugo subfolder `netlify.toml`

Create `sites/<domain>/netlify.toml`:

```toml
[build]
  command = "hugo --minify"
  publish = "public"

[build.environment]
  HUGO_VERSION = "0.155.1"
```

(Adjust HUGO_VERSION as needed.)

## Fast workflow: create + link + init CI/CD

### 1) Create a Netlify site (project)
Run inside the site folder you want to deploy (base dir):

```bash
cd sites/<domain>
netlify sites:create --name <netlify-site-name> --account-slug <team> --with-ci
```

Notes:
- `--with-ci` starts CI hooks setup.
- If you need manual control, add `--manual`.

### 2) Link local folder to the created site
If not linked already:

```bash
netlify link
```

### 3) Connect to GitHub for continuous deployment

```bash
netlify init
```

This is usually interactive (select Git remote/repo + build settings). For automation we can pre-create `netlify.toml` and then accept defaults.

## Environment variables

Set per-site vars:

```bash
netlify env:set VAR_NAME value
netlify env:list
```

Useful for monorepos:
- `CONTACT_EMAIL` (or other shared config)

## Deploy

Manual deploys (handy for quick preview):

```bash
netlify deploy            # draft deploy
netlify deploy --prod     # production deploy
```

## Included scripts

- `scripts/hugo_netlify_toml.sh`: create a `netlify.toml` in a Hugo subfolder
- `scripts/netlify_monorepo_site.sh`: helper to create/link/init a site for a subfolder

When using scripts, prefer passing `NETLIFY_AUTH_TOKEN` via env for non-interactive runs.


---

## Referenced Files

> The following files are referenced in this skill and included for context.

### scripts/hugo_netlify_toml.sh

```bash
#!/usr/bin/env bash
set -euo pipefail

# Create a netlify.toml for a Hugo site whose base dir is the current folder.
# Usage:
#   ./hugo_netlify_toml.sh [HUGO_VERSION]

HUGO_VERSION="${1:-0.155.1}"

cat > netlify.toml <<EOF
[build]
  command = "hugo --minify"
  publish = "public"

[build.environment]
  HUGO_VERSION = "${HUGO_VERSION}"
EOF

echo "Wrote $(pwd)/netlify.toml (HUGO_VERSION=${HUGO_VERSION})"
```

### scripts/netlify_monorepo_site.sh

```bash
#!/usr/bin/env bash
set -euo pipefail

# Helper for monorepos: create/link/init a Netlify site for a specific subfolder.
#
# Usage:
#   ./netlify_monorepo_site.sh <site_dir> <netlify_site_name> [account_slug]
#
# Examples:
#   ./netlify_monorepo_site.sh sites/seattlecustomboatparts.com seattlecustomboatparts FuturePresentLabs
#
# Notes:
# - Runs netlify sites:create in <site_dir>.
# - Writes a Hugo netlify.toml (hugo --minify, publish public) if none exists.
# - Starts `netlify init` (interactive) to connect GitHub.

SITE_DIR="$1"
SITE_NAME="$2"
ACCOUNT_SLUG="${3:-}"

if [[ ! -d "$SITE_DIR" ]]; then
  echo "site_dir not found: $SITE_DIR" >&2
  exit 1
fi

pushd "$SITE_DIR" >/dev/null

if [[ ! -f netlify.toml ]]; then
  # Default Hugo version; override by editing file later if needed.
  "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/hugo_netlify_toml.sh" "0.155.1"
fi

CREATE_ARGS=(sites:create --name "$SITE_NAME" --with-ci)
if [[ -n "$ACCOUNT_SLUG" ]]; then
  CREATE_ARGS+=(--account-slug "$ACCOUNT_SLUG")
fi

echo "+ netlify ${CREATE_ARGS[*]}"
netlify "${CREATE_ARGS[@]}"

echo "+ netlify link (if prompted)"
netlify link || true

echo "+ netlify init (interactive: connect GitHub + set build settings)"
netlify init

popd >/dev/null

echo "Done. Next: commit netlify.toml (if new) and push; Netlify will deploy from GitHub."
```



---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### _meta.json

```json
{
  "owner": "ajmwagar",
  "slug": "netlify",
  "displayName": "Netlify",
  "latest": {
    "version": "1.0.0",
    "publishedAt": 1770073959682,
    "commit": "https://github.com/clawdbot/skills/commit/f0962402dc26c8cfa760ee732a05d1e5887f71b8"
  },
  "history": []
}

```