Astryastry
Astry — Registry & APISystem 10

Query the design
system.

Every primitive, mascot, logo, token block, voice rule, and the agent skill itself ship as JSON entries under /r/<name>.json. The registry regenerates on every deploy — never out of sync.

shadcn registry v267 items liveCDN-cached static JSON
10
Endpoints
67
Items live
0
Auth required
01

Quick start

01

Discover

Get the full catalog · names, types, URLs, counts.

curl https://brand.astry.agency/r/index.json
Copy
02

Install the primitive pack

shadcn CLI installs astry-ui.tsx + the tokens dependency into the target project.

npx shadcn@latest add https://brand.astry.agency/r/astry-ui.json
Copy

Note · Run this from any project root. The pack pulls tokens automatically via registryDependencies.

03

Drop the agent skill into Claude Code

Teaches any Claude Code agent how to query the registry and respect brand rules.

mkdir -p ~/.claude/skills/astry-design-system && curl -L https://brand.astry.agency/r/skill.md -o ~/.claude/skills/astry-design-system/SKILL.md
Copy

Note · Restart Claude Code after dropping the file. The skill auto-activates on Astry-related prompts and paths.

04

Fetch a single asset

Mascots and logos resolve to direct URLs in their meta blocks.

curl -O https://brand.astry.agency/brand/mascot/happy.svg
Copy
02

Endpoints

All endpoints return JSON (or markdown for the skill)

Open index.json

index

Catalog of every registry item · the entry point.

/r/index.json

astry-ui

Full primitive pack · installable via shadcn CLI.

/r/astry-ui.json

tokens

CSS variables (light + dark) and Tailwind extension.

/r/tokens.json

fonts

Neue Haas Display Pro · 16 .ttf files · next/font + @font-face snippets.

/r/fonts.json

voice

Voice contract · do/don&apos;t lists.

/r/voice.json

accessibility

WCAG 2.2 AA contract · a11y rules.

/r/accessibility.json

skill

Drop-in skill file for Claude Code agents.

/r/skill.md

mascot-<name>

Per-mascot metadata + URL of the SVG. 57 entries.

/r/mascot-happy.json

logo-<name>

Per-logo metadata + asset URL.

/r/logo-icon-on-blue.json

team-<slug>

Per-member portrait + name + role + founder flag. 4 entries.

/r/team-martin.json
03

Item schema

Every /r/<name>.json follows the shadcn registry-item v2 shape with an Astry-specific meta block. The meta block carries kind, emotion/role, direct SVG URL, React usage snippet, and curl one-liner.

$schemanametypemeta.kindmeta.urlmeta.reactUsage
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "mascot-happy",
  "type": "registry:file",
  "title": "Astry mascot — happy",
  "description": "Default positive state · success · onboarding completion.",
  "homepage": "https://brand.astry.agency",
  "meta": {
    "kind": "mascot",
    "emotion": "happy",
    "category": "mood",
    "available": true,
    "url": "https://brand.astry.agency/brand/mascot/happy.svg",
    "sizeBytes": 576540,
    "reactUsage": "<AstryMascot emotion=\"happy\" size={120} />",
    "directFetch": "curl -O https://brand.astry.agency/brand/mascot/happy.svg"
  }
}
Copy
04

Item types

registry:ui

astry-ui

Single-file primitive pack with full source inlined. Install via shadcn CLI.

registry:style

tokens

CSS variables (light + dark) + Tailwind theme.extend mapping.

registry:lib

voice · accessibility · skill

Brand contracts and the agent skill, exposed as meta blocks.

registry:file

mascot-* · logo-* · angle

Per-asset metadata. Binaries are referenced via meta.url, not inlined.

05

Auto-sync

components/astry-ui.tsx

Primitive pack + every component export is inlined into astry-ui.json on build.

app/globals.css + tailwind.config.js

Token block is extracted and written into tokens.json at deploy time.

data/mascots.json + public/brand/

Each mascot and logo asset generates its own registry:file entry automatically.

Pipeline · source change → push → registry regenerates → all consumers see the update on their next fetch. No versioning, no manual publish step, no drift.