← All work

2026 — now · LIVE · Sole engineer

SupaTags

A storefront that also runs the warehouse.

supatags.co.uk

Delivered under Rumination Labs

The problem

A UK school name-label brand needed two things that are usually two products and three vendors: a shop where a parent designs a sheet of labels in under a minute, and the fulfilment operation that turns that order into a booked Royal Mail parcel. Between them sits the part nobody demos — money that has already moved, and a warehouse that has to agree with the ledger.

Photo cutout, on the customer’s device

Parents upload photos of their children. Rather than ship those images to a server for background removal, the cutout runs in the browser: ONNX inference over WASM or WebGPU inside a dedicated Web Worker, with a custom alpha-matte refinement pass to clean the edges, a main-thread fallback for older browsers, and a kill switch. Two consequences, both of which mattered to the client — per-image processing costs nothing at any volume, and no picture of a child leaves the browser to be processed.

Money that cannot go missing

Payment is Stripe hosted Checkout over a two-phase order. The order is written `pending_payment` before the redirect and promoted to `paid` only by a raw-body, signature-verified webhook. Idempotency is enforced by conditional update rather than an event ledger, so a replayed webhook is a no-op instead of a duplicate. A lazy reconciliation endpoint recovers the order if the webhook never arrives at all. Refunds share a single code path for full and partial amounts, with a cumulative ratchet so that webhook replays and route races collapse harmlessly — and `refunded` is kept deliberately distinct from `cancelled`, which means an abandoned unpaid checkout.

Parcels, and someone else’s account

Shipping talks to Royal Mail Pro Shipping v4: OAuth2 client-credentials with token caching, shipment creation returning inline base64 label PDFs, pre-manifest cancellation, service discovery, and end-of-day manifesting. The account is shared with another platform, so every allocation is scoped to its own container — one system cannot claim the other’s shipments.

The admin floor

Orders, staged fulfilment, label booking, manifests, refunds, product and pricing catalogue, promo codes, and a switch that closes the storefront. Guest customers track their own orders through the order UUID used as a bearer credential, with PII stripped from the response. Row-level security is the boundary rather than a convention, and production and development environments are isolated with fail-closed environment detection.

Why it matters

It is the clearest evidence I have of the thing I actually do: technical depth (idempotent distributed state, third-party logistics, on-device ML, RLS as a security boundary), product sense (a design tool a non-technical parent finishes in a minute), and ownership — designed, built and shipped alone, taking real money, in under two months.

Surfaces

  • The SupaTags storefront: a headline about labels surviving what children do to them, a price from £10.99 a sheet, buttons into the Studio and the mixed sets, and a scrolling wall of finished labels in many colours and fonts. A review-and-customer-count badge is blurred.
    THE STOREFRONT — ONE PRICE, ONE WAY IN
  • The design studio: a full sheet of forty-eight labels rendered live on the left, and a numbered rail on the right for the name, text size and a choice of sixteen fonts, with the sheet price and an add-to-basket button pinned beneath it.
    THE STUDIO — FORTY-EIGHT LABELS, LAID OUT LIVE
  • The art section of the rail with four sources — icons, photo, AI and saved art — showing an emoji search over categorised swatches, above controls for the chosen icon’s size, rotation and white outline.
    ART — FOUR SOURCES, ONE PLACEMENT
  • The AI art panel: a free-text field for describing sticker art, four style chips for cute, bold, pastel and neon, a generate button, and a counter showing five of five free generations left today.
    GENERATED ART — METERED, NOT UNLIMITED
  • The admin overview in dark mode: tiles for orders today, revenue today, awaiting print, dispatched today and the share of the daily AI cap used, beside a recent-orders list and a needs-attention panel flagging orders awaiting a print file.
    THE FLOOR — WHAT MOVED TODAY, WHAT IS STUCK
  • The orders board, filtered by state across chips for paid, printing, dispatched, delivered, pending, refunded and cancelled, with a search field and a button to run the end-of-day Royal Mail manifest.
    EVERY ORDER BY STATE · MANIFEST ON THE SAME SCREEN
  • One order open: a four-stage production pipeline from print file to hot-folder to Royal Mail label to dispatched, with the second stage current; the designs in the order; a log of the emails sent for it; and a payment panel showing the subtotal, a double-up saving, delivery and a Stripe capture. The customer email and the payment reference are blurred.
    PRODUCTION — FOUR STAGES, ONE ORDER
  • Operations settings: a switch that closes the shop to customers with a plain description of exactly what closing does, delivery thresholds and rates, notification toggles carrying an honest “not active yet” badge, and the promo-code table beneath.
    THE SWITCH THAT CLOSES THE SHOP

Next

Taskeen Unity

Where an organisation keeps every case it has ever held.