The code control layer that design has been missing

Catch design drift
before it ships.

AI writes code that works but ignores your design system. Buoy finds hardcoded colors, duplicate components, and token violations.

$ npx @buoy-design/cli begin

Paste in your terminal or AI

💧 Design systems leak.

Hardcoded values creep in. Drift compounds.

What AI generates Card.tsx
const Card = () => (
  <div style={{
    background: "#ffffff",
    padding: "16px",
    borderRadius: "8px",
    boxShadow: "0 2px 4px rgba..."
  }}>
    {children}
  </div>
)
What you want Card.tsx
import { Card } from "@/components"

const MyCard = () => (
  <Card variant="elevated">
    {children}
  </Card>
)


🛟 Buoy plugs the holes.

What Buoy catches:
Hardcoded colors
#ffffff → var(--bg)
Magic numbers
16px → var(--space-4)
Duplicate components
Use <Card> instead

Find drift in seconds

One command. Every issue with exact file, line, and suggestion.

buoy-cli
$
🛟 Scanning for design drift...
Found 23 issues in 142 files
CRITICAL (2)
├─ Button.tsx:12 Missing aria-label
└─ Modal.tsx:45 Focus trap not implemented
HARDCODED VALUES (8)
├─ Card.tsx:8 #ffffff → use var(--bg-surface)
├─ Badge.tsx:3 8px → use var(--spacing-sm)
└─ ... and 6 more
Add to CI to catch drift on every PR

Catch drift at the PR

Add Buoy to CI. Drift never reaches main.

feat: add new Card component
#247
Buoy Design Check — 3 issues found
error
src/components/Card.tsx line 23

Hardcoded color #3b82f6

Use var(--color-primary) instead

error
src/components/Card.tsx line 31

Hardcoded spacing 24px

Use var(--spacing-lg) instead

warn
src/components/Modal.tsx line 8

Hardcoded border radius 8px

Use var(--radius-md) instead

Fix these issues to merge
Powered by 🛟 Buoy

What Buoy Detects

Categorized by severity to help you prioritize fixes

🎨 Warning

Hardcoded Values

Colors, spacing, fonts not using tokens

📦 Warning

Duplicate Components

Similar components that should be consolidated

🏷️ Info

Naming Inconsistency

Component/prop names that don't match conventions

⚠️ Warning

Deprecated Patterns

Components marked @deprecated still in use

🔧 Warning

Prop Type Mismatch

Same prop with different types across components

Critical

Accessibility Conflict

Missing ARIA labels, focus issues

🌐 Warning

Framework Sprawl

Multiple UI frameworks in same codebase

👻 Info

Orphaned Components

Components in code but not in design

Detect. Enforce. Measure.

Find drift, catch it at CI, and track your progress.

1

Detect

$ buoy drift check

Zero config. Every issue with exact file and line.

2

Enforce

$ buoy ci

Catch drift at PR. Nothing bad reaches main.

3

Measure

$ buoy audit

Track design system health over time.

Works with your stack

Start free, scale when ready

Your journey from first scan to team-wide enforcement

FREE
🔍

Detect Locally

Run buoy check in any project. See every hardcoded value, naming issue, and token violation.

  • Unlimited scans
  • All detection rules
  • Fix suggestions
FREE FOR PUBLIC
🚦

Catch at PR

Add GitHub Action. Every PR gets checked. Drift blocked before merge.

  • Inline PR comments
  • Check status integration
  • Auto-fix suggestions
TEAM
📊

Track Progress

Health scores, trend charts, team leaderboards. Prove ROI to stakeholders.

  • + Private repo support
  • + Team dashboard
  • + Historical trends
FreePublic reposTeam plan

Using an AI coding assistant?

Ask your AI to run:
npx @buoy-design/cli begin
🔒 Works without AI

AI is optional. Scanning isn't.

Core drift detection is 100% deterministic. No LLMs, no API keys, no data leaves your machine. Perfect for teams where AI tools are restricted.

🔒

Buoy Core

100% Deterministic
  • All scanning & drift detection
  • CI/CD integration & PR comments
  • Fix suggestions with exact replacements
  • Coverage metrics & reporting
  • Works air-gapped & offline
No API keys required. No external calls.

Buoy + AI

Optional Enhancement
  • + Everything in Core
  • + Natural language drift explanations
  • + Context-aware suggestions
  • + Architecture analysis
  • + PR summary generation
Requires ANTHROPIC_API_KEY. Your key, your control.

Start with Core. Add AI when you're ready. Learn more →

Start scanning in 30 seconds

Free. Open source. No signup required.

npx @buoy-design/cli status