fc.gregstoltz.com
Without an access token you'll see the paste prompt — the auth gate works as designed. The PWA still installs cleanly. Add to Home Screen for the standalone install.
One PWA in daily production use inside a commercial cleaning operation. One pipeline behind it. A razor-thin client gathers reality from the field — photos, voice, and structured observations — and the shared pipeline converts it into durable, role-scoped operational records.
Capture should be the cheapest part of an operational system. A phone with a browser, a handful of structured fields, a tap to submit. The value is in conversion — turning unstructured field reality into queryable, durable, role-scoped operational data.
So: build the client thin enough to deploy as a Web App Manifest install on any phone or Chromebook. Build the pipeline once. The client stays disposable — when two capture modes turned out to share a workflow, they collapsed into one app without the pipeline noticing.
Photos, voice, and scribbled field reality enter at separate inlets, converge through one pipeline, and leave as structured, role-scoped records.
Each step is a small, focused stage. Capture modes can be added or merged at step one; the rest of the chain is reused untouched.
One PWA in daily production use across a distributed commercial cleaning operation. It started as two apps — a photo-and-observation capture tool and a voice-memo tool — that turned out to share a workflow. They were collapsed into a single client without the pipeline behind them changing at all.
Pick a site, pick the people involved, then capture whatever the moment calls for: snap photos, record a voice note, type an observation, or any combination. A mode control sets routing intent — operations submissions flow through the site/person dispatcher; personal entries route to a journal in a separate vault. The submission lands in CouchDB; the pipeline turns it into a timestamped section in that site's living about page in the operational vault.
Per-person bearer tokens with scoped site/person authorization. Tokens cached after first tap; Add-to-Home-Screen installs are first-class on iOS, Android, and Chromebook.
Without an access token you'll see the paste prompt — the auth gate works as designed. The PWA still installs cleanly. Add to Home Screen for the standalone install.
The client is disposable; the pipeline is the asset. Two capture modes merging into one app — with zero downstream change — is the proof. The shape generalizes: any new field-intelligence channel is another writer that drops its uploads and sidecar metadata into CouchDB and inherits transcription, extraction, dispatch, and projection for free.
The substantive engineering investment lives once, in the pipeline. Whether a new kind of field observation arrives as another mode inside Field Capture or as a separate tiny client, the marginal cost of capturing it collapses to a small amount of front-end work.
The pipeline source is open. The code behind ingest, transcription, extraction, and dispatch lives in the btq repository on GitHub.