Shopify · Consignment
Her-age Sell with Us — the consignment app was lying about statuses. We rewired it to the current Shopify API.
Sell with Us is Her-age's Shopify embedded app for consignment: application, moderation, catalog. The pipeline had broken — unstable scenarios, UI that did not match actual statuses. We rewrote the integration layer (GraphQL first, idempotent webhooks), put a DynamoDB consistency check and a versioned schema under it, restored queues and operator errors, and added Next.js tracking plus a European VAT module. Client cost −30%. We did not invent the UI design beyond tracking and forms.
- flows restored
- Stable
- client cost
- −30%
- Shopify API
- GraphQL
The UI was ahead of the truth
Application → moderation → catalog. That is the consignment path. Scenarios had gone unstable. Screens showed statuses the backend no longer kept. Operators could not trust the queue. The app still looked like a product. It was not behaving like one.
Rewire the layer, then the screens that tell the truth
Integration moved to the current Shopify API, GraphQL first, webhooks idempotent. DynamoDB got a consistency check and a versioned schema. Broken flows, queues and operator-facing errors came back. Next.js: application tracking with real statuses and timelines; a VAT tax module for Europe — price with and without tax, by jurisdiction; auto-fill in admin. Koa stayed in the Node belt. AWS: inventory the stack, consolidate components, drop the bill.
- Shopify GraphQL as the primary integration surface
- Idempotent webhooks; DynamoDB consistency-check, versioned schema
- Queues and operator errors restored
- Next.js tracking: statuses, timelines
- EU VAT: with/without tax, by jurisdiction; admin auto-fill
What we claim, what we don't
Stable work restored. UX better where we built tracking and forms. Client cost −30%. The look of the rest of the UI is Her-age's, not a ZNN invention. Distinct from the store redesign — that case is her-age. This one is the consignment app.
Technologies
- Shopify
- Next.js
- Node.js
- AWS
- Koa
Outcomes
- Broken consignment flows, queues and operator errors restored to stable work
- Better UX on application tracking (statuses, timelines) and admin auto-fill
- −30% client cost after AWS inventory and consolidating components
Recommended articles
Blog
The case for boring web stacks
TypeScript, Postgres and edge deployment are not exciting — they are how you still iterate fast in year three without rewriting the platform.
Blog
Shipping evals before prompts
Why we run regression suites on LLM outputs before every release — and how it changed our AI delivery cadence at ZNN.
Blog
Mobile release trains that do not break
Fastlane, staged rollouts and feature flags — a practical playbook from eighteen App Store submissions without a Friday-night rollback.
Recommended case studies
Luxury · Volume eDTL
The Brand Collector
The Brand Collector resells pre-owned luxury through a supplier network. Same class of problem as a catalogue feed — except each dump crossed 120,000 rows, and the CSV they hold sits above 169,000. Fastify stayed the orchestrator. The heavy compute moved to Go workers. About 60% faster on taxonomy, mapping and pattern-match at that volume.
iGaming · Platform
Casino operator · NDA
Under NDA we stabilised three production gambling brands: cleaned up legacy PHP/JS stacks, extracted shared modules, and shipped a new marketing site without stopping live traffic.
Marketing · Fintech
Digital DAO
Digital DAO is a marketing studio in Belarus that works mostly with fintech. We did not repaint the old site. We rebuilt the story and the visual system so it would sit in a room with banks, not with a carnival agency deck.