← ~/work

PDFScanAccess

A commercial PDF accessibility scanner. Upload a document, pay per scan (or use the free tier), and background workers run 16 automated WCAG and PDF/UA checks before a scored, downloadable report lands in your inbox.

View live demo (opens in new window)
Year
2026
Type
SaaS Case Study
Role
Design + Full-Stack
Stack
FastAPI · Nuxt 3
Screenshot of the live PDFScanAccess site

Overview

Most PDFs are inaccessible to screen readers, and most teams have no idea. PDFScanAccess makes the problem visible: upload a document and it audits the file against WCAG and PDF/UA criteria (tagged structure, heading hierarchy, alt text, table headers, font embedding, and more) then returns a scored, downloadable report with fix suggestions.

I designed and built the whole commercial loop: a Nuxt 3 frontend, a FastAPI backend with a Redis/RQ job queue, pay-per-scan checkout, and email delivery. It’s the project where accessibility stopped being a checklist for me and became a product.

What I built

  • 16 automated accessibility checks covering tagged structure, heading hierarchy, alt text, and PDF/UA validation via veraPDF. PyMuPDF handles the parsing and Redis/RQ workers run the scans in the background.
  • Per-file and aggregate job scoring with pass / fail / review status, delivered as downloadable PDF reports (ReportLab + Jinja2) with per-issue breakdowns and fixes.
  • A secure upload pipeline: required ClamAV virus scanning and magic-number validation before any file reaches analysis.
  • Pay-per-scan with PayPal checkout and webhook verification, a free tier (up to 2 PDFs / 50 pages), and optional SendGrid report delivery.
  • Real-time job status and progress API, backed by SQLAlchemy 2.0 and Pydantic v2, with pytest, Vitest, and Playwright test coverage.

Next project

REX3dLaurence

deyn@cavite:~$# © 2026 · don’t ship this as yoursshipping from cavitelocal