New build versus older stock
The same budget buys a different decade. Here is how a home here compares with a typical period flat on the market nearby.
New build at Alder Row
Older stock
EPC A, air source heat pumps, 12 kW of solar on the roof and no gas
Typically EPC D or below, with a gas boiler to replace within a few years
10-year structural warranty and a two-year defects period with the developer
None; a survey at your own cost and anything it misses is yours
No onward chain; exchange within 28 days of reserving, complete in spring 2027
Often dependent on a chain of other sales, with no fixed dates
A contribution towards the tax is available on selected homes
Payable in full on completion
New roof, windows, wiring and plumbing, so nothing to budget for in year one
Plan for repairs, redecoration and upgrades from the start
Stamp duty contributions are subject to availability and the terms in the reservation agreement.
Register your interestA two-column comparison table for a development's sales page: criteria rows (energy, warranty, chain, stamp duty, maintenance) with a title on the left and two cells on the right, one for the new build and one for older stock, each with a short note and a small check or dash glyph drawn stroke by stroke as the table scrolls into view. Hairlines separate the rows, column labels sit above, and a note and a register button close the block.
A two-column comparison table for a development's sales page: criteria rows (energy, warranty, chain, stamp duty, maintenance) with a title on the left and two cells on the right, one for the new build and one for older stock, each with a short note and a small check or dash glyph drawn stroke by stroke as the table scrolls into view. Hairlines separate the rows, column labels sit above, and a note and a register button close the block.
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://beste.dev/r/realestate70?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://beste.dev/r-base/realestate70?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/realestate70.tsx plus the Badge24 eyebrow and Button25 pill components and the shadcn/ui button primitive behind the register button.
The installed file exports realestate70Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Realestate70, realestate70Demo } from "@/components/beste/block/realestate70";
export default function Page() {
return <Realestate70 {...realestate70Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Realestate70 } from "@/components/beste/block/realestate70";
export default function Page() {
return (
<Realestate70
eyebrow="New build versus older stock"
heading="What a new home at Alder Row saves you"
description="The same budget buys a different decade."
rows={[
{ title: "Energy", newBuild: true, newBuildNote: "EPC A, heat pumps and solar, no gas", older: false, olderNote: "Typically EPC D or below" },
{ title: "Warranty", newBuild: true, newBuildNote: "10-year structural warranty", older: false, olderNote: "None; a survey at your own cost" },
{ title: "Chain", newBuild: true, newBuildNote: "No onward chain", older: false, olderNote: "Often dependent on other sales" },
]}
labels={{ newBuild: "New build at Alder Row", older: "Older stock", yes: "Yes", no: "No" }}
note="Contributions are subject to availability."
button={{ label: "Register your interest", href: "/register" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Short line above the heading, drawn with a rule in front of it. |
heading | string | – | Section heading. |
description | string | – | Intro paragraph beside the heading on desktop. |
rows | Row[] | [] | One criterion per row with a yes or no and a note for each column. |
labels | Labels | {} | The two column headings and the accessible names of the check and dash glyphs. |
note | string | – | Small print under the table. |
button | { label: string; href: string } | – | Register button beside the note. |
className | string | – | Extra classes merged onto the section. |
type Row = {
title: string;
newBuild: boolean;
newBuildNote: string;
older: boolean;
olderNote: string;
};
type Labels = {
newBuild?: string;
older?: string;
yes?: string;
no?: string;
};stroke-foreground, width 2) for true or a dash (stroke-muted-foreground, width 1.5) for false, drawn from pathLength 0 to 1 over 0.9 seconds.role="img" with labels.yes or labels.no as its accessible name, so screen readers hear the verdict before the note.true cell use the foreground colour, notes in a false cell the muted colour, so the two columns read differently even before the glyphs draw.prefers-reduced-motion glyphs render complete and no row, hairline or label animates.