# Banner and 404 page

> For the complete documentation index, see [llms.txt](https://preview.writedocs.io/llms.txt).

An announcement strip above the topbar, and the page shown for an address that doesn't exist.

## Banner

A strip across the top of every page, above the topbar - for a new release, a maintenance window, or docs for a version that isn't out yet.

```json
{
  "banner": {
    "content": "Version 3 is out - see what's new in the changelog.",
    "type": "info",
    "dismissible": true
  }
}
```

**`content`** `string` required

The banner's text. Plain text: Markdown and HTML are shown as written.

**`type`** `"info" | "warning" | "critical"` default: `info`

The banner's color: the brand color for `info`, amber for `warning`, red for `critical`.

**`dismissible`** `boolean` default: `false`

Adds a close button. A reader who closes the banner doesn't see it again in that browser.

Without `banner`, there's no banner.

> A closed banner stays closed in that browser even after you change `content` - readers who closed an earlier banner won't see a new one. Leave `dismissible` off for a message everyone must see.

## 404 page

The page shown when an address doesn't exist. `notFound` sets its title and text:

```json
{
  "notFound": {
    "title": "This page doesn't exist",
    "description": "It may have moved. Try the search, or start from the home page."
  }
}
```

**`title`** `string` default: `Page not found`

The page's heading.

**`description`** `string` default: `The page you're looking for doesn't exist or has moved.`

The text under the heading.

The page keeps the site's topbar and footer, so readers can search or pick a section from there.

When a page moves, add a [redirect](https://preview.writedocs.io/docs/configuration/redirects/) from its old address - that's better than any 404 page. [`writedocs broken-links`](https://preview.writedocs.io/docs/cli/#writedocs-broken-links) finds links in your own pages that would lead to one.