MIT licensed · zero dependencies · one fileThe captcha people
The captcha people
actually enjoy solving.
Park the old car past moving traffic, rotate it to the exit, stop it on the line, pick every car in the grid — or just draw a perfect circle. Canvas-rendered, keyboard friendly, and locked to domains you own.
Tip: hover the widget (or click it) and steer with the arrow keys or WASD.
Verification token
— solve a challenge —
Zero dependencies
One ES module, no cookies, no tracking, no network calls in the widget.
Arrow-key playable
Every driving puzzle accepts arrow keys or WASD, plus pointer and touch.
Live NPC traffic
Animated cars cruise the lanes, so the scene reads as a real street.
DNS-locked keys
Site keys only work on domains you proved you own with a TXT record.
Five challenges
Toggle any of them — the live widget above updates instantly.
Ship it in five minutes
- 1. Add your domain in the dashboard and publish the
_carcaptchaTXT record. - 2. Drop in the widget with your public site key.
- 3. Verify the token server-side with your secret key before trusting a submission.
import { CarCaptcha } from "/carcaptcha.js";
CarCaptcha.render("#captcha", {
sitekey: "cc_site_xxx",
puzzles: ["parking", "select", "circle", "rotate", "slide"],
attempts: 3,
onVerified: (token) => submitForm(token),
});
CarCaptcha