Store 404 for dead product URLs: the message and shopping buttons sit above a four-up product grid with square imagery, prices, and optional strikethrough compare-at prices.
A store 404 for dead product URLs: the apology and the shopping actions sit above a four-up grid of square product cards, each with a price and an optional strikethrough compare-at price.
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/error11?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/error11?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/error11.tsx, plus the button shadcn/ui primitive it uses for the shopping actions.
The installed file exports error11Demo alongside the block: the exact props behind the preview above. Spread it to get a working store 404 in one line.
import { Error11, error11Demo } from "@/components/beste/block/error11";
export default function NotFound() {
return <Error11 {...error11Demo} />;
}Then feed it your own recommendations. Prices are plain strings, so currency and formatting stay under your control:
import { ShoppingBag } from "lucide-react";
import { Error11 } from "@/components/beste/block/error11";
export default function NotFound() {
return (
<Error11
code="404"
heading="This product is no longer available"
description="The item you were looking for is sold out or has been retired."
buttons={[{ label: "Continue shopping", href: "/shop", icon: ShoppingBag }]}
productsLabel="Popular right now"
products={[
{
title: "Everyday Canvas Tote",
price: "$48",
href: "/products/canvas-tote",
image: { src: "/images/tote.jpg", alt: "Canvas tote bag" },
},
{
title: "Merino Crew Knit",
price: "$96",
originalPrice: "$120",
href: "/products/merino-crew",
image: { src: "/images/knit.jpg", alt: "Folded knit sweater" },
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
code | string | – | Small uppercase status label above the heading |
heading | string | – | Main page heading, rendered as an h1 |
description | string | – | Explanatory paragraph under the heading |
buttons | ActionButton[] | [] | Centred shopping actions under the description |
productsLabel | string | – | Caption above the product grid |
products | ProductItem[] | [] | Recommended products |
className | string | – | Extra classes for the outer <section> |
type ProductItem = {
title: string;
price: string;
originalPrice?: string;
href: string;
image: { src: string; alt: string };
};
type ActionButton = {
label: string;
href: string;
variant?: "default" | "outline" | "secondary" | "ghost";
icon?: LucideIcon;
};sm and four from lg, which is why the demo ships four products: any multiple of four fills the last row cleanly.object-cover, so portrait and landscape source files crop to the same tile instead of changing the row height.group/error11 group; the tile keeps overflow-hidden so the crop stays inside the border.price and originalPrice are strings, not numbers: no currency formatting or discount maths happens inside the block, and the compare-at price only renders when originalPrice is set.products is non-empty, so the same block covers a plain apology page.error12
Blog 404 that turns a dead post URL into reading: centered messaging above a three-up article grid with cover images, category badges, dates, and read times.
error13
404 page that doubles as a sitemap: left-aligned messaging over four columns of grouped section links, so visitors on a large site can jump straight to the area they wanted.
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.
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.
error4
404 page that recovers the visit with a grid of destination cards, each with an icon, title, description, and hover arrow, followed by a centered row of fallback buttons.
error9
Left-aligned 404 for documentation and marketing sites: the requested path is shown struck through in monospace above a did-you-mean box linking to the closest matching page.