Mortgage partners
Each of these lenders has valued the development, approved the lease and agreed to lend on homes bought off plan. Jon Hopkins can introduce you to an independent broker who compares all of them.
4.79%
Two year fixed
Fixed for2 years
Up to 85% loan to value
4.52%
Five year fixed
Fixed for5 years
No arrangement fee
4.95%
New build tracker
Fixed for2 years
Base rate plus 0.45%
4.88%
Ten year fixed
Fixed for10 years
Portable to a later move
4.69%
First time buyer fixed
Fixed for3 years
Up to 95% loan to value
Representative example
A mortgage of $512,000 payable over 30 years, initially on a fixed rate of 4.52% for 5 years and then on the lender's variable rate of 6.24% for the remaining 25 years, would require 60 monthly payments of $2,600 and 300 monthly payments of $3,077. The total amount payable would be $1,081,099, made up of the loan, interest of $567,100 and a $1,999 arrangement fee. The overall cost for comparison is 5.9% APRC representative. Rates correct on 1 October 2026 and subject to status.
A lender table for a development's sales page: a header with eyebrow, heading and intro, a caption row, then one row per lender (name, product, initial rate as a light figure, fixed term, note) under hairlines that draw in as the rows rise in order; a representative example paragraph and a button to the payment estimator sit under the closing hairline, and the row reflows to two columns on small screens.
A lender table for a development's sales page: a header with eyebrow, heading and intro, a caption row, then one row per lender (name, product, initial rate as a light figure, fixed term, note) under hairlines that draw in as the rows rise in order. A representative example paragraph and a button to the payment estimator sit under the closing hairline, and each row reflows to two columns on small screens.
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/realestate42?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://beste.dev/r-base/realestate42?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/realestate42.tsx plus the badge24 rule eyebrow, the button25 quiet pill used for the estimator button, and the shadcn/ui button primitive behind it.
The installed file exports realestate42Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Realestate42, realestate42Demo } from "@/components/beste/block/realestate42";
export default function Page() {
return <Realestate42 {...realestate42Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Realestate42 } from "@/components/beste/block/realestate42";
export default function Page() {
return (
<Realestate42
eyebrow="Mortgage partners"
heading="Five lenders who already know Alder Row"
description="Each lender has valued the development and agreed to lend on homes bought off plan."
lenders={[
{ name: "Hartwell Bank", product: "Two year fixed", rate: "4.79%", term: "2 years", note: "Up to 85% loan to value" },
{ name: "Riverside Building Society", product: "Five year fixed", rate: "4.52%", term: "5 years", note: "No arrangement fee" },
{ name: "Northgate Mortgages", product: "New build tracker", rate: "4.95%", term: "2 years", note: "Base rate plus 0.45%" },
]}
labels={{ name: "Lender", product: "Product", rate: "Initial rate", term: "Fixed for", note: "Note", example: "Representative example" }}
example="A mortgage of $512,000 payable over 30 years on a fixed rate of 4.52% for 5 years would require 60 monthly payments of $2,600. The overall cost for comparison is 5.9% APRC representative."
button={{ label: "Estimate your monthly payment", href: "/estimator" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Short line above the heading, rendered through badge24. |
heading | string | – | Section heading. |
description | string | – | Intro paragraph beside the heading on wide screens. |
lenders | Lender[] | [] | One row per lender, in the order shown. |
labels | Labels | – | Column captions for the desktop header row, the term prefix on small screens and the title above the example. |
example | string | – | The representative example paragraph under the table. |
button | { label: string; href: string } | – | Button beside the example, typically to the monthly payment estimator. |
className | string | – | Extra classes merged onto the section. |
type Lender = {
name: string;
product: string;
rate: string;
term: string;
note: string;
};
type Labels = {
name?: string;
product?: string;
rate?: string;
term?: string;
note?: string;
example?: string;
};labels.term) and the note; CSS order keeps the desktop column sequence without duplicating markup.prefers-reduced-motion the rows are not offset or faded and the hairlines render complete.