Live Social Proof Bar

Booking.com-style social proof ticker with rotating messages: live viewers, recent bookings, scarcity alerts, and location-based activity. Animated transitions, urgency indicators, and trust signals that boost conversion.

PRO

Booking13: Live Social Proof Bar

A Booking.com-style social proof panel that rotates a single animated ticker message (viewers, recent bookings, scarcity, location, or trending, each keyed to its own icon and color) on a timed interval with clickable dot navigation, stacked beneath a live "Live Activity" header and above a column of optional conversion cards: a per-second countdown, a recent-booking toast, a struck-through price comparison, a high-demand strip, an urgency alert, a three-column trust strip, a viewers avatar stack, a reviews summary, and a 24-hour hourly-bookings bar chart with per-bar tooltips.

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.

Installation

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

bash
npx shadcn add "https://ui.beste.co/r/booking13?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/booking13?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/booking13.tsx, plus the avatar, badge, and tooltip shadcn/ui primitives it uses for the viewer/review avatar stacks, the section and price badges, and the hourly heat-chart tooltips.

Quick start

The installed file exports booking13Demo alongside the block: the exact props behind the preview above. Spread it to get a working social proof bar in one line.

tsx
import { Booking13, booking13Demo } from "@/components/beste/block/booking13";

export default function Page() {
  return <Booking13 {...booking13Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Booking13 } from "@/components/beste/block/booking13";

export default function Page() {
  return (
    <Booking13
      badge={{ label: "Social proof", variant: "secondary" }}
      heading="Show <strong>live activity</strong>"
      interval={4000}
      messages={[
        { type: "viewers", text: "{highlight} people are looking right now", highlight: "14" },
        { type: "scarcity", text: "Only {highlight}", highlight: "2 slots left", time: "for your date" },
      ]}
      priceComparisonVariant={{ currency: "$", originalPrice: 180, currentPrice: 129, saveLabel: "Save" }}
      countdownVariant={{ label: "Offer ends in", endsAt: "2026-07-13T09:00:00Z", expiredLabel: "Offer ended" }}
      labels={{ liveActivityLabel: "Live Activity", verifiedDataLabel: "Verified data" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Section eyebrow badge above the heading
headingstringSection heading, supports inline <strong>
descriptionstringOptional subheading paragraph under the heading
messagesProofMessage[][]Rotating ticker messages cycled in the live panel
intervalnumber4000Milliseconds between automatic ticker advances
highDemandVariantHighDemandVariantFlame "in high demand" card
urgencyVariantUrgencyVariantRose urgency strip with a badge
viewersVariantViewersVariantViewers count row with an avatar stack
countdownVariantCountdownVariantPer-second countdown card
recentBookingToastRecentBookingToastSingle "just booked" toast card
priceComparisonVariantPriceComparisonVariantStruck-through price with a computed savings badge
trustStripVariantTrustStripVariantThree-column icon+label trust strip
reviewsVariantReviewsVariantStar rating and review-count summary
heatVariantHeatVariant24-hour hourly-bookings bar chart
labelsBooking13Labels{}Header labels (liveActivityLabel, verifiedDataLabel)
classNamestringExtra classes for the outer <section>
ts
type ProofType = "viewers" | "recent" | "scarcity" | "location" | "trending";

type ProofMessage = {
  type: ProofType;
  text: string; // "{highlight}" placeholder is swapped for the highlight span
  highlight?: string;
  time?: string;
};

type HighDemandVariant = { title: string; description: string };

type UrgencyVariant = { text: string; badgeLabel: string };

type ViewersVariant = {
  countLabel: string;
  suffix: string;
  avatars: string[];
  extraCount: number;
};

type CountdownVariant = {
  label: string;
  endsAt: string; // ISO date string
  expiredLabel: string;
};

type RecentBookingToast = {
  name: string;
  location: string;
  avatar: string;
  actionLabel: string;
  timeAgo: string;
};

type PriceComparisonVariant = {
  currency: string;
  originalPrice: number;
  currentPrice: number;
  saveLabel: string;
};

type TrustSignal = { icon: LucideIcon; label: string };
type TrustStripVariant = { signals: TrustSignal[] };

type ReviewsVariant = {
  rating: number;
  count: number;
  suffixTemplate: string; // "{count}" is replaced with count.toLocaleString()
  avatars: string[];
};

type HeatVariant = {
  label: string;
  subtitle: string;
  hourlyBookings: number[];
  currentHour: number;
  tooltipTemplate: string; // "{hour}" and "{count}" placeholders
};

type Booking13Labels = {
  liveActivityLabel?: string;
  verifiedDataLabel?: string;
};

Behavior notes

More Booking blocks

View all Booking
FREE

booking15

Booking Confirmation Receipt

Post-booking success screen with animated check icon, confirmation number, booking summary (service, date/time, location, total), scannable QR code ticket, action buttons (calendar, receipt, directions), and email confirmation note.

PRO

booking12

Search Bar Hero

Airbnb/Booking.com-style search bar with location autocomplete, date range picker, guest counter dropdown, and search CTA. Responsive — inline on desktop, stacked on mobile. The universal booking hero section.

PRO

booking19

Multi-step Booking Wizard

Stepper-based booking flow with numbered progress dots, animated progress bar, and four steps: service selection, schedule, contact details, and review. Back/Next navigation, per-step validation, and a live summary.

PRO

booking3

Appointment List

Upcoming and past appointments list grouped by date, with service name, provider avatar, time, duration, status badges (confirmed/pending/cancelled), and reschedule/cancel action buttons.

PRO

booking23

Cancellation Flow

Booking cancellation screen with the original booking summary, cancellation reason picker (radio list with optional notes), live refund breakdown based on cancellation policy, confirmation checkbox, and destructive cancel action.

PRO

booking1

Date & Time Picker

Split-panel booking interface with interactive monthly calendar on the left and time slot grid on the right. Features today highlight, disabled dates, selected state, morning/afternoon grouping, and booking summary footer.