Catch UI bugs before they merge.
Rams reviews your pull requests and flags UI issues that reduce conversion, break accessibility, and create design-system drift — before they ship.
Free for public repos. No credit card. Works on your first PR in minutes.
<button className="px-6 py-3 text-white rounded-lg border border-neutral-700">Learn More</button>
<img src={user.avatar} className="w-10 h-10 rounded-full" />
<div className="grid grid-cols-3 gap-4">
<Card title="Active users" value={1247} />
<Card title="Sessions" value={3892} />
<Card title="Conversions" value="4.2%" />
</div>
<input type="email" placeholder="you@company.com" className="px-4 py-2 bg-neutral-900 rounded" />
<nav className="flex items-center gap-6">
<Link href="/pricing">Pricing</Link>
<Link href="/docs">Docs</Link>
<Link href="/login">Sign in</Link>
</nav>
<dialog open className="fixed inset-0 m-auto rounded-2xl bg-neutral-900 p-8">
<h2 className="text-2xl font-semibold">Confirm deletion</h2>
<p className="mt-2 text-neutral-400">This cannot be undone.</p>
<div className="mt-6 flex justify-end gap-3">
<button onClick={onCancel}>Cancel</button>
<button onClick={onDelete} className="bg-red-500 text-white">Delete</button>
</div>
</dialog>
<table className="w-full text-sm">
<thead><tr><th>Repo</th><th>Score</th><th>Issues</th></tr></thead>
<tbody>
{rows.map(r => <tr key={r.id}><td>{r.repo}</td><td>{r.score}</td><td>{r.issues}</td></tr>)}
</tbody>
</table>
<form onSubmit={handleSubmit} aria-label="Sign up form">
<label htmlFor="email">Email</label>
<input id="email" name="email" required />
<button type="submit">Sign up</button>
</form>Scored repositories
Every public repo Rams has reviewed. Worst scores first — there's usually something interesting in the gap between great craft and great accessibility.
Top issue
Debug border-red-400 left on the outer section in production
Top issue
Icon-only button has no accessible name for any state
Top issue
Email and password inputs have no id — labels are disconnected
Top issue
Icon-only button has no accessible name for screen readers
Top issue
Card body text at opacity-50 fails WCAG AA contrast
Top issue
ThemeImage renders two images — screen readers announce both
Top issue
Close button is an inaccessible div — keyboard users cannot dismiss the panel
Top issue
Nested interactive element inside a button breaks keyboard access
On every PR, Rams reviews your design.
Accessibility, typography, color, spacing, components, motion, hierarchy, and UX — checked on every pull request, with inline fix suggestions you can accept with one click. No extra step, no context-switching.
acme/web-app #42 · Update pricing page
3 issues · 1 critical
Design Review — 3 issues found
Score: 47/100 · Risk level: High
Two filled CTAs split focus — primary action is ambiguous·UX
The hero has "Get Started" and "Learn More" both styled as filled white buttons at the same size. Two primary-weight buttons in the same row is not a hierarchy.
Impact: Users can't tell which is primary → conversion drops on the page's most valuable click.
Fix:Use a single filled CTA for the primary action; demote secondary actions to ghost or text-link style.
<button className="px-6 py-3 text-black bg-white rounded-lg">Learn More</button><button className="px-6 py-3 text-white rounded-lg border border-neutral-700">Learn More</button>Stat values use hardcoded hex — bypasses the design system·Design System
The +12% indicator uses style={{ color: '#22c55e' }} inline, hardcoding a color that should live in tokens.
Impact: Theme updates and dark-mode passes silently miss these values → product drifts visually as the system evolves.
Fix:Replace inline hex with a semantic token class like text-emerald-500.
<span style={{ color: '#22c55e' }}>+12%</span><span className="text-emerald-500">+12%</span>Feature grid cards are visually identical — no entry point·UX
All six feature cards share identical weight, color, and spacing. Nothing draws the eye to any single card.
Impact: Users scan headings without absorbing content → the grid reads as a wall and the strongest claim never lands.
Fix:Vary one card's scale or treatment to create a focal point, or order by importance with the strongest claim first.
Your team is shipping UI faster than it's being reviewed.
AI tools and fast iteration make it easy to ship product — and easy to ship confusing, inconsistent, or inaccessible UI. Most teams don't have a senior designer reviewing every pull request. Issues slip through and compound over time.
The UI issues your team misses when shipping fast
Multiple CTAs compete → users don't know where to click
Two primary-weight buttons in the same row, no visual ranking, no clear next step. The conversion click is split between actions that look identical.
Low contrast and missing labels → broken UX for real users
Sub-4.5:1 contrast on body text, missing alt attributes, sub-44px touch targets, focus rings suppressed without replacement. Screen readers and keyboard users get a half-broken page.
Hardcoded hex and one-off spacing → product becomes inconsistent
Inline style colors that bypass tokens, padding values outside the spacing scale, !important overrides on system components. Theme changes silently miss these.
Generic gradients and templated layouts → product looks AI-generated
Purple-to-pink gradients, glow shadows, vague hero copy, identical filled buttons. The output of unedited prompts.
Broken states and duplicate handlers → UI behaves incorrectly
Submit buttons with no disabled state, double-fired onSelect+onClick, clickable spans without keyboard support, missing loading states.
Unscoped transitions and no reduced-motion guard → janky UX
`transition: all` watches every CSS property on every render. Animations without `prefers-reduced-motion` violate WCAG 2.3.3 and unsettle users on the move.
Trained on how senior designers actually review code
109 rules across 8 categories — accessibility, color, typography, spacing, components, UX, motion, and AI-generated patterns. Not linter rules. Review judgments.
A design skill file gives advice. Rams runs reviews.
Keep your design prompts. Rams ensures your product actually follows them.
Free skill file
- Has to be invoked manually
- Generic — not aware of your codebase
- Easy to ignore mid-PR
- Doesn't comment on pull requests
- No way to enforce standards
- No history or memory across reviews
- Goes stale when rules change
Rams
- Runs automatically on every pull request
- Repo-aware — sees your actual code
- Posts inline comments with one-click fixes
- Top-level review summary at the top of every PR
- Optional merge blocking on critical issues
- Review history kept per workspace
- Always on the latest ruleset
Get your Rams Design Score.
Free for public repos. No config, no setup, no credit card.
Review my public repoFreeFrom install to review in minutes
Install the GitHub App, open a pull request, get a review back in about a minute. No CI configuration, no API keys, no workflow files.
Rams becomes part of your pull request workflow.
- Step 1
Install GitHub App
One-click install. No CI files, no API keys.
- Step 2
Open a PR
Push UI changes to any branch and open a pull request.
- Step 3
Rams reviews UI changes
Inline comments + a top-level summary land within ~60 seconds.
- Step 4
Fix issues before merge
One-click apply on each suggestion, or merge through anyway.
Works with your stack
JSX, TSX, Vue SFCs, Svelte components, Angular templates, CSS, SCSS. Next.js app dir, SvelteKit routes, Vue pages, Angular components, React Native screens.
Don't see your framework?
Request support and we'll add it.
Built for teams shipping UI without enough design review
Founder-led teams
Shipping fast, no time for manual design review.
AI-heavy teams
Cursor, Copilot, v0 generate code. Rams catches what they miss.
Design engineers
A second pair of eyes between manual reviews.
Agencies
Consistent quality across client work without staffing senior designers per project.

“Rams brings the missing piece to AI tooling: taste.”
Cory Etzkorn, Founder at Soulmate · previously Design Engineer at Notion
Pricing
Start free. Upgrade when Rams becomes part of your workflow.
For trying Rams on your open source. No credit card.
For your next big idea. One private project at a time.
For teams building real product. Every repo. One flat price.
For teams moving fast. 750 reviews a month.
For the whole organization. Custom rules, SSO, dedicated SLA.
Stop shipping UI issues your users will notice first.
Rams reviews every PR for accessibility, hierarchy, color, typography,
spacing, components, motion, and UX — before the issues ship.