diff --git a/AGENTS.md b/AGENTS.md
index e3abe57..a74e295 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -42,8 +42,8 @@ Each version has its own spec file (listed above) and its own reference section
## Legacy identifiers
-Next Commerce was formerly 29 Next. Hostnames like `{store}.29next.store`, `accounts.29next.com`, and headers like `X-29next-API-Version` and `X-29Next-Signature` are current, valid technical identifiers and must be used exactly as written.
+Next Commerce was formerly 29 Next, and the platform still carries that name in its core technical identifiers: store and account hostnames (`{store}.29next.store`, `accounts.29next.com`), the `X-29next-API-Version` and `X-29Next-Signature` headers, and the API key namespace. These are current, in use on every store, and not scheduled to change. Use them exactly as written.
## Corrections
-Outside pull requests to this repository are not accepted. The support route for reporting documentation errors is being confirmed and will be linked here.
+Outside pull requests to this repository are not accepted. There is no public correction route yet; report documentation errors through your existing Next Commerce support contact.
diff --git a/app/llms.txt/route.ts b/app/llms.txt/route.ts
index 16172b5..2d3a031 100644
--- a/app/llms.txt/route.ts
+++ b/app/llms.txt/route.ts
@@ -77,7 +77,7 @@ function header(): string {
'',
'## Legacy identifiers',
'',
- 'Next Commerce was formerly 29 Next. Hostnames like `{store}.29next.store`, `accounts.29next.com`, and headers like `X-29next-API-Version` and `X-29Next-Signature` are current, valid technical identifiers and must be used exactly as written.',
+ 'Next Commerce was formerly 29 Next, and the platform still carries that name in its core technical identifiers: store and account hostnames (`{store}.29next.store`, `accounts.29next.com`), the `X-29next-API-Version` and `X-29Next-Signature` headers, and the API key namespace. These are current, in use on every store, and not scheduled to change. Use them exactly as written.',
'',
].join('\n');
}
diff --git a/content/docs/admin-api/index.mdx b/content/docs/admin-api/index.mdx
index 588a6cc..b8508ce 100644
--- a/content/docs/admin-api/index.mdx
+++ b/content/docs/admin-api/index.mdx
@@ -20,6 +20,10 @@ Before using the Admin API, you'll need to create a store and an OAuth app for A
https://{store}.29next.store/api/admin/
```
+
+Next Commerce was formerly 29 Next, and the platform still carries that name in its core technical identifiers: store and account hostnames (`{store}.29next.store`, `accounts.29next.com`), the `X-29next-API-Version` and `X-29Next-Signature` headers, and the API key namespace. These are current, in use on every store, and not scheduled to change. Use them exactly as written.
+
+
**Use your OAuth app access token in the request headers to access the API.**
```shell title="Example Request"
diff --git a/content/docs/campaigns/index.mdx b/content/docs/campaigns/index.mdx
index 71371e9..9e5f3ee 100644
--- a/content/docs/campaigns/index.mdx
+++ b/content/docs/campaigns/index.mdx
@@ -6,6 +6,8 @@ import { CampaignFunnelFlow, CampaignAnatomy } from '@/components/campaign-conce
Campaigns are fully custom checkout funnels — landing, checkout, upsell, and receipt pages — backed by a CORS-enabled API that handles products, pricing, payments, and order creation. **No backend integration required.**
+Orders created through a campaign are regular store orders. They appear in the store's Orders list alongside storefront orders and are available through the Admin API and webhooks like any other order.
+
The fastest path from zero to a working funnel on localhost is the **[Campaign Page Kit](https://github.com/NextCommerceCo/campaign-page-kit)**: a CLI that scaffolds an SDK-ready starter template, runs a hot-reload dev server, and outputs a static site you can deploy to Netlify, Cloudflare Pages, Vercel, or any static host.
## Quick Start
diff --git a/content/docs/index.mdx b/content/docs/index.mdx
index ea7c534..551baf0 100644
--- a/content/docs/index.mdx
+++ b/content/docs/index.mdx
@@ -97,7 +97,7 @@ Use themes to control the appearance and behavior of your storefront — product
**Get started**
1. Install [Theme Kit](/docs/storefront/themes/theme-kit), the CLI for local theme development
-2. Start from [Intro Bootstrap](https://github.com/NextCommerceCo/intro-bootstrap) starter theme
+2. Start from [Spark](https://github.com/NextCommerceCo/spark), the Tailwind CSS starter theme
3. Run `ntk pull` to sync files locally, make changes, then `ntk push` to deploy
**Resources**
diff --git a/content/docs/storefront/themes/index.mdx b/content/docs/storefront/themes/index.mdx
index df40d4f..977175a 100644
--- a/content/docs/storefront/themes/index.mdx
+++ b/content/docs/storefront/themes/index.mdx
@@ -6,7 +6,7 @@ sidebar_position: 0
import { Callout } from 'fumadocs-ui/components/callout';
-We highly recommend using Theme Kit to manage your store theme for the best developer experience from your favorite IDE. [Install Theme Kit](https://github.com/NextCommerceCo/theme-kit)
+We highly recommend using Theme Kit to manage your store theme for the best developer experience from your favorite IDE. [Read the Theme Kit guide](/docs/storefront/themes/theme-kit) — installation, configuration, and every `ntk` command.
import IntroTheme from '../../../_snippets/_view-intro-theme.mdx';
@@ -141,5 +141,5 @@ Sass files are not automatically compiled in the platform and must be compiled t
-See Theme Kit installation instructions on [Github](https://github.com/NextCommerceCo/theme-kit).
-
\ No newline at end of file
+See the [Theme Kit guide](/docs/storefront/themes/theme-kit) for installation, configuration, and commands. Source: [GitHub](https://github.com/NextCommerceCo/theme-kit).
+
diff --git a/content/docs/storefront/themes/theme-kit.mdx b/content/docs/storefront/themes/theme-kit.mdx
index a0a7e9e..36e38a5 100644
--- a/content/docs/storefront/themes/theme-kit.mdx
+++ b/content/docs/storefront/themes/theme-kit.mdx
@@ -78,7 +78,7 @@ Work from a copy of an existing theme rather than an empty directory — a compl
ntk checkout --theme_id= --apikey="" --store="https://{store}.29next.store"
```
-**Add a new theme to the store** — start from a copy of an existing theme, such as the [Intro Bootstrap](https://github.com/NextCommerceCo/intro-bootstrap) starter theme, then register it as a new theme with `ntk init` and upload the files with `ntk push`:
+**Add a new theme to the store** — start from a copy of an existing theme, such as the [Spark](https://github.com/NextCommerceCo/spark) starter theme, then register it as a new theme with `ntk init` and upload the files with `ntk push`:
```bash
ntk init --name="" --apikey="" --store="https://{store}.29next.store"
@@ -134,7 +134,7 @@ ntk checkout --theme_id= --apikey="" --store="https://{store}.29nex
`ntk init` registers your current directory as a new theme on the store and writes a `config.yml`. It does not download or scaffold any files — run it inside an existing theme codebase, then `ntk push` to upload the files.
-Building a theme from an empty directory is not advised. Start from a copy of a complete theme — the [Intro Bootstrap](https://github.com/NextCommerceCo/intro-bootstrap) starter theme or an existing theme from your store via [`ntk checkout`](#work-on-an-existing-theme).
+Building a theme from an empty directory is not advised. Start from a copy of a complete theme — the [Spark](https://github.com/NextCommerceCo/spark) starter theme (Tailwind CSS), the older Bootstrap-based [Intro Bootstrap](https://github.com/NextCommerceCo/intro-bootstrap) or an existing theme from your store via [`ntk checkout`](#work-on-an-existing-theme).
```bash
diff --git a/content/docs/webhooks/index.mdx b/content/docs/webhooks/index.mdx
index dc30142..598632d 100644
--- a/content/docs/webhooks/index.mdx
+++ b/content/docs/webhooks/index.mdx
@@ -78,6 +78,10 @@ The `subscription` object on a `transaction.created` webhook links the charge to
There is no renewal-specific event. A renewal charge arrives as `transaction.created` with `billing_cycle` of 1 or higher on that `subscription` object; the initial charge has `billing_cycle` 0.
+
+Chargebacks and pre-chargeback alerts both arrive as `dispute.created` and `dispute.updated`; the dispute's `type` field says which it is. See the [Disputes guide](https://docs.nextcommerce.com/docs/features/payments/disputes-guide).
+
+
### Webhook Data Structure
Webhook payloads follow the same structure as Admin API data serializers, which makes them predictable. In general, the data in a webhook payload matches the data you would get by retrieving the same resource through the API. You can set up test webhooks and view the webhook logs in the dashboard to help build and verify your receiver.
diff --git a/netlify.toml b/netlify.toml
index 9174358..2ec9ff5 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -357,3 +357,11 @@
from = "/docs/campaigns/guides/*"
to = "https://cart-sdk.nextcommerce.com/latest/"
status = 301
+
+# Old Redoc-style reference URL still linked from the platform changelog.
+# Exact path only (Netlify also matches the trailing-slash form); the deep
+# /docs/admin-api/reference// pages are real and must not be caught.
+[[redirects]]
+ from = "/docs/admin-api/reference"
+ to = "/docs/admin-api"
+ status = 301
diff --git a/public/_redirects b/public/_redirects
index b2c1cae..697a3c7 100644
--- a/public/_redirects
+++ b/public/_redirects
@@ -76,3 +76,7 @@
/docs/campaigns/utilities/* https://cart-sdk.nextcommerce.com/latest/ 301
/docs/campaigns/guides https://cart-sdk.nextcommerce.com/latest/ 301
/docs/campaigns/guides/* https://cart-sdk.nextcommerce.com/latest/ 301
+# Old Redoc-style reference URL still linked from the platform changelog (with and without
+# trailing slash). Exact-path rules on purpose: /docs/admin-api/reference// are real pages.
+/docs/admin-api/reference /docs/admin-api 301
+/docs/admin-api/reference/ /docs/admin-api 301