Todd Ludington
← Back to projects

Part of HamCation Event Technology Platform

HamCation Security

Active since 2026-01

Offline-first badge scanning at security gates using IndexedDB and service workers.

Cloudflare Workers D1 Pages IndexedDB TypeScript

What it does

Security volunteers scan badges at gate checkpoints to verify credentials and track entry. The system needs to work continuously during a three-day event regardless of network conditions.

Offline-first architecture

This app was built around the assumption that the network will fail. It uses IndexedDB and a service worker to cache the full roster locally so scanning continues even without connectivity. Background sync pushes queued scans when the network returns, with conflict resolution for any overlapping records.

Technical details

  • Full roster cached in IndexedDB on first load
  • Service worker intercepts fetch requests and serves cached data when offline
  • Background sync pushes queued scans on reconnection
  • Cloudflare Workers API for roster management and scan logging
  • D1 stores the authoritative roster and scan history
  • Tested on Chrome, Safari, and Amazon Silk (Kindle Fire tablets used at gates)

Related projects

All projects →