io.gf.cx/found return-label pipeline (parked sketch 2026-05-28)

DARE.CO.UK · PARKED SKETCH · 2026-05-30

Mirrored from ~/.claude/.../memory/parked_sketch_io_found_return_label_pipeline_2026-05-28.md. This is a design sketch parked for future build — read for context, not as a current deliverable.

How a finder triggers a prepaid postage label after scanning a /found/ QR. Three-rung automation ladder — start manual (rung 0), graduate to form+EasyPost+Resend (rung 1) on first real return, then OCR/conversational (rung 2) at higher volume. Builds on existing pirate-ship sketch which already lands on EasyPost as the vendor.


The user-facing promise (shipped 2026-05-28)

Copy on https://io.gf.cx/found/ + every /found/ page now reads: “prepaid postage label sent on request so the return ships at no cost to you.” Finders are invited to include their return address in the first contact email so the label can be generated and sent back to them.

The automation behind that promise has three rungs.

Rung 0 — manual (current state)

Effort per return: ~5 min · acceptable at volume 0 (no real items in the wild yet)

Rung 1 — form + auto-label (build when first real return happens)

GET  /found/<slug>/return-label         → form page
POST /found/<slug>/return-label/submit  → calls EasyPost, emails finder + Dan

Form fields: - Finder name - Return address (street · city · state · zip · country) - Estimated dimensions (LxWxH inches) - Estimated weight (oz / lb) - Optional: photo of item next to a ruler for size-check

Worker flow: 1. Validate inputs · captcha (Cloudflare Turnstile · already in CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF stack) 2. POST to EasyPost /v2/shipments with from = Dan’s address, to = finder’s, parcel = supplied dims 3. Buy the cheapest USPS rate (Ground Advantage or Priority depending on size) 4. EasyPost returns label PDF + tracking number 5. Email PDF to finder via Resend (already wired in stack) 6. Send receipt email to Dan with tracking + finder details 7. Log to KV: /found/<slug>/return-label-issued: {timestamp, finder, tracking, cost} for owner audit

EasyPost token: op://Code Shared/EasyPost API/credential (path reserved in the pirate-ship sketch; matches the gf.cx 1P convention)

Effort to build: ~3–4 hr (form + Worker handler + EasyPost call + Resend email + KV write) Per-return cost: carrier postage (typically $5–10) + $0.005 EasyPost call

Resume trigger: first real return happens, or Dan notices spending >10 min/wk on manual label generation

Rung 2 — OCR / conversational pre-fill (later)

When volume crosses ~6–10 returns/yr, add: - Phone photo upload — package on kitchen scale + ruler - Vision-LLM extracts weight from scale display + dimensions from ruler-relative measurements - Form pre-fills · finder confirms with one click - Lower-friction, fewer manual entry errors

Effort to build: ~8 hr on top of rung 1 Resume trigger: rung-1 form gets >5 abandons or has frequent weight/size errors

Boundary considerations

Cross-references

Source: parked_sketch_io_found_return_label_pipeline_2026-05-28.md · Rendered 2026-05-30 14:32