Replacing paper with a system that works in the field
Children Tracker is a full-stack, offline-first Progressive Web Application developed to replace the paper-based registration and meal attendance tracking systems used by children care organizations running federally funded meal programs.
The platform serves multiple organizations from a single deployment, handles child registration with guardian consent, tracks daily meal attendance via QR code scanning, and continues to function without internet connectivity — a critical requirement for field operations at remote program sites.
Built with Next.js 16, React 19, Supabase (PostgreSQL), and Redux Toolkit, with deep integrations into GoHighLevel CRM for lead management and marketing automation.
Paper workflows failing at the point of service
Every summer meal program follows the same path — guardian sign-up, site setup, daily meal lines, then federal audit. Paper broke down at every step, but worst of all when staff were serving children.
A multi-tenant PWA for the entire workflow
Digitizing registration to meal attendance — accessible on any device and fully functional offline.
Scan QR Code
Staff scans family QR at meal service point
~5 secSelect Child
Family record loads — pick the child being served
~8 secVerify Picker
Confirm authorized pickup person on file
~10 secRecord Attendance
Capture signature — audit-ready record saved
~7 secPublic Registration Portal
Guardians register children via a unique URL per organization — no login required. Captures name, DOB, address, guardian details, and digital signature.
- Unique org URL — no app download
- Digital signature capture
- Automatic family QR code generation
QR-Based Meal Attendance
Staff scan family QR → select child → verify authorized picker → capture signature → attendance recorded. The entire flow takes under 30 seconds per child.
- Camera-based QR scanner (html5-qrcode)
- Authorized picker verification
- One meal record per child per day
Offline-First Operation
The app caches all data locally. When offline, staff continue registering children and recording attendance. All operations sync automatically when connectivity returns.
- IndexedDB with 7 data stores
- Priority-based mutation queue
- Optimistic UI with temp IDs
Multi-Tenant & CRM Integration
Single deployment serves multiple organizations with database-level isolation via Row Level Security. Every registration automatically creates a GoHighLevel lead with UTM attribution.
- Row Level Security on all tables
- Three-tier RBAC (Super Admin → Org Admin → Staff)
- Instant CRM lead sync with QR link
Public Registration
Guardian consent & digital signature
Family QR Codes
Instant family lookup at meal service
Meal Tracking
30-second checkout per child
Picker Management
Authorized pickup verification
Offline Mode
Full ops without connectivity
Multi-Tenant
RLS-isolated org data
CRM Sync
GoHighLevel automation
Role-Based Access
Middleware-enforced RBAC
Built for reliability, compliance & scale
A four-layer pipeline from browser to database — with an offline-first client that keeps staff productive even without connectivity.
Client Layer — Browser PWA
Staff-facing dashboard built as a progressive web app. Redux manages 14 interconnected data domains; Serwist caches assets and enables offline shell loading.
Offline Layer — Always-On Operations
A 37KB custom API client detects connectivity and routes requests accordingly. Seven IndexedDB stores hold structured data; a mutation queue replays changes when the network returns.
Server Layer — Next.js 16 API
Route handlers enforce role-based access at the middleware level. Zod schemas validate every request body; JWT tokens carry tenant and role claims for multi-tenant isolation.
Integrations — Data & CRM
Supabase PostgreSQL with row-level security enforces tenant isolation at the database level. GoHighLevel syncs leads; GTM and Meta Pixel track conversion funnels.
Supabase over Firebase
PostgreSQL provides relational integrity for compliance data. RLS enables true multi-tenant isolation at the database level.
IndexedDB over localStorage
Structured storage for hundreds of offline records with transactions and indexed queries.
Serwist over Workbox
Modern service worker framework with better Next.js integration and custom handler classes.
Redux Toolkit over Context
14 interconnected data domains required predictable state with middleware for async offline sync.
Zod over Yup
TypeScript-first validation with better inference. Shared schemas on frontend and backend.
QR Codes over NFC
Works with any smartphone camera. No specialized hardware. Families can print QR codes at home.
Five phases from core platform to production
Each sprint unlocked the next capability field staff needed — from registration to offline meal lines to multi-org deployment.
Core Platform
Orgs can register children & manage staff
Meal & QR
30-sec meal checkout at the service line
Offline-First
Full ops at parks with zero connectivity
Multi-Tenant
One deploy, every org + instant CRM sync
Production
Audit-ready, secured & optimized for scale
Hard problems,
real solutions
Six engineering challenges that shaped the offline-first architecture — and how each was resolved in production.
Offline Data Integrity
isOptimistic flags, temporary IDs replaced on sync, and last-write-wins conflict resolution. Result: 98%+ sync success without manual intervention.Dual API Paths Causing Inconsistency
/api/child/picker and /api/meal-picker) modified the same data differently. Solution: Unified both paths to read/write the canonical children.picker_name JSON column. Deprecated the legacy meal_picker table. Eliminated staff confusion during meal service.Frontend-Backend Validation Drift
Service Worker Breaking Navigation Offline
Multi-Tenant Security in Offline Cache
customer_id filtering on every cached response, session validation on single-item lookups, Super Admin bypass for role 2, and full Redux store reset on logout.Legacy Password Migration
Measurable impact across every workflow
Registration Time
Digital registration with validation replaced paper forms and manual spreadsheet entry.
Meal Checkout
QR scan replaced paper lookup. Staff freed to focus on children instead of admin.
Data Entry Errors
Validated digital forms eliminated manual transcription mistakes.
Records Lost
Cloud storage plus offline backup ensures no documentation is ever lost or damaged.
CRM Lead Entry
Automated GoHighLevel sync with UTM attribution gives marketing real-time visibility.
Offline Capability
Complete registration and meal tracking at remote sites with zero connectivity.
What we'd tell the next offline-first build
Offline-First Is Architecture, Not a Feature
The offline API client alone is ~37KB. If offline is a requirement, it must be a foundational decision — not a retrofit.
Validate Identically on Both Sides
Any gap between frontend and backend validation creates invisible bugs that are catastrophic in offline scenarios.
Avoid Organic API Duplication
The dual picker API problem arose from implementing the same feature twice. A canonical data-access layer prevents this.
Service Workers Need Specialized Testing
Hot reload bypasses the service worker. Offline behavior requires production builds — invest in automated smoke tests.
Multi-Tenancy Requires Defense in Depth
Layer RLS, middleware validation, API permission checks, and offline cache filtering — four independent barriers.
Memory Constraints Are Real
Next.js production builds with 14 Redux slices and service worker compilation can exhaust 8GB RAM. Plan accordingly.
Ready to digitize your program?
Children Tracker proves that compliance-critical field operations can run reliably offline — with audit-ready records, instant CRM sync, and sub-30-second meal checkout.