PayloadSolutions

Admin

The header widget, the Deploy drawer, the Deployments view, the document pill and the deployments collection.

Everything here is aimed at whoever maintains the site's content, not at developers. The rule of thumb: the pill in the header tells you whether the site is behind; the Deploy button fixes it; the Deployments page tells you what happened. You never need a Vercel account.

All surfaces are built from Payload's own UI components, so they follow the admin theme and its dark mode.

Header widget

Registered in admin.components.actions, top-right on every admin page. One pill per target (a menu beyond two) and a Deploy button. The pill links to the Deployments view and hovers to show the detail (the error message, the live URL). States:

PillMeaning
Up to datenothing pending, last deployment ready
3 changes · deploying in 0:42a window is open; the countdown runs locally between polls
3 changes to deploypending, automatic deploys off
Building… 1:12a deployment is queued or building
Deployedready less than 30 seconds ago
Failed · 3 not deployedthe last build failed; its changes are back in pending
3 pending · waiting for a runnerno tick for 15 minutes
Paused · 12 pendingautomatic deploys paused on this target
Not configuredthe deploy hook env var is unset

Disable it with admin.header: false.

Deploy drawer

Target choice (when several are configured), the first ten pending changes, an optional reason that is stored on the row, and Skip the build cache. While a deployment is in flight the button reads Deploy again and the drawer says Vercel will cancel the running build.

Deployments view

/admin/deployments, linked from the nav under Vercel. Per target, collapsible: the live deployment with Open site and Inspect on Vercel, Pause / Resume auto-deploy, Cancel build and Roll back…; the hourly hook-call count and the last tick with its source; the pending changes table; the history table with cause, user, reason, state, duration, change count (opens a drawer with the items) and a row menu for cancel and roll back. A Setup panel at the bottom says which env vars are set, whether the webhook is enabled and which runners are configured. Move it with admin.view: { path } or disable it with admin.view: false.

Document pill

beforeDocumentControls on every tracked collection and global: Live, Not deployed yet · Deploy (opens the drawer), Deploying… or Deploy failed, one per target when a document deploys to several. Disable with admin.documentPill: false.

What to do when…

You seeIt meansDo
3 changes · deploying in 0:42your edits are counted and will go live by themselvesnothing, or Deploy to skip the wait
Building… 1:12Vercel is buildingwait; Inspect on Vercel shows the log
Failed · 3 not deployedthe build broke; your changes are safe and still pendingread the error in the Deployments view, fix or tell a developer, Deploy again
3 pending · waiting for a runnernobody has checked in a whilepress Deploy now; tell a developer if it keeps happening
Paused · 12 pendingsomeone paused automatic deploys for bulk editingResume when the batch is done
Not configuredthe site's deploy hook is not set on this environmenta developer sets the env var

Deployments collection

vercel-deployments is a normal, read-only collection under the Vercel group: filter by target, cause or state, search by reason or deployment id. Rows are written only by the plugin; deleting needs access.rollback. The vercel-changes and vercel-targets collections are hidden.

On this page