Components

This is an internal playground for some React components that are used throughout the site.

If you're looking for components to be used in articles (like blog posts and docs), check out the MDX components handbook page.

Open graph image templates

hello

<OSButton />

Common usage

Hover styles comparison

Hover shows border
Hover shows background color
Active with opacity
Active with full color

Variants with all sizes

VariantDescriptionXSSMMDLGXL
defaultTransparent background with subtle hover effects (formerly ghost)
primaryOrange background with black text, primary action button
secondaryWhite background with primary text, secondary action button
underlineAlways shows underline, removes on hover
underlineOnHoverTransparent background with underline on hover

Icon-only buttons

VariantDescriptionXSSMMDLGXL
defaultIcon-only button with default styling
primaryIcon-only button with primary styling
secondaryIcon-only button with secondary styling

States with all sizes

StateDescriptionXSSMMDLGXL
normalNormal interactive state
disabledDisabled state with reduced opacity and no interactions
activeActive state (for default variant)

Features with all sizes

FeatureDescriptionXSSMMDLGXL
icon (left)Icon positioned to the left of text
icon (right)Icon positioned to the right of text
labelAdditional label text with secondary color
chipChip badge with border (optional color)
tooltipInfo icon with tooltip on hover
zoomHoverZoom effect on hover
hover="background"Background color on hover instead of border

Full width examples

VariantXSSMMDLGXL
default
primary
secondary

Complex examples with all sizes

Default with icon & label

XS:
SM:
MD:
LG:
XL:

Primary with icon & label

XS:
SM:
MD:
LG:
XL:

Secondary with right icon

XS:
SM:
MD:
LG:
XL:

Default with tooltip

XS:
SM:
MD:
LG:
XL:

Button with chip & icon

XS:
SM:
MD:
LG:
XL:

Disabled primary

XS:
SM:
MD:
LG:
XL:

Additional features

Alignment

Custom Styling

Special Props

Inline Usage

This is some text with an and an in the middle.

You can also use

inline.

Form elements

<OSInput />

Basic examples

Sizes

Label directions

Width options

Features

Enter your primary email address

Error states

Please enter a valid email address

This field is required

Complex examples

We'll use this for account notifications

<OSTextarea />

Basic examples

Features

Please be as detailed as possible

Error states

Message must be at least 10 characters

<Fieldset />

Group related form fields

Personal Information
Address

Complete form examples

Two-column form

Tell us what you're looking for

Inline form with consistent label widths

Data scheme variations

Primary scheme inputs

These inputs use dataScheme="primary" on a secondary background

Secondary scheme inputs

These inputs use dataScheme="secondary" on a primary background

<OSSelect />

Basic examples

Sizes

Label directions

Features

Choose the appropriate status for this item

Searchable selects

Error states

Please select a valid option

Complex examples

This will determine who has access to this project

<Combobox />

A multi-select combobox component with search, keyboard navigation, and optional creation of new options. Perfect for tags, categories, and multi-value selections.

Basic example (with creation enabled)

Type to search or create new tags

Without creation (predefined options only)

Choose from existing team members

Error state

At least one category is required

Please select at least one category

Key features

  • Multi-select with visual chips for selected items
  • Search/filter options by typing
  • Keyboard navigation (Arrow Up/Down, Enter, Escape, Backspace)
  • Optional creation of new options (allowCreate prop)
  • Click to select/deselect items
  • Remove items by clicking X or using Backspace
  • Checkmark indicator for selected items in dropdown
  • Auto-scrolling for keyboard navigation

<Checkbox />

A checkbox component built with Radix UI. Supports controlled and uncontrolled states, disabled state, and custom styling.

Basic examples

Data scheme variations

Primary scheme
Secondary scheme

Form integration

Select your preferences

Key features

  • Built on Radix UI for accessibility
  • Controlled and uncontrolled modes
  • Disabled state support
  • Data scheme variations (primary/secondary)
  • Required field support
  • Custom styling via className prop
  • Keyboard accessible
  • ARIA compliant

<TeamMemberMultiSelect />

A complex multi-select component for choosing team members from small teams. Features collapsible team sections, search functionality, avatar display, and deduplication across teams.

Basic example

Select team members for this project

Error state

At least one team member is required

Please select at least one team member

