All work

React · TypeScript · Node.js · Express · PostgreSQL · Shopify

PRO Points Loyalty Program

End-to-end loyalty system that lifted online sales +50% in six months

+50%

online sales in 6 months

10,000+

customers per brand

2,600+

SKUs served

Problem

Two storefronts — 637 products, 2,600+ SKUs, 10,000+ customers per brand — had no retention mechanism of their own. Repeat purchases depended entirely on paid channels, and any loyalty system had to survive real-world failure modes: double-submitted redemptions, webhook retries, and concurrent earn events could not be allowed to double-credit or double-debit a customer's balance.

Approach

  1. Modeled the points ledger in PostgreSQL as append-only earn/redeem transactions, so every balance is derivable and auditable rather than a mutable counter.

  2. Built the earn/redeem API in Node.js/Express with idempotency keys on every transaction, making webhook retries and duplicate submissions safe by construction.

  3. Wrote the customer-facing loyalty UI as React/TypeScript widgets embedded in both Shopify storefronts, sharing one component set across the two brands.

  4. Wired storefront events (orders, signups, reviews) into the earn pipeline and launched redemption at checkout across both brands.

  5. Instrumented the flow end-to-end so balance disputes could be traced to a specific transaction rather than reconstructed by hand.

Architecture

Results

  • +50% online sales lift in the six months post-launch across both storefronts.

  • 10,000+ customers per brand earning and redeeming against a single consistent ledger.

  • Zero double-credit or double-debit incidents — idempotent transaction handling absorbs webhook retries and duplicate submissions.

  • One codebase serves both brands: 637 products and 2,600+ SKUs run through the same earn/redeem API.