Inspiration

  • Students waste time wrestling with unreadable PDFs and dense text.
  • Accessibility tools are scattered, slow, or locked behind paywalls.
  • Goal: one-click “make it accessible” for anyone, on any file.

What it does

  • Accepts text or a PDF/image upload.
  • Sends multipart/form-data to a processor with a chosen accessibility preset.
  • Returns JSON with a pdf_url and optional simplified summary.
  • Shows a clean “Download Accessible PDF” button and an open-in-new-tab link.
  • Presets: dyslexia, cognitive impairment, visual impairment, ADHD, ESL simple English.
  • Preferences are toggled in-app and drive the preset automatically.

How we built it

  • Frontend: React + Vite + TypeScript + shadcn/ui + Tailwind + lucide-react.
  • Zero-CORS friction: Vite dev proxy for /process and /downloads/* to Render.
  • File handling: native <input type="file">FormData (file_input or text_input, plus accessibility_preset).
  • Robust JSON handling: parse, normalize relative pdf_url, render download CTA.
  • State: lightweight React state for messages and local preferences.
  • UX: gradient cards, keyboard-focus styles, and reduced-motion-friendly animations.

Challenges we ran into

  • Browsers auto-adding wrong Content-Type; fixed by letting fetch set multipart boundary.
  • CORS and 302-to-HTML issues; solved by proxying and keeping links same-origin.
  • Some APIs return relative paths; added normalizer for /downloads/....
  • Avoiding backend lock-in; removed auth/storage coupling while keeping the UX.

Accomplishments that we're proud of

  • From raw PDF/image to accessible PDF in a single click.
  • Works without login or backend dependencies in dev.
  • Clear, fast UI with real accessibility presets, not just theme tweaks.
  • Tight, testable network layer with graceful error states.

What we learned

  • Keep the browser same-origin and life gets simpler.
  • Multipart rules: never set Content-Type manually for FormData.
  • Accessibility is more than contrast; presets must alter structure and language.
  • Small utilities (URL normalization, proxy config) eliminate entire classes of bugs.

What's next for Kind Sight

  • Export to alternate formats: EPUB, DOCX, large-print HTML.
  • Batch processing and history.
  • Fine-grained presets per disability and reading level.
  • Mobile-first uploader and share sheet.
  • Optional accounts later (save prefs) without breaking the zero-setup flow.
Share this project:

Updates