Loyalty & Members · Member Portal
Build a loyalty home from composable blocks, themed automatically from your Brand Kit, and embed it into Shopify or any site with single sign-on. A real owned property — not a third-party widget dropped into a corner.
Points balance
2,480 pts
The problem
A pop-up that looks like everyone else's tells members the program is bolted on, not part of your brand.
Sending members to a vendor's URL fragments the experience and leaks the relationship off your property.
Getting a hosted widget to truly match your colors, type and voice usually means a development project.
How it works
Lay out the portal from a registry of self-contained blocks — each Zod-validated with a schema-version migration hook — then let Flash derive the entire color, type and spacing system from your Brand Kit.
Drag-composable blocks
~20 self-contained block types, each Zod-validated.
Themed from your Brand Kit
~37 --portal-* CSS variables, derived — not hand-set.
Text-on-primary is auto-computed by WCAG contrast ratio — readable on any brand color.
Points balance, tier progress, coupon wallet, receipt upload, rewards exchange and more — no code.
Stored blocks are upgraded before validation, falling back to safe defaults — so a config never breaks the page.
Each block fetches its own member-scoped data through dedicated hooks, so the portal is always current.
Embed & SSO
The portal embeds inside Shopify via App Proxy and into any enterprise site via an iframe with signed-JWT SSO. Because App Proxy strips cookies, Shopify auth is cookieless and verified per request; the embed token rides in memory to dodge third-party-cookie blocking. Both paths share one enrollment core, so identity fusion and consent behave identically.
SSO is implemented and tested, but final sign-off is gated on staging verification against real domains — confirming App Proxy cookie-stripping and that each embedded sub-request carries its signature. Available to embed; we don't yet claim it as production-proven at scale.
Shopify App Proxy (cookieless, hex-HMAC, unforgeable stamp) and enterprise embed (per-client HS256 JWT, 10-minute max age, in-memory Bearer) both call the same enrollment core.
Why it's different
Widget-centric loyalty is fast to install but hard to make VIP-grade without custom work. Flash runs on your domain, builds from blocks, themes from tokens, and embeds via SSO — white-label by default, by design.
Typical approach
Pop-up loyalty widgets
Drop a generic panel in the corner; full white-labeling needs custom work.
Flash, by design
Your domain, block-composable, themed from your Brand Kit out of the box.
Typical approach
Off-domain hosted pages
Send members to the vendor's URL.
Flash, by design
Runs on your own domain and embeds into Shopify or any site via SSO.
Typical approach
Fixed-template member pages
One layout, take it or leave it.
Flash, by design
~20 composable blocks with schema-version migration — rearrange without code.
Engineering value
No AI buzzwords on this page. The portal earns its keep through correctness: a deterministic theming function, contrast-safe defaults, and a security-hardened embed path.
A pure function derives ~37 CSS variables from your brand — same input, same portal, no surprises.
Text-on-primary and text-on-error are auto-computed by WCAG contrast ratio, so brand color never costs readability.
Unforgeable Shopify proxy stamp, short-lived per-client JWTs, and auth-failure signals on leaked tokens.
Members get a loyalty home that feels like yours — on your domain, in your brand, wherever your traffic already is.
~20 blocks
compose the page without code
~37 tokens
brand theming derived, WCAG-safe
Two SSO paths
Shopify App Proxy + signed-JWT embed
Bring your Brand Kit — watch the portal theme itself, then drop it into a Shopify or enterprise embed.