DEV Community

Cover image for I built an accessibility compliance SaaS in a day with Claude Code
asafamos
asafamos

Posted on

I built an accessibility compliance SaaS in a day with Claude Code

TL;DR — I'm not a primary coder. I spent ~12 hours on Saturday with Claude Code and shipped axle: an accessibility compliance CI that scans every PR for WCAG 2.1/2.2 AA violations and proposes AI-generated code fixes. It's live on GitHub Marketplace, npm, and a hosted web UI, and processed its first real $49 transaction the same day.

This is the honest play-by-play — the decisions, the dead ends, the Stripe-doesn't-serve-Israel detour, and what I'd tell someone trying to build a SaaS with AI as the primary contributor.


Why build this

Three things clicked at the same time:

  1. The European Accessibility Act went into force in June 2025. Every company selling into the EU now needs WCAG 2.1 AA. Fines up to €1M per violation.
  2. The FTC fined accessiBe $1 million in January 2025 for misleading AI claims about their overlay widget. That whole product category is legally radioactive.
  3. Claude Sonnet 4.6 is good enough at targeted code fixes that the "AI auto-fix" pitch isn't marketing anymore — it actually works for ~60-75% of WCAG violations on realistic pages.

The wedge: real code fixes proposed as PR diffs, bundled with the legal artifacts a compliance officer actually needs (audit trail, accessibility statement, monitoring). Scanners are a commodity. The workflow isn't.

The stack I settled on

Every piece was chosen for "fastest path to first real revenue":

  • Next.js 16 on Vercel — App Router, server components. vercel deploy --prod in 30 seconds.
  • Playwright + axe-core 4.11 — the industry-standard scanner, wrapped in a headless Chromium.
  • @sparticuz/chromium — the serverless-compatible Chromium build. Needed once I realized Vercel functions don't ship a full browser.
  • Claude Sonnet 4.6 via the Anthropic SDK, with ephemeral prompt caching. Per-fix cost is ~$0.008.
  • Upstash Redis (via Vercel Marketplace, one click) for API-key storage and rate limiting.
  • Resend for transactional email.
  • Polar.sh as the merchant of record. This one deserves its own section.

The Stripe problem (and why Polar saved the day)

I'm Israeli. Stripe's dropdown for Business Location on a new account does not include Israel. I stared at it for ten minutes. I scrolled twice. No Israel.

Paddle was option B. I tried — and discovered my old Paddle account had been rejected years ago for an unrelated product (Swap-video, a face-swap tool that violated their acceptable use policy). Appeals exist, but take days.

Polar.sh (an MoR on top of Stripe Connect) was option C. Clean signup, no prior baggage, full KYC in one afternoon including identity verification. Bank account linked directly to my Israeli bank in USD. First real $49 charge processed end-to-end inside of six hours after signup.

If you're a non-US founder building SaaS in 2026: Polar.sh is the path.

How Claude Code actually feels as the primary contributor

I drove with a conversational loop: describe the next chunk, review the diff, ask for iteration. Claude wrote ~90% of the characters. What mattered from my side:

  • Knowing what I wanted at the product level (the pricing tiers, the legal positioning, the anti-overlay stance).
  • Catching when Claude over-engineered (it loves defensive programming; I rejected about a third of the try/catch blocks).
  • Forcing narrow scope (one feature at a time; no "while we're at it" refactors).
  • Recovering from dead ends fast.

The part Claude does not do for you: talking to customers, writing positioning copy that actually converts, choosing which channel to launch on.

Distribution, day one

  • GitHub Marketplaceasafamos/axle-action@v1.
  • npmaxle-cli and axle-netlify-plugin published.
  • Web UI — scan widget + Hebrew accessibility statement generator + embeddable compliance badge, all at axle-iota.vercel.app.
  • Scaffolds ready for Raycast, Chrome, Cloudflare Pages — publishing over the week.

Every output carries a "Powered by axle" trail: PR comments, generated statements, the badge itself (which is a backlink by definition). The product is the funnel.

What I learned

  • Legal pressure beats feature richness. The EAA/ADA/Israeli-law positioning converts better than any feature list.
  • KYC is the real bottleneck for non-US founders. Not coding. Not marketing. The paperwork.
  • Claude Code without product taste produces plausible-looking mush. With product taste, it produces shippable software in hours.
  • The "AI auto-fix" claim is defensible only with honest confidence scoring. Every fix axle generates ships with a confidence score and a manual-review flag.

What's next

  • More marketplace integrations — Cloudflare, Raycast, Chrome, VS Code.
  • Multi-language accessibility statements (French, German, Spanish) for full EAA coverage.
  • Custom domain, ProductHunt launch, and the inevitable "I scanned the top 100 SaaS landing pages" content marketing piece.

If you want to try axle (free tier: 1 repo, unlimited scans, bring your own Anthropic key):


axle provides remediation assistance, not a compliance certificate. Automated tools catch ~57% of WCAG issues; manual human review is still recommended.

Top comments (0)