One bookmark for everything that needs printing across the gf.cx and dogwood stacks. Small to super-large β 50mm QR labels, A1 service-design maps, 48-inch photographic prints, dogwood-branded apparel and cards. Each tab below is its own pipeline: local printing for the small stuff, partner-API ordering (Pwinty, Prodigi, Printful) for the wide-format and POD work. Live tabs ship; planned tabs show their roadmap so the scope is visible at a glance.
BRAND_REGISTRY in ~/Code/svc.gf.cx/src/index.ts. Scheme: 1xxx vehicles Β· 2xxx outdoor power Β· 3xxx tools Β· 4xxx leisure. URL hint off = label shows brand only β the QR carries the URL. Roadmap: per-label scan trace + aggregated analytics (sketched in panel below).
/api/records; filter by shipment via the Manifest dropdown. URL hint off = label shows brand name only, since the QR carries the URL β cleaner on small physical surfaces. Roadmap: per-label scan trace + aggregated analytics (sketched in panel below).
Non-record-keyed branded printed assets. Different from svc/found tabs (which need a record to render a label) β this is for generic brand output: Dogwood logo stickers (vinyl, 50mm round, for laptops / mailers / promo), gf.cx kicker stickers, audrey monogram seals, Dogwood retail hang-tags (T-shirt / tote / postcard tags with brand + size + price + care), gift labels, custom-art one-offs.
Workflow: pick an asset type β pick a template β fill in fields (where applicable) β live preview β print local or order POD.
assets.gf.cx/stickers/ + assets.gf.cx/hang-tags/ β SVG masters with per-template metadata (suggested sizes, paper type, intended use). New templates added by dropping SVG + metadata into the library.Prodigi svc.gf.cx APIWide-format printed references pinned in the workshop / utility room / panel cupboard. Each map is a spatial or relational diagram of a system you need to reference while your hands are dirty β service network with vendor contacts, electrical-panel circuit map, irrigation zone schematic, MVHR airflow diagram, lawn-equipment maintenance flowchart.
A1 paper (594 Γ 841 mm) is the sweet spot β large enough to read from across the room, small enough to fit on most workshop walls without dominating. A3 / A2 / Letter fallbacks for smaller spaces.
svc.gf.cx/maps/z665-service-network, pa.gf.cx/electrical/panel-map). Map registry in maps/index.json per Worker. Diagrams version-controlled in git alongside the data they describe.Selected images from the Audrey photo library and the gf.cx / pa.gf.cx / audrey-archive substrates β photo-grade print partners for fine-art paper, canvas, framed, metal, acrylic. Scale ladder: 8Γ10β³ desk-print Β· 11Γ14β³ small wall Β· 16Γ20β³ standard wall Β· 24Γ36β³ statement Β· 36Γ48β³ centerpiece.
This is the highest-quality-bar tab on the cockpit β color reproduction, paper choice, ICC profile matter. Browser-side soft-proofing before commit prevents the "print arrived wrong color" round-trip.
r2://gfcx-print-masters/. Per-image sidecar JSON: native aspect ratio, recommended max size, ICC profile, color notes, photographer/era tags. Curated subset of the broader Audrey library (only print-grade images live here).Prodigi svc.gf.cx API) Β· sandbox first via sandbox.gf.cx/print/ Β· drop-ship direct to recipient. Alternative partners pluggable per-image: Whitewall (gallery-grade fine art, manual upload), Bay Photo (US Pro), Theprintspace (UK, used previously for dare.co.uk).feedback_prodigi_color_spec_2026-XX-XX.mdExisting Dogwood / audreyinc product surface β T-shirts, totes, sweatshirts, postcards, greeting cards β managed through this same cockpit instead of jumping between vendor dashboards. Print-on-demand workflow with no inventory, no fulfillment overhead.
Partner candidates already wired: Pwinty / Prodigi (Dogwood account, API enabled β credential in 1P as Prodigi svc.gf.cx API). Alternatives to evaluate: Printful (broader catalog, slightly higher cost), Printify (multiple supplier-network, lowest cost / variable quality).
Pre-print and post-stick instrumentation. Each rendered label already carries data-qr-url + data-tag-id + data-tag-slug attributes so future scripts can hook in without touching the render code. Today's Test β button is the manual entry point β opens the first label's URL in a new tab for an eyeball check. Below is the planned arc.
data-qr-url in the active tab (HEAD request, sibling-origin so CORS is open) β render a colored dot on each label (β green = 200, β amber = 3xx, β red = 4xx/5xx/network). Pre-print sanity check that no label ships pointing at a 404. ~2 hr.pa.gf.cx/service-records/ β could live at labels.gf.cx/analytics/ or merge into the operator dashboard. ~6 hr after trace lands.data-qr-url = the URL the QR encodes Β· data-tag-id = svc numeric id where applicable Β· data-tag-slug = canonical slug. validateTab(tabId) is the seed function β extend to validateAllTabs() + traceScan(tagId) + analyticsForTag(tagId) as each feature lands.