crispmeasured from Attio

Companies page

A full-page clone of Attio's Companies record view, composed entirely from crisp.

Everything crisp is built toward, on one screen: the App Shell (collapsible + resizable sidebar) wrapping the real Sidebar, a top bar + view bar (view switcher, View settings, Import/Export, New), and the Records Table with 12 columns — no mock-ups, every piece is the shipped component. Best viewed full-screen (the button).

8 records
google.com
182,000Mountain View, CA
Sundar Pichaitwitter.com/google29,800,000linkedin.com/company/google
307,000,000,000
stripe.com
8,000San Francisco, CA
Patrick Collisontwitter.com/stripe1,200,000linkedin.com/company/stripe
16,000,000,000
figma.com
1,300San Francisco, CA
Dylan Fieldtwitter.com/figma540,000linkedin.com/company/figma
600,000,000
notion.so
800San Francisco, CA
Ivan Zhaotwitter.com/notionhq480,000linkedin.com/company/notionhq
400,000,000
linear.app
60Remote
Karri Saarinentwitter.com/linear120,000linkedin.com/company/linear
30,000,000
vercel.com
500San Francisco, CA
Guillermo Rauchtwitter.com/vercel310,000linkedin.com/company/vercel
100,000,000
openai.com
3,500San Francisco, CA
Sam Altmantwitter.com/openai4,200,000linkedin.com/company/openai
3,400,000,000
anthropic.com
1,000San Francisco, CA
Dario Amodeitwitter.com/anthropicai520,000linkedin.com/company/anthropic
1,000,000,000

It's all live. Drag the sidebar's right edge to resize it, and press the panel button in the sidebar header to collapse it (a button on the left brings it back). Use the button in the header to open it full screen (Esc to exit). In the table: sort or filter from the toolbar, double-click a cell to edit, drag a column edge to resize, select rows for the bulk bar (Add to list pins them ★, More → Export / Delete), and click a summary-footer cell to pick its aggregation. In the sidebar: K opens the command palette.

Composition

import { Sidebar } from "crisp";
import { RecordsTable } from "crisp";

export function CompaniesPage() {
  return (
    <div style={{ display: "flex", height: "100vh" }}>
      <Sidebar />
      <main style={{ flex: 1, display: "flex", flexDirection: "column" }}>
        <PageHeader title="Companies" view="All Companies" />
        <div style={{ flex: 1, minHeight: 0, padding: 16 }}>
          <RecordsTable />
        </div>
      </main>
    </div>
  );
}

The header and tabs above are plain markup for the demo; the two heavy pieces — the sidebar and the grid — are crisp components with all of their behavior intact.

On this page