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.
A server-error page that gives support something to work with: under the headline sits a bordered incident table of reference, timestamp, service and state, followed by a retry seal button and a status page link.
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.
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
npx shadcn add "https://ui.beste.co/r/error15?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/error15?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/error15.tsx, plus the two design-system primitives it renders through: badge6 for the square eyebrow and button1 for the retry seal button.
The installed file exports error15Demo alongside the block: the exact props behind the preview above. Spread it to get a working error page in one line.
import { Error15, error15Demo } from "@/components/beste/block/error15";
export default function NotFound() {
return <Error15 {...error15Demo} />;
}The detail rows are a plain array, so fill them from your own error boundary:
"use client";
import { Error15 } from "@/components/beste/block/error15";
export default function ErrorPage({ reset }: { reset: () => void }) {
return (
<Error15
label="Server Error"
code="500"
heading="Something broke <strong>on our side</strong>."
description="Your request never reached the finish line and the team has been paged."
labels={{ retry: "Run it again", detailsTitle: "Incident details" }}
details={[
{ title: "Reference", value: "REQ-8F31-C0A2" },
{ title: "Service", value: "Checkout API" },
]}
link={{ label: "Follow the status page", href: "/status" }}
onRetry={reset}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
label | string | – | Eyebrow text rendered through the square-marker badge |
code | string | – | Status code shown after the eyebrow divider |
heading | string | – | Headline HTML, rendered as an h1; <strong> marks the accent clause |
description | string | – | Explanatory paragraph under the headline |
labels | Error15Labels | {} | Retry button text and the caption above the detail table |
details | DetailRow[] | [] | Rows of the incident table |
link | ActionLink | – | Text link beside the retry button |
onRetry | () => void | – | Click handler for the retry button |
className | string | – | Extra classes for the outer <section> |
type Error15Labels = {
retry?: string;
detailsTitle?: string;
};
type DetailRow = {
title: string;
value: string;
};
type ActionLink = {
label: string;
href: string;
};labels.retry is set and does nothing unless onRetry is passed, which makes it a natural fit for a Next.js error.tsx reset() function.dl with dt/dd pairs separated by divide-y, so the label and value relationship survives for screen readers instead of reading as two loose columns.heading is injected with dangerouslySetInnerHTML and accepts inline HTML; <strong> takes the accent colour. Keep the value under your own control, never user input.details is non-empty, so the same block covers errors you cannot describe in detail.error21
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.
error14
Editorial 404 with a square eyebrow and status code over a hairline rule, an oversized accent-highlighted headline, and a ruled index of the sections visitors reach for next.
error17
Planned downtime page with a square eyebrow and status code, a bold accent headline, three bordered cells for the maintenance window, a working notify-me email form with a success state, and a live progress link.
error29
Monochrome 404 led by the status code set as an oversized numeral, with the statement and pill call to action on one side of a hairline rule and the explanation plus display-type links on the other.
error24
Studio 404 that recovers a dead project URL: a square eyebrow and status code over a hairline rule, an accent headline and seal button, then two large project cards with category lines and hover arrow chips.
error25
Too-many-requests page with a square eyebrow and status code, an accent headline, three bordered usage cells, and a live cooldown counter that swaps itself for a retry seal button when it reaches zero.