For oversold nights · Beta · Brooklyn & South Florida
When the rooms run out, the handoff begins.
Hotel Walks is the quiet protocol behind a walked guest.
Re-house the booking, negotiate the rate, generate the letter,
and settle the invoice — without the front desk picking up the phone.
);
}
function Stat({ label, value, dark }) {
return (
{value}
{label}
);
}
// The hero visual — two stacked walk-letter cards.
function HeroMark() {
return (
{/* Back letter */}
Walk letter · duplicate
The Hoxton, Williamsburg
Re-housed for the night of May 21. Confirmation enclosed.
260521-K-WYTHE-HOXBK-0027841
{/* Front letter */}
Wythe Hotel
Re-housing for the guest of
Maya Klein
Re-housed atRate
1 Hotel Brooklyn Bridge
$645
Authorized
A. Nair
0027841
);
}
function Problem() {
// Single column template + gap, reused for both the headline row and the timeline row, so everything aligns.
const gridCols = "minmax(0, 1fr) minmax(0, 1fr)";
const gridGap = 64;
return (
The night you don't want
A walked guest is a phone call you wish you didn't have to make.
Oversold by three rooms at 11pm. The duty manager starts calling partners.
First hotel doesn't answer. Second is also sold out. Third offers a rate $200 higher
than what you can paper. The lobby is filling.
Hotel Walks turns the next 45 minutes into 6.
One request, broadcast to ranked partners, on your terms.
Acceptance, confirmation number, letter — done before the guest reaches the desk.
{/* Before / after timelines — same grid template so the columns line up with the headline row above. */}
Before · the phone tree45 min
After · Hotel Walks6 min
);
}
// The "after" version — single broadcast, partners ping back, one accepts.
function IxTimelineAfter({ fullWidth }) {
return (
);
}
function Features() {
const items = [
{
eyebrow: "01 · Partner routing",
title: "Send once. Route by preference or by rate.",
body: "Rank your partners. Or let the platform broadcast to the best available rate first. Custom sub-markets for the comp set you actually use. A blacklist for the ones you don't.",
Ix: IxRouting,
},
{
eyebrow: "02 · Escalation",
title: "Timers that move on without you.",
body: "Set 30 minutes per partner. If the request goes unanswered, the opportunity moves to the next. Toggle Urgent and it blasts to every partner at once — for the nights when 10pm has already passed.",
Ix: IxTimer,
},
{
eyebrow: "03 · Walk letter",
title: "The document, generated and watermarked.",
body: "Three copies — guest, hotel, receiving property. A unique serial number. Reprints are watermarked DUPLICATE. The certificate cannot be redeemed twice.",
Ix: IxLetter,
},
{
eyebrow: "04 · Invoices & credits",
title: "Settled monthly. No phone calls.",
body: "$4 + 10% per side. No-show toggles only on the receiving line, where they belong. A credits ledger for goodwill, applied to open invoices as needed.",
Ix: IxLedger,
},
];
return (
);
}
function Pricing() {
const included = [
"Walk letter generation · serialised, watermarked DUPLICATE on reprint",
"Partner routing · preference or best-rate strategies",
"Escalation timers · auto-handoff between partners",
"Urgent mode · simultaneous broadcast for late-night oversells",
"Invoice generation · monthly settlement, both sides",
"Credits portal · platform-managed goodwill ledger",
"Guest cancellation page · standardised verbiage",
"No-show flag · receiving-side only, waives commission",
];
return (
{/* LEFT — headline + price tag + audience tiers */}
Pricing
Per walk. Per side.
No seats. No contracts. Beta properties in Brooklyn and South Florida ride free through Q3.
{/* Price tag */}
One walk · one side
$4+ 10%
Same fee, both sides of the walk
{/* RIGHT — what's included */}
What's included
The whole protocol, in the price.
{included.map((line, i) => (
{line}
))}
);
}
function Markets() {
return (
Beta markets
Open in two cities — by invitation.
Convention hotels, urban centers, properties near major airports.
The kind of inventory that gets oversold on a Thursday and needs help by Friday morning.
);
}
function MarketCard({ city, sub, hotels }) {
return (
{city}
{sub}
{hotels.map((h, i) => (
{h}
))}
);
}
function Quote() {
return (
From the front desk
"On a sold-out Friday, we used to triage walks for the entire shift.
Now the receiving hotel confirms before the guest finishes their second drink."