Built for the field
Every feature is designed around one constraint: technicians need to log work even when there's no signal.
Offline-first field app
The field app works without an internet connection. Maintenance records are written to local storage instantly and synced in the background when connectivity returns.
- โ IndexedDB local storage via Dexie.js
- โ Outbox queue โ writes never lost
- โ Auto-sync on reconnect
- โ Install to home screen on iOS and Android
// writes locally even offline
await db.records.put({
id: crypto.randomUUID(),
asset_id: assetId,
record_type: "Inspection",
_synced: false
});
// syncs when back online
window.addEventListener("online",
() => drainOutbox());
GET /v1/changes
?updated_since=2026-01-01T00:00:00Z
{
"assets": [...],
"records": [...],
"next_updated_since": "..."
}
Delta sync REST API
A purpose-built delta sync endpoint returns only what changed since your last pull. Integrate with your own CMMS, ERP, or BI tools with minimal API calls.
- โ API key auth with scope enforcement
- โ Client-supplied UUIDs for idempotent creates
- โ Conflict detection (409 on stale writes)
- โ Redis-backed rate limiting per account
Tag management
Generate batches of durable tag IDs โ human-readable, OCR-friendly, and typo-resistant. Assign, retire, and reassign tags as equipment changes.
- โ 10-char IDs:
7F3-K9T2-MQ4 - โ Batch generation API
- โ Soft-delete (retire) without losing history
- โ QR code deep-links
7F3-K9T2-MQ4 Assigned XP2-M7RT-Q9J Assigned B4N-KH5T-WF3 Assigned 3C8-VG2J-NR7 Unlinked