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.
- 10
- Endpoints
- 67
- Items live
- 0
- Auth required
Quick start
Discover
Get the full catalog · names, types, URLs, counts.
curl https://brand.astry.agency/r/index.jsonCopyInstall 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.jsonCopyNote · Run this from any project root. The pack pulls tokens automatically via registryDependencies.
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.mdCopyNote · Restart Claude Code after dropping the file. The skill auto-activates on Astry-related prompts and paths.
Fetch a single asset
Mascots and logos resolve to direct URLs in their meta blocks.
curl -O https://brand.astry.agency/brand/mascot/happy.svgCopyEndpoints
All endpoints return JSON (or markdown for the skill)
Open index.jsonindex
Catalog of every registry item · the entry point.
astry-ui
Full primitive pack · installable via shadcn CLI.
tokens
CSS variables (light + dark) and Tailwind extension.
fonts
Neue Haas Display Pro · 16 .ttf files · next/font + @font-face snippets.
voice
Voice contract · do/don't lists.
accessibility
WCAG 2.2 AA contract · a11y rules.
skill
Drop-in skill file for Claude Code agents.
mascot-<name>
Per-mascot metadata + URL of the SVG. 57 entries.
logo-<name>
Per-logo metadata + asset URL.
team-<slug>
Per-member portrait + name + role + founder flag. 4 entries.
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.
{
"$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"
}
}CopyItem types
astry-ui
Single-file primitive pack with full source inlined. Install via shadcn CLI.
tokens
CSS variables (light + dark) + Tailwind theme.extend mapping.
voice · accessibility · skill
Brand contracts and the agent skill, exposed as meta blocks.
mascot-* · logo-* · angle
Per-asset metadata. Binaries are referenced via meta.url, not inlined.
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.