Latest Release Spotlight

Latest release

v3.4.0 · 14 May 2026

One waiting list across every site

The largest change we have shipped since billing. Three practices ran it for eleven weeks and two of them made us change how it behaves before it went out.

  • Capacity is now modelled at group level while rooms and hours stay per site
  • Cancellations are offered to the whole waiting list in order, not per clinic
  • Members can set a site preference that is respected before distance is
  • Group reporting rolls up without needing an export
Soft blue gradient backdrop

Since the release

14 – 31 May

Refilled

84%

+46

Median fill

11m

-2h

Sites

341

+12

About this block

Latest Release SpotlightPRO

A changelog that gives the newest version a split of its own, pairing a checked highlight list and two actions with an image tile floating live post-release figures, over the earlier versions as hairline rows.

Changelog27: Latest Release Spotlight

A changelog that gives the newest version a split of its own, pairing a checked highlight list and two actions with an image tile floating live post-release figures, over the earlier versions as hairline rows.

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.

Upgrade Now

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/changelog27?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/changelog27.tsx, the dashboard33 metrics piece it floats on the tile (installed to components/beste/piece/dashboard33.tsx), and the badge23 and button21 components it uses for the eyebrow and the actions.

Quick start

The installed file exports changelog27Demo alongside the block: the exact props behind the preview above. Spread it to get a working changelog in one line.

tsx
import { Changelog27, changelog27Demo } from "@/components/beste/block/changelog27";

export default function ChangelogPage() {
  return <Changelog27 {...changelog27Demo} />;
}

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

tsx
import { Changelog27 } from "@/components/beste/block/changelog27";
import { Dashboard33 } from "@/components/beste/piece/dashboard33";

export default function ChangelogPage() {
  return (
    <Changelog27
      badge={{ label: "Latest release" }}
      version="v3.4.0"
      date="14 May 2026"
      heading="One waiting list across every site"
      description="The largest change we have shipped since billing."
      highlights={[
        "Capacity is now modelled at group level while rooms stay per site",
        "Cancellations are offered to the whole waiting list in order",
      ]}
      media={
        <Dashboard33
          title="Since the release"
          range="14 to 31 May"
          items={[{ label: "Refilled", value: "84%", delta: "+46", direction: "up" }]}
        />
      }
      image={{ src: "/backdrops/blue.jpg", alt: "Soft blue gradient backdrop" }}
      buttons={[
        { label: "Read the release note", href: "/changelog/3-4-0" },
        { label: "See what changed for you", href: "/changelog/diff" },
      ]}
      previousTitle="Before this"
      previous={[
        {
          version: "v3.3.2",
          date: "02 May 2026",
          title: "Faster invoice export for large groups",
          summary: "Month-end exports went from ninety seconds to under four.",
          href: "/changelog/3-3-2",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow at the top left, rendered through Badge23
versionstringVersion token, paired with the date on the right
datestringRelease date, shown beside the version
headingstringWhat the release is, in plain language
descriptionstringSupporting paragraph, capped at max-w-md
highlightsstring[][]Checked list of what changed
mediaReactNodeLive asset on the tile, dashboard33 in the demo
image{ src: string; alt: string }Backdrop behind the media tile
buttonsActionLink[][]Actions, first solid and the rest outlined
previousTitlestringHeading above the earlier releases
previousPrevious[][]Earlier versions as linked hairline rows
classNamestringExtra classes for the outer section
ts
type ActionLink = {
  label: string;
  href: string;
};

type Previous = {
  version: string;
  date: string;
  title: string;
  summary: string;
  href: string;
};

Behavior notes

  • version and date are joined into one line with a middle dot at the top right of the header, opposite the eyebrow. Both are plain strings and neither is parsed or formatted, so the block stays free of server and client locale differences.
  • The heading is the change in plain language rather than the version number, which is what makes the spotlight readable to someone who does not follow releases.
  • Earlier releases are whole Link elements laid out as a three-track grid from md: version, date, then title and summary. Below md they stack in that same order.
  • Those rows carry md:px-4 alongside the hover fill, so the highlight extends slightly past the text on wider screens.
  • Version tokens use tabular-nums so the column stays aligned across different version lengths.
  • The spotlight row is lg:items-center, so the tile stays centered against a copy column whose height varies with the number of highlights.
  • Button tones are positional and not overridable: the first is primary, later ones are outline.

More Changelog blocks

View all Changelog
PRO

changelog8

Featured Release Changelog

Latest release highlighted in a featured card with full details, followed by a compact list of previous releases.

PRO

changelog24

Callout Highlight Changelog

Release feed with prominent callout blocks highlighting the most impactful change per release.

PRO

changelog18

Full-Width Showcase Changelog

Full-width hero images with rich release content below. Marketing-focused changelog for major product announcements.

PRO

changelog10

Dense Inline Release Log

Compact single-line release rows with color-coded type dots, version tags, and a legend footer. Optimized for dense, scannable API changelogs.

PRO

changelog2

Split Milestone Changelog

Split-layout changelog with milestone context, highlights, metrics, and action buttons.

PRO

changelog16

Visual Release Notes

Alternating split layout with feature screenshots on one side and release content on the other. Ideal for marketing-focused product update pages.