WebProof: Demo

Secure Info Sharing

JWT-based time-limited personal data sharing with QR codes and revocation.

The Challenge

Sharing personal information (phone, address, ID) via static links or messaging is risky -- no expiry, no revocation.

Constraints

  • Links must expire automatically after a set time
  • Must support immediate revocation
  • QR codes for in-person sharing scenarios

Technical Decisions

  • JWT with embedded expiry for self-contained time-limiting without server-side session checks
  • Server-side revocation list for immediate invalidation when needed
  • QR code generation for easy in-person sharing without typing URLs

Highlights

  • Time-limited JWT tokens with configurable expiry (15min, 1h, 24h)
  • Instant revocation via admin dashboard
  • QR code generation for in-person sharing
  • Dual storage: file-based (dev) and Vercel KV (production)
  • Subdomain isolation for security

Results

  • Personal data shared only when needed with automatic cleanup
  • Zero exposure risk from forgotten or leaked links

Tech

Next.jsTypeScriptjoseQR codesVercel KV

Want something like this?

Describe your workflow, what you track today, and what breaks most often. I'll propose a fixed-scope audit or sprint.