The honest comparison
We are not the cheapest, the biggest or the fastest. Here is what you get instead.
Altair
A large platform
An us-and-them comparison under a centred serif heading that settles in word by word: an ink column and a muted column list the same points with ringed checks and dashes that arrive one by one, and a sliding-marker pill closes it.
An honest two-column comparison: your side on the ink surface and theirs on a muted panel, each line ticked or dashed, with a pill centred underneath.
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.
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/feature288?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/feature288?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/feature288.tsx plus the button22 sliding-marker pill and the text1 word stagger it uses.
The installed file exports feature288Demo alongside the block: the exact props behind the preview above. Spread it to get a working comparison section in one line.
import { Feature288, feature288Demo } from "@/components/beste/block/feature288";
export default function Page() {
return <Feature288 {...feature288Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Feature288 } from "@/components/beste/block/feature288";
export default function Page() {
return (
<Feature288
eyebrow="The honest comparison"
heading="What a small practice can do that a large one cannot."
description="We are not the cheapest, the biggest or the fastest."
button={{ label: "Decide for yourself, on a call", href: "/call", tone: "dark" }}
us={{
title: "Altair",
points: [
{ label: "The same practitioner every session", included: true },
{ label: "Same-day booking", included: false },
],
}}
them={{
title: "A large platform",
points: [
{ label: "The same practitioner every session", included: false },
{ label: "Same-day booking", included: true },
],
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Small-caps line above the heading |
heading | string | – | Section heading, rendered as an h2 through Text1 |
description | string | – | Intro under the heading |
button | ActionButton | – | Pill centred under the columns |
us | Column | – | Your column, drawn on the ink surface |
them | Column | – | The comparison column, on a muted panel |
className | string | – | Extra classes for the outer <section> |
type Column = {
title: string;
points: { label: string; included: boolean }[];
};
type ActionButton = {
label: string;
href: string;
tone?: "primary" | "light" | "dark" | "outline";
};Minus and the label drops to a muted tone, which states the difference without scoring a point against anyone.included: false is honest in both directions: the demo gives the featured column a false of its own, and the block draws it exactly the same way, so a fair comparison is the default shape rather than an unusual one.background tokens rather than the adaptive ones the muted column uses.0.06s stagger, tight enough that a six-line column reads as one list rather than as six arrivals.feature278
A tabbed comparison under a centred serif heading that settles in word by word: pill tabs switch between approaches, each blurring in a drifting portrait photograph beside a serif title, a description, a ruled fact list and a sliding-marker pill.
feature281
The classic three-column feature: a centred serif heading that settles in word by word and an intro, three columns with a round muted icon, a serif title and a description that arrive in turn, and a sliding-marker pill beneath.
feature295
A centred serif headline that settles in word by word, then two columns: a muted panel listing how an agent improvises today and an ink panel listing what it does once the library is installed. Between them, on a hairline, sits the pill that copies the install command on click.
feature283
A benefits split: a portrait photograph drifting inside its frame on the left, and on the right a serif heading that settles in word by word, an intro, a two-column list of ringed check benefits that arrive one by one, and a sliding-marker pill.