A calm server-error page with a monospace code, an oversized light heading, recovery actions, an image tile floating a live uptime strip, and a hairline table carrying the incident reference.
A calm server-error page with a monospace code, an oversized light heading, recovery actions, an image tile floating a live uptime strip and a hairline table carrying the incident reference.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/error35"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/error35"This installs the block to components/beste/block/error35.tsx, the indicator14 uptime piece it floats on the tile (installed to components/beste/piece/indicator14.tsx), and the button21 component it uses for the actions.
The installed file exports error35Demo alongside the block: the exact props behind the preview above. Spread it to get a working error page in one line.
import { Error35, error35Demo } from "@/components/beste/block/error35";
export default function ErrorPage() {
return <Error35 {...error35Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Error35 } from "@/components/beste/block/error35";
import { Indicator14 } from "@/components/beste/piece/indicator14";
export default function ErrorPage() {
return (
<Error35
code="Error 500"
heading="That one is ours, not yours"
description="Nothing you were working on has been lost, and the request has already been reported."
buttons={[
{ label: "Try again", href: "/" },
{ label: "Back to the workspace", href: "/app" },
]}
references={[
{ label: "Reference", value: "SIR-9F4C-2201" },
{ label: "Time", value: "14 May 2026, 09:41 UK" },
]}
media={<Indicator14 title="Booking service" uptime="99.98%" range="Last 45 days" />}
image={{ src: "/backdrops/blue.jpg", alt: "Soft blue gradient backdrop" }}
footnote="Quote the reference above if you write to us."
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
code | string | – | Small status line above the heading |
heading | string | – | Error heading, rendered as the page h1 |
description | string | – | Centered supporting paragraph, capped at max-w-xl |
buttons | ActionLink[] | [] | Recovery actions, first solid and the rest outlined |
references | Reference[] | [] | Incident details in a hairline table |
media | ReactNode | – | Live asset on the tile, indicator14 in the demo |
image | { src: string; alt: string } | – | Backdrop behind the media tile |
footnote | string | – | Small line under the reference table |
className | string | – | Extra classes for the outer section |
type ActionLink = {
label: string;
href: string;
};
type Reference = {
label: string;
value: string;
};font-mono, which is deliberate: an incident id is a token to be copied character by character, and a fixed-width face makes it readable over the phone.dl, and it renders whatever strings you pass. Wiring it to a real error boundary means passing the caught request id through as references.primary, later ones are outline.max-w-3xl cap while the copy above sits at max-w-2xl, which keeps the page centered without three different widths competing.border-t with last:border-b, closing the table at the bottom.error15
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.
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.
error5
Card-style 404 panel that echoes the requested URL in monospace, pairs a browser-history back button with link actions, and closes with a support and status link row.
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.