Retired Page Record

(Retired)

We took this page down and meant to.

It described a way of working we no longer stand behind. Rather than quietly edit history, we retired it and wrote something better in its place.

(The record)
Published
March 2023
Retired
June 2026
Reason
Superseded

Retired pages keep their address so old citations do not break.

About this block

Retired Page RecordPRO

Monochrome page for deliberately removed content: a display headline, a ruled record of when it was published, retired and why, then a pill link to the replacement beside an archive link.

Error33: Retired Page Record

The page for content that was removed on purpose: a display headline, a ruled record of when it was published, when it was retired and why, then a pill link to whatever replaced it.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/error33?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/error33?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/error33.tsx, plus the two design-system primitives it renders through: badge7 for the parenthetical eyebrows and button12 for the pill call to action.

Quick start

The installed file exports error33Demo alongside the block: the exact props behind the preview above. Spread it to get a working retirement notice in one line.

tsx
import { Error33, error33Demo } from "@/components/beste/block/error33";

export default function Gone() {
  return <Error33 {...error33Demo} />;
}

Then pass the record for the page that was taken down:

tsx
import { Error33 } from "@/components/beste/block/error33";

export default function Gone() {
  return (
    <Error33
      badge={{ label: "Retired" }}
      heading="We took this page down <strong>and meant to</strong>."
      description="It described a way of working we no longer stand behind."
      labels={{
        recordTitle: "The record",
        note: "Retired pages keep their address so old citations do not break.",
      }}
      rows={[
        { title: "Published", value: "March 2023" },
        { title: "Retired", value: "June 2026" },
        { title: "Reason", value: "Superseded" },
      ]}
      button={{ label: "Read what replaced it", href: "/writing/current" }}
      link={{ label: "Browse the full archive", href: "/archive" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Parenthetical eyebrow above the headline
headingstringHeadline HTML, rendered as an h1; <strong> marks the muted clause
descriptionstringExplanatory paragraph under the headline
labelsError33Labels{}Eyebrow above the record and the closing note
rowsRecordRow[][]The publication record
buttonActionLinkPill link to the replacement page
linkActionLinkText link beside the pill
classNamestringExtra classes for the outer <section>
ts
type Error33Labels = {
  recordTitle?: string;
  note?: string;
};

type RecordRow = {
  title: string;
  value: string;
};

type ActionLink = {
  label: string;
  href: string;
};

Behavior notes

  • The record is a dl laid out as a ruled grid, three columns from the sm breakpoint up, with each pair under its own top border rather than inside a boxed cell.
  • Values sit at display size above their small muted labels, so dates read as the primary information in each cell.
  • The note under the actions is deliberately separate from the description: it explains the policy (the URL stays alive) rather than the specific page, so it can stay constant across every retired page.
  • Serving this block with a 410 Gone status rather than a 404 tells crawlers the removal was intentional, which is the case this layout is written for.
  • Everything is static markup with no client state, so the page renders on the server and works with JavaScript disabled.

More Error blocks

View all Error
PRO

error32

404 With Recent Writing

Monochrome 404 for a renamed article: a display headline and pill call to action above three recent entries, each a full-colour image tile with a plain date line and a bold title.

PRO

error21

Server Error Record

Monochrome server-error page: a parenthetical eyebrow over a display headline, a retry pill beside a status link, and a ruled two-column record of the reference, timestamp, subsystem and state.

PRO

error20

Editorial 404 With Portrait Image

Two-column 404 in a quiet monochrome language: a parenthetical eyebrow, a two-line display headline, a pill call to action and an oversized report-the-link email on the left, a tall captioned photograph on the right.

PRO

error22

Planned Downtime Window

Monochrome maintenance page: a parenthetical eyebrow over a display headline, the downtime window as a ruled three-column record, and a rounded notify-me field with a confirmed state.

PRO

error19

Typographic 404 Index

Monochrome 404 built on oversized display type: a parenthetical eyebrow, a display headline with a muted emphasis clause, a pill call to action, and a ruled index of every section on the site.

PRO

error15

500 Incident Report

Server error page with a square eyebrow and status code over a hairline rule, a bold accent headline, a bordered incident table of reference, timestamp and service rows, and a retry seal button beside a status page link.