Changelog feed

A React block (a whole screen) in Beamline's Blocks category.

An in-app What's new page: release notes grouped by month with tags, versions, pictures and details, a tag filter with counts, entries since your last visit marked as new, and a copyable link to each.

Use it for

  • A What's new page or panel inside a product: what shipped, when, and what changed for the reader.

Not for

Anatomy

  • title, description, new count, Mark all as read
  • tag filter (chips with counts, Clear)
  • month heading (sticky)
  • entry: date and version, tags, New badge, title (anchor), summary, picture or live preview, details, author, copy link
  • "Before your last visit" rule
  • load older
  • empty filter result

States

  • loading (skeleton entries)
  • new since last visit (badge and rule)
  • all read
  • filtered by one or more tags
  • filter with no entries (clear the filter)
  • loading older entries
  • nothing older
  • error loading older (retry)

Keyboard

  • Tab: filter chips, then each entry's picture and copy-link button, then Load older
  • arrow keys move between filter chips; Space or Enter toggles one
  • Escape closes an opened picture and focus returns to it

Motion

Entries arrive with a short fade when the filter changes; pictures grow into the viewer and back; nothing moves on its own.

Props

PropTypeDefaultDescription
entries (required)ChangelogEntry[]—id (also the link anchor), date, version, title, summary, body, tags, media ({ src, alt, width, height } or a live preview node), author.
tagsChangelogTag[]—Labels and tones for tag ids. Defaults to the ids found in entries.
filter / defaultFilter / onFilterChangestring[]—Selected tag ids; empty shows everything.
lastVisitstring | number | Date | null—Entries after it are marked New, with a rule where the older ones start.
onMarkAllRead() => void—Shows Mark all as read while anything is new; usually you store the new lastVisit.
permalink(entry) => string—The address Copy link copies. Default: this page's address with #id.
onLoadMore / hasMore() => Promise<void> / boolean—Load older entries; a rejection offers a retry.
loadingboolean—Skeleton entries in place of the list.
title / descriptionReactNode"What's new"
locale / timeZonestring—
classNamestring—
classNamesChangelogFeedClassNames—
style / refCSSProperties / Ref<HTMLDivElement>—

Built from

Dependencies

lucide-react, motion

Import

import { ChangelogFeed } from "@/blocks/changelog-feed/changelog-feed";

Get it

Changelog feed is part of Beamline: 190 React components and screens your coding agent (Claude Code, Codex, Cursor or any MCP client) installs into your app through Beamline's MCP server, as a ready-built package or as plain React source you can change. $49 one payment (regular $200), no subscription, a year of updates, one licence for your whole team. Get Beamline · Connect your agent

More in Blocks

  • AI agent workspace: Threads, a conversation with streamed reasoning, cited answers and a plan that waits for approval then runs step by step, and an artifacts panel with…
  • Analytics dashboard: A SaaS overview in the app shell, fed by your metrics hook: range and segment filters drive KPIs, new and expansion revenue, channels, plan mix, uptime…
  • Auth page: The whole sign-in / sign-up route: product mark, a quiet dotted field with a light that follows the mouse, an optional notice, the SignIn and SignupForm…
  • CRM pipeline: A pipeline screen: KPIs and stage mix derived from a virtualised deals grid with inline edit, bulk moves and delete with undo; a row opens the deal in a…
  • Empty states: The five empty moments every product has, written and wired: first use with a first step, no results with the filters to clear, an error with retry and a…
  • Page header: The top of a record or project page: breadcrumb, title with status, description and meta, a primary action with secondary actions that fold into a More…
  • Plan comparison: Plans side by side against every feature: prices that roll between monthly and yearly, the current and recommended plan marked, a header that stays in…
  • Settings: Profile and workspace settings with one draft and real save handler. Personal mode omits workspace data; optional profile fields share validation…
  • Sign in: The sign-in card: email and password, a one-time code or a magic link, passkeys and single sign-on, with validation, progress, errors and a signed-in…
  • Sign up form: The account creation card: single sign-on, name, work email and a password with strength and Caps Lock hints, terms consent, inline validation, your…
  • Step form: The finished frame for any multi-step form you compose — onboarding, intake brief, questionnaire, booking, application: a wide card with progress, the…
  • Trading terminal: A perpetuals terminal on your feed and your account: ticker tape, market header with funding, candles, book / trades / depth, order ticket, account…
  • Voice agent: A voice agent in three layouts on one session: a support panel that mixes typing and talking, a call screen with the agent's orb and one call button, and…