---
title: Registry
description: Copy model-free DNS presentation components from the DomainKit registry and compose them with your own data, transport, and product state.
sidebar:
  label: Overview
---

The DomainKit registry contains small, source-distributed React components for DNS interfaces. Add
the files to your application with the shadcn CLI, then own their markup, styling, and behavior.

These components are intentionally model-free. They accept plain props and do not import
`domainkit`, Effect, Atom, transports, provider clients, or persistence. Use the packaged
`@domainkit/react` flows when you need connection, planning, authorization, apply, verification, or
receipt-bound cleanup.

The registry follows shadcn conventions: your project needs an initialized `components.json`, each
item is installed into the configured `ui` alias, and required shadcn primitives are declared as
`registryDependencies`. The CLI installs those primitives automatically. Components accept native
element props and `className`, use `data-slot` attributes, and inherit the standard shadcn color,
radius, and focus-ring tokens from your application.

## Registry items

<CardGroup cols={2}>
  <Card title="DNS table" href="/components/registry/dns-table">
    Render DNS records in a compact, responsive table.
  </Card>
  <Card title="DNS operation" href="/components/registry/dns-operation">
    Show one planned create, no-op, or conflict operation.
  </Card>
  <Card title="DNS status" href="/components/registry/dns-status">
    Style a visible status label with an explicit tone.
  </Card>
  <Card title="Provider mark" href="/components/registry/provider-mark">
    Give a provider logo or mark an accessible visual wrapper.
  </Card>
  <Card title="Copy value" href="/components/registry/copy-value">
    Add a copy action to a DNS value without a DomainKit dependency.
  </Card>
  <Card title="Async state" href="/components/registry/async-state">
    Present loading, empty, and error states with simple children.
  </Card>
</CardGroup>

## Install from the registry

Install one item or several items directly into your application:

```package-install
npx shadcn@latest add https://domain-kit.dev/r/dns-table.json https://domain-kit.dev/r/dns-operation.json
```

The source is the contract. After copying an item, change its classes, icons, and composition to
fit your design system. Keep host-owned credential custody, authenticated routes, persistence, and
readiness policy outside these presentation components.
