photos.gregstoltz.com
Without an access token you'll see the paste prompt — the auth gate works as designed. The PWA still installs cleanly.
Two PWAs in production. One pipeline behind them. Razor-thin clients gather reality from the field; the shared pipeline converts it into actionable structure.
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 clients thin enough to deploy as a Web App Manifest install on any phone or Chromebook. Build the pipeline once. Add new clients by writing another tiny PWA pointed at the same shared backbone.
Each step is a small, focused stage. Adding a new client adds another writer at step one; the rest of the chain is reused.
Ten active users. A photo + audio + structured-observation PWA used daily by B&T Building Services area managers and supervisors. Pick a site, pick employees, snap photos, optionally record a voice note, submit. The submission lands in CouchDB; the pipeline turns it into a timestamped section in the site's living about page in the operational vault.
Per-person bearer tokens with scoped site/person authorization. Tokens cached in localStorage after first tap; Add-to-Home-Screen installs are first-class.
Without an access token you'll see the paste prompt — the auth gate works as designed. The PWA still installs cleanly.
A sister PWA. Same pipeline. Same Web App Manifest install pattern. A mode toggle at the top picks routing intent: operations memos route through the site/employee dispatcher; personal entries route to a journal in a separate vault.
Operations mode captures site, employees (grouped by site with the selected site jumping to the top of the picker), geolocation, optional typed note, and audio. Personal mode collapses to just audio and a note.
Same paste-prompt-on-no-token behavior as Field Capture. Add to Home Screen on iOS or Android for the standalone install.
Two PWAs sharing one pipeline is a proof of concept, not a finish line. The shape generalizes: any new field-intelligence channel is a fourth client that writes to its own CouchDB database, drops sidecar metadata alongside its uploads, and inherits transcription, extraction, dispatch, and projection for free.
The substantive engineering investment lives once, in the pipeline. The marginal cost of capturing a new kind of field observation collapses to writing a small PWA.