NFC Attendance System
“Tap to Clock In. No Friction. No Paper.”
Built with Next.js 15 and Turso SQLite, this system handles NFC tag enrollment, real-time attendance tracking, role-based access, and offline buffering with automatic sync. Includes a Progressive Web App for mobile NFC check-ins.

Problems we solved
Hardware Integration
Physical NFC readers (USB/Ethernet) needed a bridge between hardware events and the web application.
Offline Reliability
Network drops in factories and warehouses meant check-ins would fail. Attendance data is too critical to lose.
Role Complexity
Admin, HR, Reader devices, and Employees all need different access levels with secure session management.
How we built it
NFC tap-to-check-in with offline buffering, RBAC, and a real-time admin dashboard with CSV export.
- 1
Standalone Node.js Reader Agent for USB/Ethernet NFC hardware with offline buffering and automatic retry
- 2
Progressive Web App with Web NFC API for mobile Chrome (Android) tap check-ins
- 3
Better Auth (JWT) with 4 roles: Admin, HR, Reader, Employee
- 4
Turso SQLite + Drizzle ORM for edge-optimized, fast local queries
- 5
Real-time stats dashboard with auto-refresh, CSV export, and 30-day attendance history
- 6
Service worker background sync - check-ins buffer locally and upload when reconnected
Built with the best tools
frontend
backend
database
Infrastructure
Measurable impact
Overall Result: Zero buddy-punching, instant attendance data, offline reliability with auto-sync.
Your product, next
Build Your Product With Us.
We've shipped enterprise toolplatforms before. We know the pitfalls, the shortcuts that matter, and the patterns that scale. Let's talk.