The frontline app,
under your name

Every task closes with an attested scan, not a checkbox. White-labeled and published on your own developer account.

The Worklist: five tasks at Pick cart 12 Settled: T-5104 closed by a case label scan
Pick cart 12 › T-5104
Claimed
SCANthe person
ATTESTwho and where
EMITthe event
COMPLETEwith its hash
WhatCase label (01) 00614141107346
WhoBadge 4471
WherePick cart 12 · Joliet DC
When6:14 AM · inside the window
Proofni:///sha-256;8b21…c04d
TaskSettled · complete(eventHash)

The record of work done is the same object as the evidence it happened.

Emit logAppend-only
01JB8Q…7Q2CT-5104Case label scanSettled6:14
01JB8P…K4DXNo matchTote scanRecorded6:09
01JB8N…5HXAT-5101Case label scanSettled6:02
01JB8M…C08RT-5099Location scanSettled5:57
01JB8K…Q3TET-5097Case label scanSettled5:51

Your name
on the screen

Published on your developer account, under your brand. Nothing upstream is named on it.

9:41
Scan badge
One app, built under each operator’s nameLogos shown for illustration

Your floor already records that a button was pressed. Auditors, customers and chargeback panels don’t accept that. worklists.app records the evidence instead.

Fig 0.1

Attested capture

A real who, at a real place, inside the window. Not a checkbox.

Fig 0.2

No reading required

Every outcome is felt, seen and heard. Never color alone.

Fig 0.3

Person or agent

Both append to the same record. The app doesn’t change shape.

The confirm
is the scan

No reading on the close path. Success is a haptic, a shape and a sound — in a freezer at 05:00 or a yard at noon.

See the verbs behind the scan
Outcome 01

Settled

One match. The task closes with the event’s hash.

HapticShapeSound
Outcome 02

Which one?

Aisle 12, bay 2 T-5105
Cooler 2 T-5106
HapticShapeSound
Outcome 03

Recorded

No match. The scan stands.

HapticShapeSound
Outcome 04

Not recorded

Not a label this site reads. Never opened, never stored.

HapticShapeSound
Capture
  • Camera stills
  • Hardware trigger
  • Ring scanners
  • One motion, emit first
  • Matched on the device
  • Fails closed to a choice

One deployment,
never a seat

One brand, one regime, one tenant. Add people, stations, sites and devices; nothing changes.

Open the developer door
deployments/zebra.deployment.json
1{
2  "name": "Zebra Worklists",
3  "regime": "mandated",
4  "brand": { "mark": "zebra-brandmark.svg" },
5  "ios": { "bundleIdentifier": "…worklists.zebra" },
6  // one tenant. no seats. no roster.
7}
Your name and markSign-in, About, the icon, the widgets
Your developer accountApp Store and Google Play
One regime, bound at buildNever switched at runtime
Nothing upstream namedNo “powered by”, no footer
A deployment
  • Your name on the screen
  • Attested capture
  • No reading on the close path
  • A person or an agent
  • One tenant, never a seat
  • Two regimes, non-fungible

The second
operator

A union or a trade school runs its own instance. That record belongs to the worker.

MandatedYour floor

Employer deployment

Object to performerAlways
Performer to objectsRefused
Rate, ranking or targetNever
Worker-heldLocal 1493 · Apprentice record

Member deployment

Your own recordAlways
Employer metricNever
Employer visibilityNever

What you do not get, and why that is the product

ScoreboardRankingStreakBadgeLevelTargetRosterSwipe to complete

No per-person surface

Trace a bag of lettuce to the hands that moved it. Never a person to their output.

No rate, ever

A rate dressed up as a game is still a rate. The app never computes one.

No roster

No per-person roster, so no per-seat pricing. You can always record what you did.

No swipe to complete

WCAG 2.2 refuses drag-only actions. So does the close path.

Put your name on
the frontline app

One deployment. One brand. Your name.

Worklists · coming soon
Download on the App Store Get it on Google Play