Community Notes Wall

From the community

Notespeopleleftalongtheway.

Unedited, in their own words, gathered from the places where people talk about their work.

PortraitPhoebe Bridgers@phoebe2h

Asked for a pricing page before lunch. Shipped it after lunch. I did not open Figma once, which felt illegal.

PortraitJustin Vernon@justin5h

The motion is the part I keep noticing. Nothing bounces. Headlines just arrive.

PortraitWeyes Blood@weyes1d

Rebuilt our whole marketing site over a weekend with an agent and this library. Client thought we hired a studio.

PortraitSam Amidon@amidon2d

The changelog section alone saved me a day. Version on the left, changes on the right, done.

PortraitMarissa Nadler@marissa3d

Every section reads the theme, so the site stays one thing as it grows. That is rarer than it sounds.

PortraitAnaïs Mitchell@anais4d

Reduced motion works everywhere. My partner uses it and finally stopped complaining about my sites.

About this block

Community Notes WallPRO

A wall of short community posts in three masonry columns, each a muted card with an avatar, name, handle, a linked timestamp and the note itself, settling in with a small stagger. The header carries a serif headline that settles in word by word and a sliding-marker pill at its right end.

Social59: Community Notes Wall

Short community posts laid out as a masonry wall: avatar, name, handle and a linked timestamp over the note itself, in three columns that fill by height rather than by row.

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

Base UI flavor

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

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

Quick start

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

tsx
import { Social59, social59Demo } from "@/components/beste/block/social59";

export default function Page() {
  return <Social59 {...social59Demo} />;
}

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

tsx
import { Social59 } from "@/components/beste/block/social59";

export default function Page() {
  return (
    <Social59
      eyebrow="From the community"
      heading="Notes people left along the way."
      description="Unedited, in their own words."
      buttons={[{ label: "Join the conversation", href: "/community", tone: "outline" }]}
      notes={[
        {
          name: "Phoebe Bridgers",
          handle: "@phoebe",
          avatar: { src: "/people/one.jpg", alt: "Portrait" },
          text: "Asked for a pricing page before lunch. Shipped it after lunch.",
          time: "2h",
          href: "/posts/1",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringSmall-caps line above the heading
headingstringSection heading, through Text1
descriptionstringParagraph under the heading
buttonsActionButton[][]Pill actions at the right end of the header
notesNote[][]The wall, in order
classNamestringExtra classes for the outer <section>
ts
type Note = {
  name: string;
  handle: string;
  avatar: { src: string; alt: string };
  text: string;
  time: string;
  href: string;
};

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

Behavior notes

  • The wall is CSS multi-column rather than a grid, so cards of different heights pack without gaps and without measuring anything in JavaScript.
  • Each card carries break-inside-avoid, which is what stops a note being split across a column boundary.
  • Because columns fill top to bottom before moving right, the visual order runs down each column rather than across the row. Order your notes with that in mind.
  • The stagger is keyed to index % 3 rather than the raw index, so all three columns begin arriving together instead of the third column lagging by a full sweep.
  • Only the timestamp is a link, which keeps the card readable as a quotation rather than turning the whole thing into a target.
  • Names and handles are truncated rather than wrapped, so a long handle never pushes the timestamp out of the row.
  • Avatars are plain images with no blur-in, matching how the rest of the set treats portraits and thumbnails.

More Social blocks

View all Social
PRO

social53

Contributor Wall

A community credit section opening on three hairline figures, then naming each contributor in a hairline matrix of cards with their practice, what they changed, and how many reports they filed.

FREE

social57

Community Photo Wall

A community gallery laid out as a masonry of customer photographs at mixed heights, each captioned with what is happening and the practice it came from.

PRO

social47

Wall Of Love

A social proof wall with an eyebrow over a hairline rule, a two-column heading, and a masonry of bordered quote cards each with a name and handle.

PRO

social58

Response Wall With Platform Filter

A masonry of what readers wrote back, disagreements included, filtered by platform pills whose counts come from the responses themselves, over a hairline row of accounts to follow.

PRO

social49

Social Post Grid

A social proof grid of six linked post cards, each with an avatar, handle, timestamp, the post itself, and reply, repost, and like counts under a hairline.

PRO

social46

Community Card

Community group card with cover image, privacy status, member/post counts, topic tags, and join button. Perfect for community discovery and group suggestions.