# Choose how to publish

> Pick the way approved RootSmith pages reach your website. Use the Next.js SDK, a static site deploy hook, a signed webhook, or MDX export.

Source: https://docs.rootsmith.io/docs/publishing.md

RootSmith publishes pages on your own domain, at the path saved with each
page. Choose one method per site in **Sites** → **Publishing**.

| Your site                                        | Use                                                      | Live after publish               |
| ------------------------------------------------ | -------------------------------------------------------- | -------------------------------- |
| Next.js 15 or 16 App Router with a server        | [Next.js SDK](https://docs.rootsmith.io/docs/publishing/nextjs.md)                   | Seconds                          |
| Static export that reads RootSmith at build time | [Static site deploy hook](https://docs.rootsmith.io/docs/publishing/static-sites.md) | After one site build             |
| Any other stack with a server you control        | [Webhook](https://docs.rootsmith.io/docs/publishing/webhooks.md)                     | When your code saves the page    |
| A Git-based site or manual publishing            | [MDX export](https://docs.rootsmith.io/docs/publishing/mdx-export.md)                | When you add the file and deploy |

Pick the SDK when you can. It's the only method where RootSmith can refresh
your page, roll back a failed update, and redirect merged pages for you.

## How the settings fit together

- **Delivery endpoint**: the SDK's route on your site, such as
  `/api/rootsmith`. When it's set, RootSmith publishes only through the
  SDK. If the SDK isn't connected, publishing stops until you fix it.
- **Without an SDK connection**: used only when the delivery endpoint is
  empty. Choose **Static site deploy hook**, **Webhook**, **MDX export**, or
  **Don't publish**.
- **Approval mode**: **Approval required** or **Automatic**.
- **Default schedule**: **Publish now** or **Scheduled**.

## Confirming a page is live

RootSmith marks a page published when it finds that exact version on your
site. It loads `https://<your domain><page path>` and looks for an element
with `data-rootsmith-content` set to the page ID and
`data-rootsmith-version` set to the version. The SDK and MDX export add it
for you. A webhook receiver must render it, or you confirm the page by hand.

If the first check fails, RootSmith checks again every five minutes for 24
hours.
