Founders' Letter

A letter

Why we built this instead of something easier

In 2020 the two of us spent a fortnight working reception at a practice in Bristol. We were bad at it. The receptionist, who had done the job for nine years, was not, and she was still losing an hour every morning to software that had been sold to somebody who had never sat where she sat.

That is the whole thesis. Clinical software is usually bought by one group of people and used by another, and the gap between those two groups is where the frustration lives. We decided the only defensible way to build was to keep the people who write the code close enough to the people doing the work that the gap never opens.

In practice that means a few unglamorous commitments. Everyone here takes support shifts, including us. Every practice speaks to an engineer before they buy, not a salesperson. And when something is our fault we write it down publicly, with the date on it, because the alternative is a company that learns to hide.

We are not going to tell you this is the last software your practice will ever need. We will tell you that if it stops being worth it, you can take everything you have and leave inside a month, and that nobody here will make that difficult.

The gap between who buys clinical software and who uses it is where the frustration lives.

Portrait of Elena Rourke

Elena Rourke

Co-founder

Portrait of Priya Nandan

Priya Nandan

Co-founder

Two colleagues talking in a clinic corridor
Bristol, the fortnight that started it
A clinician reviewing notes at a desk
Support shift, six years later
About this block

Founders' LetterPRO

A long-form company letter set in a wide reading column with an accent-ruled pull quote and signed off by avatar bylines, beside a narrower column of captioned portraits.

About71: Founders' Letter

A long-form company letter set in a wide reading column with an accent-ruled pull quote and signed off by avatar bylines, beside a narrower column of captioned portraits.

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

Base UI flavor

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

This installs the block to components/beste/block/about71.tsx plus the badge23 component it uses for the eyebrow.

Quick start

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

tsx
import { About71, about71Demo } from "@/components/beste/block/about71";

export default function AboutPage() {
  return <About71 {...about71Demo} />;
}

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

tsx
import { About71 } from "@/components/beste/block/about71";

export default function AboutPage() {
  return (
    <About71
      badge={{ label: "A letter" }}
      heading="Why we built this instead of something easier"
      paragraphs={[
        "In 2020 the two of us spent a fortnight working reception at a practice in Bristol. We were bad at it.",
        "Clinical software is usually bought by one group of people and used by another, and the gap between them is where the frustration lives.",
      ]}
      pullQuote="The gap between who buys clinical software and who uses it is where the frustration lives."
      signatories={[
        {
          name: "Elena Rourke",
          role: "Co-founder",
          avatar: { src: "/people/elena.jpg", alt: "Portrait of Elena Rourke" },
        },
        {
          name: "Priya Nandan",
          role: "Co-founder",
          avatar: { src: "/people/priya.jpg", alt: "Portrait of Priya Nandan" },
        },
      ]}
      portraits={[
        {
          src: "/clinic/corridor.jpg",
          alt: "Two colleagues in a clinic corridor",
          caption: "Bristol, the fortnight that started it",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the heading, rendered through Badge23
headingstringLetter heading, capped at max-w-2xl
paragraphsstring[][]Body paragraphs in reading order
pullQuotestringAccent-ruled quote after the body
signatoriesSignatory[][]Avatar bylines signing the letter off
portraitsPortrait[][]Captioned photographs in the side column
classNamestringExtra classes for the outer section
ts
type Signatory = {
  name: string;
  role: string;
  avatar: { src: string; alt: string };
};

type Portrait = {
  src: string;
  alt: string;
  caption: string;
};

Behavior notes

  • Body paragraphs are plain strings, one per array entry, rendered as separate p elements. There is no markdown or HTML parsing, so links or emphasis inside a paragraph need the block edited rather than passed in.
  • Paragraphs use mb-6 with last:mb-0, so the spacing lives between them and the block never ends on a stray margin.
  • The reading column is capped at max-w-2xl even though its grid track is wider. That is deliberate: long-form text needs a measure, and the extra track width becomes breathing room rather than longer lines.
  • The pull quote is ruled with border-l-2 border-primary, which is the one place the accent appears in this block. It is a p, not a blockquote, since it repeats a line from the letter rather than quoting an outside source.
  • The portrait column is pushed down with lg:pt-24 so the first photograph starts level with the body text rather than with the eyebrow.
  • Portraits are real figure and figcaption pairs, so the captions stay associated with their images for assistive technology.
  • Two hairlines structure the block: one opens the body and one opens the signature row, both on their own containers, so an empty signatories array removes its rule cleanly.

More About blocks

View all About
PRO

about79

Founder Letter

An about section written as a letter: a portrait drifting inside its frame on the left, and on the right a serif opening line that settles in word by word, three paragraphs, a ruled signature with the founder's name and role, and a sliding-marker pill.

PRO

about67

Founder Statement

Founder statement with a large blockquote followed by an avatar, name, role, and a monospace signature line.

PRO

about15

Letter from the CEO

Editorial-style open letter with paragraphs, a personal signature with avatar, and a call-to-action. Great for founder stories.

PRO

about45

Founder Quote About

A founder-led pull-quote about with a portrait, signature and a facts strip.

PRO

about4

Founder Quote & Team

Founder blockquote with avatar, followed by a horizontal team member row. Ideal for leadership pages and company introductions.

PRO

about49

Founder Statement About

About built around a dark founder portrait card with a pull-quote, signature, and supporting stats.