Readable Policy

Privacy

Whatwekeep,andwhatweneverdowithit.

Last revised August 2026

This is written to be read, not scrolled past. If anything here is unclear, ask, and we will explain it in a session or an email.

What we collect

Your name, an email address and, if you give it, a phone number. During the work we keep short session notes, which are yours to read at any time.

We do not record sessions, in the room or online, and the video tool we use stores nothing.

How we use it

To book and remind you of sessions, to write your note the day after, and to reach you if something changes. That is the whole list.

Who sees it

Your practitioner, and nobody else, with the legal exceptions every registered practitioner is bound by. We explain those in plain language before we begin.

We never share anything with employers or insurers. Receipts carry your name and the date, nothing about the content.

How long we keep it

Session notes for seven years after we finish, as the professional body requires, then they are deleted. Contact details go when you ask, or after two years of silence.

Your choices

You can read, correct or ask us to delete anything we hold, at any time, by email or in the room. We will not ask why.

About this block

Readable PolicyPRO

A legal page meant to be read: a serif heading that settles in word by word, a revision date and a plain intro, then a sticky numbered contents list with anchor links beside ruled sections of serif titles and paragraphs, with a pill action for questions.

Legal59: Readable Policy

A policy written to be read: a sticky contents list with numbered links down one side, and the sections themselves ruled and set at a comfortable measure on the other.

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

Base UI flavor

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

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

Quick start

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

tsx
import { Legal59, legal59Demo } from "@/components/beste/block/legal59";

export default function Page() {
  return <Legal59 {...legal59Demo} />;
}

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

tsx
import { Legal59 } from "@/components/beste/block/legal59";

export default function Page() {
  return (
    <Legal59
      eyebrow="Privacy"
      heading="What we keep, and what we never do with it."
      updated="Last revised August 2026"
      intro="This is written to be read, not scrolled past."
      sections={[
        {
          title: "What we collect",
          paragraphs: [
            "Your name, an email address and, if you give it, a phone number.",
            "We do not record sessions, in the room or online.",
          ],
        },
        {
          title: "Your choices",
          paragraphs: ["You can read, correct or ask us to delete anything we hold, at any time."],
        },
      ]}
      button={{ label: "Ask a privacy question", href: "mailto:hello@beste.co", tone: "outline" }}
      labels={{ contents: "On this page" }}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringSmall-caps line above the title
headingstringDocument title, rendered as the page h1 through Text1
updatedstringRevision line under the title
introstringOpening paragraph
sectionsSection[][]The policy itself, in the order given
buttonActionButtonPill action under the contents list
labels{ contents?: string }{}Title over the contents list
classNamestringExtra classes for the outer <section>
ts
type Section = {
  title: string;
  paragraphs: string[];
};

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

Behavior notes

  • Anchors are slugs built from the section titles, so a link to a clause reads #what-we-collect rather than a generated id. A policy is a document people quote to each other, and the URL should survive being pasted into an email.
  • The slug is normalised (accents stripped, non-alphanumerics collapsed to hyphens) and de-duplicated: a repeated title gets a numeric suffix, and an empty one falls back to section-N, so no two anchors can ever collide.
  • Because the anchors come from the titles rather than from a render-time id, they stay stable across reloads and between the server and the client.
  • Every section carries scroll-mt-28, so following a contents link leaves the heading clear of a sticky navbar rather than tucked under it.
  • The contents list is an ol with numbers in tabular-nums, and it is md:sticky md:top-28 so it stays available down a long document; below md it returns to normal flow.
  • Sections are article elements with h2 titles under the page h1, so the document outline matches what the contents list claims.
  • Paragraphs are plain strings, so no markup is rendered inside them; a link inside a clause means extending the block rather than passing HTML.

More Legal blocks

View all Legal
PRO

legal52

Policy Document With Table Of Contents

A readable policy page with a last-updated line, a sticky hairline table of contents that scrolls smoothly to each anchored section, prose sections with accent-bulleted lists, and a soft contact panel at the end.

FREE

legal55

Plain Words Terms Table

A legal section that sets each binding clause against a plain-language reading of it on hairline rows, keyed by clause references, with a precedence disclaimer under the last row.

PRO

legal2

Privacy Policy Accordion

Shows privacy policy content with expandable accordion sections for each topic. Perfect for organizing lengthy privacy policies into scannable segments.

PRO

legal9

Copyright Footer

Shows copyright notice, trademark attributions, and links to legal pages. Perfect for website footers requiring comprehensive legal information.

PRO

legal43

Privacy Policy Page

Full privacy policy content card with sections covering data collection, usage, sharing, retention, rights, and security. Ideal for dedicated privacy pages.

PRO

legal35

Intellectual Property Notice

Displays trademark, patent, and copyright ownership information with registration details and usage restrictions. Suitable for product pages and legal sections.