Lumenscope is a premium, developer-first, web-based accessibility audit instrument. Paste any public website URL, scan its DOM tree under a secure proxy environment, and generate a scored, detailed WCAG compliance assessment report with interactive visual overlays.
- Accessibility Blindness: 90%+ of website homepages fail basic Web Content Accessibility Guidelines (WCAG). Most developers are unaware of hidden programmatic accessibility barriers (such as missing alt texts, keyboard traps, and bad color contrast ratios).
- Costly Audit Engines: Industry-standard accessibility engines require launching heavy headless browser engines like Puppeteer, driving up server costs and deployment complexities.
- Lack of Visual Guidance: Standard CLI checkers output a text wall of error elements, making it difficult for designers and developers to immediately locate issues on the page.
- Zero-Engine In-Browser Audits: Lumenscope proxies target sites on a secure backend and renders them in a safe same-origin
srcdociframe. The industry-standardaxe-corelibrary is run directly inside the browser against the live iframe DOM context, removing server CPU bottlenecks. - Interactive Highlights: Discovered accessibility violations are overlaid directly on the rendered website page. Hovering/clicking a violation highlights the exact HTML element in real time.
- Detailed PDF Exporter: Section-wise PDF report generation featuring dynamic page-break logic, sequential numbering, and full visual compliance cards.
The Lumenscope logo represents a precise diagnostic instrument:
- The Icon: A magnifying glass whose lens contains an eye outline, overlapping a checkmark badge.
- Magnifying Glass: Represents testing, scanning, and programmatic audit analysis.
- Eye outline: Focuses on visual accessibility and human-centric design.
- Pass Checkmark: Reflects compliance verification and positive audit outcomes.
- The Concept Rationale: Unlike generic SaaS logos, it incorporates the metaphor of a Movie Review / Preview (MR) lens with a light focus. Just as film reviews shine a spotlight to provide honest, accurate information to the audience, the lens focuses light on the target website to illuminate hidden accessibility violations, giving developers exact, real-world data to improve the user experience.
- Framework: React 18.3.1
- Build Tool: Vite 8.0.9 (Rolldown Rust-bundler integration for ultra-fast builds)
- Styling: Tailwind CSS v4.2.2 (Modern CSS-native
@themeconfigurations) - Accessibility Audit: axe-core 4.11.4
- Animation: Motion 12.40.0 (
motion/react) - Charts & Data: Recharts 3.8.1
- PDF Exporter: html2pdf.js 0.14.0 (with explicit A4 page sizing and page-slicing logic)
- Icons: Lucide React 1.17.0
- Router: React Router v7.17.0
- Server Framework: Express 4.21.0
- CORS Policy: cors 2.8.5
- Security & Auth: dotenv 16.4.5, googleapis (Gmail API OAuth2 delivery)
- Abuse Protection: express-rate-limit 8.5.2
Lumenscope/
βββ .github/ β GitHub Action Workflows
β βββ workflows/
β βββ ci.yml
β βββ deploy-client.yml
β βββ deploy-server.yml
βββ client/ β React Frontend SPA
β βββ public/ β Static assets (Sitemap, Robots.txt, Favicons)
β β βββ robots.txt
β β βββ sitemap.xml
β βββ src/
β β βββ assets/ β Icons, Logos & Branding SVG/PNGs
β β βββ components/ β Common UI, Home, Contrast, and Results components
β β βββ hooks/ β Custom hooks (useScan, useHighlight, useExport)
β β βββ lib/ β Scan engine & utility functions
β β βββ pages/ β Pages (HomePage, ResultsPage, ContrastCheckerPage, AboutPage)
β β βββ styles/ β Tailwind CSS source styles
β β βββ types/ β TypeScript interface definitions
β β βββ main.tsx
β βββ vite.config.ts
β βββ package.json
βββ server/ β Express proxy backend
β βββ src/
β β βββ middleware/ β Security & rate limiting middleware
β β βββ routes/ β Express routes (fetch router, contact mailer)
β β βββ utils/ β Helper scripts (sanitizeHtml, oauth mailer)
β β βββ config.js
β βββ index.js
β βββ package.json
βββ shared/ β Shared packages / typings
βββ .editorconfig β Unified editor guidelines
βββ .gitattributes β Line-ending normalization configurations
βββ .gitignore β Untracked file rules
βββ CHANGELOG.md β Version history log
βββ CONTRIBUTING.md β Contribution guidelines
βββ LICENSE β MIT License
βββ package.json β Workspace configuration metadata
βββ README.md β Setup, installation, and architectural overview
- Path:
/api/fetch - Method:
GET - Description: Pulls raw HTML from any public web URL, strips dangerous script elements for client-side sandboxing, and serves it back cross-origin-safe.
- Parameters:
url(query string): The fully qualified URL to scan (e.g.https://example.com).
- Example Usage:
curl "http://localhost:3001/api/fetch?url=https://example.com" - Sample Response:
{ "html": "<!DOCTYPE html><html><head><base href=\"https://example.com/\"></head><body>...</body></html>" }
- Path:
/api/contact - Method:
POST - Description: Receives user contact/message submissions and routes them securely via Gmail SMTP utilizing OAuth2.
- Payload:
{ "name": "Loganathan G P", "email": "loganathan@example.com", "message": "Enquiry regarding accessibility dashboard integration." } - Sample Response:
{ "success": true, "message": "Message sent successfully" }
All colors verified programmatically to guarantee AAA contrast ratios for primary elements on paper backgrounds:
- Paper Canvas Background (
--paper):#F7F7F5 - Ink Text & Headers (
--ink):#1A1D23(15.74:1 AAA contrast) - Signal Brand Accent (
--signal-blue):#2D5BFF(4.83:1 AA contrast) - Secondary Labels (
--minor-grey):#6B7280(4.51:1 AA contrast) - Card Borders (
--border):#D9D9D6
- Interface Display/Headings:
IBM Plex Sans(700 Bold / 600 Semi-Bold) - Snipets, Code & Ratios:
IBM Plex Mono(400 Regular / 600 Semi-Bold)
Follow these steps to clone, configure, and run the project locally.
- Node.js:
v20.19+orv22.12+ - NPM:
v10+
git clone https://github.com/logusivam/Lumenscope.git
cd Lumenscope/LumenscopeInstall dependencies using legacy-peer-deps to verify compatibility across React workspaces:
npm install --legacy-peer-depsConfigure backend and frontend environment files.
Create client/.env:
VITE_API_URL=http://localhost:3001
VITE_FRONTEND_URL=http://localhost:5173Create server/.env:
PORT=3001
FRONTEND_URL=http://localhost:5173
GMAIL_USER=your-email@gmail.com
CLIENT_ID=your-google-client-id
CLIENT_SECRET=your-google-client-secret
REFRESH_TOKEN=your-google-oauth-refresh-tokenStart both client and server development setups concurrently:
npm run dev- Frontend Application:
http://localhost:5173 - Proxy Backend Server:
http://localhost:3001
Run the client unit/component test suite:
npm run test:clientRun the backend proxy tests:
npm run test:server- Lead Developer: Loganathan G P
- Brand / Company: Logusivam Vision
