Rams reads your components, hooks, and className strings on every pull request. It posts inline one-click fixes and a summary, usually in about a minute. No CI config, no screenshots, just the code.
A div with onClick works for mouse users and nobody else. No tab focus, no Enter or Space handling, nothing announced to screen readers. Rams flags it and suggests a real button.
Rams computes contrast from the real hex behind your classes. text-gray-400 on white is about 2.5:1, well under the 4.5:1 body text needs, and the finding quotes the exact line.
A raw #6B7280 in a component your tailwind config already names gray-500. Rams reads your token layer first, so the stray hex gets flagged and token references never do.
A scroll-triggered entrance or spinning keyframe with no prefers-reduced-motion guard. For users with vestibular disorders that is motion sickness, not polish. Rams flags the missing media query.
bg-gradient-to-r from-purple-500 to-pink-500 on the hero, glow shadows, three identical filled buttons in a row. A whole craft category exists to catch what generated code defaults to.
isLoading ? <Spinner /> : <List /> covers loading and success. Users also hit empty and error. Rams flags what renders when the array is empty or the fetch fails.
Install the GitHub App on a public repo and the first review lands in about a minute.
Frameworks
Compare