The code control layer design has been missing

Catch design drift
before it ships.

Design systems drift over time. Buoy watches every PR for hardcoded colors, token violations, and rogue components. 

$ npx ahoybuoy dock

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
Free PDF

Got drift?

Get the checklist. 20 warning signs to spot in your next code review.

No spam. Unsubscribe anytime.

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

Install the Buoy GitHub App. 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
Free for the first 100 teams — 95 spots left

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 as deprecated still in use

🔧 Warning

Inline Styles

Inline CSS that should use tokens or classes

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 drift check

Catch drift at PR. Nothing bad reaches main.

3

Measure

$ buoy show health

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 drift check in any project. See every hardcoded value, naming issue, and token violation.

  • Unlimited scans
  • All detection rules
  • Fix suggestions
GITHUB APP
🚦

Catch at PR

Install the Buoy GitHub App. Every PR gets checked. Drift blocked before merge.

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

Track Progress

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

  • + Private repo support
  • + Team dashboard
  • + Historical trends
CLI (free)GitHub AppPro

Using an AI coding assistant?

Ask your AI to run:
npx ahoybuoy dock
🔒 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

Open Source CLI
  • All scanning & drift detection
  • Fix suggestions with exact token replacements
  • 100% deterministic — no LLMs
  • No data leaves your machine
  • Works air-gapped & offline
No API keys required. No external calls. MIT licensed.

Buoy Pro

Core + AI
  • + Runs the same open-source scanner on every PR
  • + AI-powered PR summaries & coaching
  • + Committable inline fix suggestions
  • + Dashboard with health scores & trends
  • + Builder mode coaching for new design systems
AI built-in, no API key needed.

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