Key features

  • Multi-select with avatar chips for selected members
  • "All members" checkbox to select/deselect everyone
  • Collapsible team sections using Radix UI Accordion
  • Team-level checkboxes to select/deselect all team members
  • Search functionality filtering team and member names
  • Auto-expand teams with matching members when searching
  • Member deduplication by squeakId across multiple teams
  • Avatar display with colored backgrounds (like TeamMember component)
  • Selection count badges on team headers (e.g., "2/3 selected")
  • Tooltip on chips showing team affiliations
  • Keyboard navigation (Escape to close, Backspace to remove last)
  • Receives data as props for flexibility

Data structure

The component receives teams with nested profiles and returns selected members with full metadata:

// Teams prop structure
teams: Array<{
  id: string
  name: string
  slug: string
  miniCrest?: { data: { attributes: { url: string } } }
  profiles: {
    data: Array<{
      id: string
      attributes: {
        squeakId: string
        firstName: string
        lastName: string
        companyRole?: string
        avatar?: { data: { attributes: { url: string } } }
        color?: string
      }
    }>
  }
}>

// Value/onChange structure
SelectedMember: {
  squeakId: string
  firstName: string
  lastName: string
  avatar?: { url: string }
  color?: string
  teams: string[]  // Team names
}

Competitor feature matrix

Comprehensive view of all product and platform features across competitors. This serves as internal tooling for QA, content creation, and identifying gaps in competitive data.

Error Tracking Features

Sentry
compare
LogRocket
compare
Bugsnag
Datadog
error_alerts
exception_capture
issue_management
error_grouping
stack_tracing
Performance monitoring
Trace requests or queries and profile functions
Source map support
Support for source maps in minified code
Integration with product analytics
Connect error data with product usage analytics
Integration with session replay
Link errors to session recordings for context
Integration with A/B experiments
Connect error tracking with experimentation platform

Session Replay Features

FullStory
compare
Hotjar
compare
LogRocket
compare
Clarity
Matomo
compare
AI summaries
AI-generated summaries of session recordings
Beta
single_page_app
iOS recordings
Record sessions from iOS mobile apps
Android recordings
Record sessions from Android mobile apps
React Native recordings
Record sessions from React Native apps
Flutter recordings
Record sessions from Flutter apps
Identity detection
Identify users in recordings for debugging and support
Target recordings by URL
Start or filter recordings based on specific URLs or URL patterns
Filter recordings by user or event
Find specific recordings by filtering for users or events
Export recordings to JSON
Export important recording data for offline storage
Recording retention policy
Configure how long recordings are stored before deletion
Up to 3 months
1 month
30 days
3 months

Platform Features

Sentry
compare
LogRocket
compare
Bugsnag
GlitchTip
SigNoz
Open source
Audit code, contribute to roadmap, and build integrations
Eventually
Self-host option
Deploy and run on your own infrastructure
Usage-based pricing
Only pay for what you use
Transparent pricing
Clear, upfront pricing with no hidden fees
Free tier
Generous free tier available
Limited
CI/CD integrations
Connect with development tools and workflows
Limited
Partial
built_in_analytics

useCustomers

All customer logos with normalized sizing

4DayWeek
4DayWeek
11x
11x
Adauris
Adauris
Airbus
Height: 9
Featured
AssemblyAI
Height: 10
Brainboard
Height: 14
carVertical
Height: 10
Contra
Height: 8
Creatify
Creatify
Height: 12
ElevenLabs
Height: 8
Featured
Exa
Height: 10
Featured
Gankster
Height: 10
Great Expectations
Great Expectations
Grantable
Height: 6
Croissant
Croissant
Height: 6
Groove
Groove
Hasura
Height: 10
Featured
HeadshotPro
Height: 10
Heygen
Height: 8
Featured
HostAI
Height: 12
Lovable
Height: 8
Featured
Juicebox
Height: 10
Mention Me
Height: 10
Mintlify
Height: 10
Mistral AI
Height: 12
Featured
Netdata
Height: 8
Octomind
Octomind
OpenSauced
Height: 10
Phantom
Height: 10
Pry
Height: 8
PostHog
Height: 10
Featured
Purple Wave
Height: 24
Qred
Height: 8
Raycast
Height: 12
Featured
RayFit
RayFit
Height: 6
Rebtel
Height: 10
ResearchGate
Height: 8
Featured
Significa
Height: 12
Speakeasy
Height: 6
SquadS Ventures
Height: 12
Supabase
Height: 10
Featured
StartEngine
Height: 14
Featured
Trust
Height: 10
Featured
Vendasta
Height: 10
Webshare
Height: 10
Witty Works
Height: 10
Y Combinator
Height: 10
Featured
Zealot
Zealot

Questions about this page? or post a community question.