A full marketing home page for a light editorial SaaS: pill navbar, split hero with a full-bleed image band, an interactive capability selector, outcome metrics, an editorial quote with proof, a closing call to action, and a newsletter footer.
Composed from 7 blocks. Installing this page installs all of them, plus the pieces and primitives they use.
Built in the Sirius collection.
A full marketing home page for a light editorial SaaS: a pill navbar, a split hero with a full-bleed image band, an interactive capability selector, outcome metrics, an editorial quote carrying its own proof, a closing call to action, and a newsletter footer. Seven blocks, one install.
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.
npx shadcn add "https://ui.beste.co/page/r/home1?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the page to components/beste/page/home1.tsx and everything behind it: the seven blocks it composes (navbar71, hero143, feature257, stats66, testimonial41, cta73, footer119), the nine components they use (calendar31, calendar32, chart7, indicator14, progress16, stats15, socialproof24, button21, badge23) and the shadcn/ui input, avatar and button primitives. Seventeen files, the largest closure in the set.
The installed file exports home1Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.
import { Home1, home1Demo } from "@/components/beste/page/home1";
export default function Page() {
return <Home1 {...home1Demo} />;
}Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time.
import { Home1, home1Demo } from "@/components/beste/page/home1";
export default function Page() {
return (
<Home1
{...home1Demo}
stats={{
label: "Outcomes",
heading: "What changes in the first quarter.",
stats: [
{ value: "42%", label: "Fewer missed appointments" },
{ value: "3.1h", label: "Given back per clinician, per week" },
{ value: "94%", label: "Of records complete at sign-off" },
],
}}
/>
);
}Every prop is the full prop object of the block that renders that section, so anything the block accepts is accepted here.
| Prop | Type | Default | Description |
|---|---|---|---|
navbar | ComponentProps<typeof Navbar71> | – | Pill navbar with the primary CTA |
hero | ComponentProps<typeof Hero143> | – | Split hero above a full-bleed image band |
feature | ComponentProps<typeof Feature257> | – | Interactive capability selector |
stats | ComponentProps<typeof Stats66> | – | Outcome metrics |
testimonial | ComponentProps<typeof Testimonial41> | – | Editorial quote with proof beneath it |
cta | ComponentProps<typeof Cta73> | – | Closing call to action |
footer | ComponentProps<typeof Footer119> | – | Newsletter footer |
className | string | – | Extra classes for the page's outer wrapper |
| Section | Block | Notes |
|---|---|---|
| Navbar | navbar71 | Pill shape, one CTA, no dropdowns |
| Hero | hero143 | Oversized display heading, then a photo band below the fold |
| Capabilities | feature257 | Given bg-muted/40 by the page; the selector holds its own state |
| Outcomes | stats66 | Figures as props, so no chart library is involved |
| Quote | testimonial41 | One quote, carrying a proof row rather than a carousel |
| Closing | cta73 | Rendered on the inverted band |
| Footer | footer119 | Newsletter capture, hence the shadcn input dependency |
stats removes that section entirely rather than rendering an empty one.className="bg-muted/40" on the capability selector after spreading feature, so a className passed inside that prop is overridden. Tint that section from the page, not through the prop.dark class, which swaps the theme tokens for that subtree, so the block's own cards, borders and muted labels follow the switch rather than staying light on a dark rectangle.dark rather than a fixed colour, it inverts against whatever theme is active.calendar31, calendar32, chart7, progress16, stats15) rather than pictures of them.navbar71
A light editorial navbar with a lowercase wordmark, soft muted nav pills that reveal hover dropdowns, a solid accent call to action, and a collapsing mobile menu.
hero143
A light editorial hero with an oversized display heading on the left, an offset supporting paragraph and accent button on the right, and a full-bleed image band below.
feature257
An interactive feature where a hairline list of four capabilities swaps the image tile beside it, each one floating a different live asset with its own supporting paragraph.
stats66
A results section that stacks each metric on its own hairline row, pairing an oversized figure with a short label, a sentence of context, and an optional year-over-year delta.
testimonial41
An editorial testimonial with an eyebrow, a large light quote and author on the left, an image tile floating a proof stat on the right, and a centered trust cluster below a hairline rule.