---
title: Step 5 · Deploy on Netlify
status: current
phase: 7
order: 7
---

# Step 5 · Deploy on Netlify

Pluma doesn't build your site: it **notifies** whoever builds it. When you publish something, Pluma calls a Netlify *build hook* and Netlify rebuilds the site with the new content.

## 1. Create the build hook in Netlify

In Netlify, on your site: **Site configuration → Build & deploy → Build hooks → Add build hook**. Give it a name ("Pluma") and the branch (`main`). Netlify gives you a URL like:

```
https://api.netlify.com/build_hooks/65f0c1…
```

## 2. Paste it into Pluma

In your Pluma site: **Deploy → New deploy**, choose **Netlify** and paste the URL. (Your agent can do it through the API or MCP, see [Webhooks](../api/webhooks.md).)

Pluma sends a test ping when you save and shows you what Netlify answered. If it answered OK, **step 5 of the checklist is done**.

## 3. The site's environment variables

In Netlify: **Site configuration → Environment variables**, add:

| Variable | Value |
| --- | --- |
| `PLUMA_URL` | `https://pluma.so` |
| `PLUMA_SPACE` | Your site's slug, for example `acton-estero` |
| `PLUMA_DELIVERY_KEY` | A `delivery` key (Pluma → Keys) |

Your site uses them to read the content during the build.

## How it behaves

- **One build per batch:** if you publish 20 entries in a row, you get **a single** build, 30 seconds after the last one.
- **Retries:** if Netlify doesn't answer OK, Pluma retries up to 5 times, waiting longer each time.
- In **Deploy** you see every ping: when, what Netlify answered and how long it took. The site's home page shows the status of the latest one.

## See drafts before publishing

For a preview with drafts, use the [Preview API](../api/preview.md) in a Netlify *deploy preview*: in the `deploy-preview` context, set `PLUMA_DELIVERY_KEY` to a `preview` key instead of a `delivery` one. That deploy shows the latest version of each entry; production still shows only what is published.
