Latest and Earlier

Changelog

Thelatest,theneverythingbeforeit.

One release gets the room. The rest are a glance away.

A curved city beach along a bay

Latest release2.44 September 2026

Motion that respects the reader

Every entrance and parallax now checks the reduced motion setting before it moves. Photographs wait for their file before they blur in. Nothing else about the pages changes.

  • Reduced motion support across all sections
  • Photographs blur in only once the file has loaded
  • Sticky headers no longer overlap the first heading on short screens
  • Footer newsletter form accepts pasted addresses
About this block

Latest and EarlierPRO

The newest release gets a full row: a photograph that blurs in and drifts on scroll beside its version, date, serif title, paragraph, plain change list and a sliding-marker pill. Earlier releases follow as compact ruled rows (version, date, title, one line) that link out and tint on hover.

Changelog35: Latest and Earlier

One release gets the room and the rest are a glance away: a photographed lead entry above a run of compact linked 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/changelog35?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/changelog35.tsx plus the button22 sliding-marker pill and the text1 word stagger it uses.

Quick start

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

tsx
import { Changelog35, changelog35Demo } from "@/components/beste/block/changelog35";

export default function Page() {
  return <Changelog35 {...changelog35Demo} />;
}

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

tsx
import { Changelog35 } from "@/components/beste/block/changelog35";

export default function Page() {
  return (
    <Changelog35
      eyebrow="Changelog"
      heading="The latest, then everything before it."
      description="One release gets the room. The rest are a glance away."
      buttons={[{ label: "Subscribe", href: "/updates", tone: "outline" }]}
      latestLabel="Latest release"
      latest={{
        version: "2.4",
        date: "4 September 2026",
        title: "Motion that respects the reader",
        description: "Every entrance now checks the reduced motion setting.",
        changes: ["Reduced motion support across all sections"],
        image: { src: "/photos/bay.jpg", alt: "A small rocky bay below a wooded hillside" },
        button: { label: "Read the notes", href: "/changelog/2-4" },
      }}
      earlierLabel="Earlier"
      earlier={[
        { version: "2.3", date: "21 Aug 2026", title: "Yearly pricing", summary: "Monthly and yearly switch.", href: "/changelog/2-3" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringSmall-caps line above the heading
headingstringPage heading, rendered as the h1 through Text1
descriptionstringParagraph under the heading
buttonsActionButton[][]Pill actions at the right end of the header
latestLabelstringWord marking the lead entry, before its version
latestLatestThe featured release, with its photograph
earlierLabelstringSmall-caps label above the compact list
earlierEarlier[][]Older releases as linked rows
classNamestringExtra classes for the outer <section>
ts
type Latest = {
  version: string;
  date: string;
  title: string;
  description: string;
  changes: string[];
  image: { src: string; alt: string };
  button?: { label: string; href: string };
};

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

type ActionButton = {
  label: string;
  href: string;
  tone?: "primary" | "light" | "dark" | "outline";
};

Behavior notes

  • The lead entry and the list are separate props with different shapes on purpose: the lead carries a picture and a full change list, the rows carry one summary line and a link.
  • The photograph's scroll target is its own frame rather than the section, so the drift is measured against the element in view.
  • It fades up only once the file has loaded, checked with an onLoad handler and an img.complete test for cached images.
  • Compact rows are whole-row links that tint to the muted surface on hover, so the target is the row and not just the title.
  • Rows stagger 0.05 seconds apart, quick enough that a list of twenty still finishes arriving as you reach it.
  • The lead entry is an article while the rows are a list, which is the right outline for a page where one release is the story.
  • Everything except the picture is optional, so dropping latest leaves a plain linked index.

More Changelog blocks

View all Changelog
PRO

changelog34

Drawn Line Changelog

Releases as points on a vertical line that draws itself in ink as the page scrolls: version and date on the left of the line, a serif title, a paragraph and a plain dotted list of changes on the right. Serif headline settles in word by word with a sliding-marker pill at the header's right end.

FREE

changelog28

Full Release Notes By Month

A complete changelog grouped by month, each version on a hairline row beside its entries, every line tagged added, changed, fixed, or removed with its own tone.

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

changelog32

Ruled Changelog

A changelog page section with a serif headline that settles in word by word and a sliding-marker pill at the right end of the header, then a ruled list of releases. Each release keeps its version number and date pinned on the left while the title, summary and a plain dotted list of changes settle in on the right.

PRO

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.

PRO

changelog26

Version Rail Release Timeline

A release feed with a sticky version rail that filters the list, and hairline entries carrying a version and date line, tone-coded tags, an accent-bulleted highlight list, and an optional release note link.