A badly rendered logo doesn't read as a small flaw. It reads as a program not worth trusting.
I created one system that let 10+ airline and bank partners send on-brand email without a designer touching it.
The old template broke in Gmail, was illegible on mobile — where most opens happen — and couldn't flex across 10+ retail, airline, and bank partners. Every campaign meant choosing between speed and quality.
I rebuilt it as one fluid template with tiered modules — not four separate ones — so a marketer could launch a campaign without a designer touching it.
Role
Principal Product Designer
Status
Shipped2025-26
Type
Design SystemEmail
Tools
FigmaEmail on AcidMovable Ink
Problems
Email is a member's first contact with merchant offers in the program, and on mobile — where most opens happen — it rendered broken and illegible. Too many buttons overwhelmed the user, Merchant logos, the primary content, rendered poorly; cropped, stretched, or invisible on dark mode — which made the whole program look unreliable.
Ten-plus partner brands broke the system under real content.
Every send needed a designer to patch rendering, which slowed delivery.
Solution
One fluid template, 375–600px, replacing four separate templates.
Defined tiered modules and a strict image/button spec that map to code.
Focused on marketer self-serve over designer-touch completeness.
Built a logo theming system with fallback logic and a dedicated dark-mode treatment so marks render cleanly on any background.
Results
Adopted across 10+ partner programs.
550 unique emails built on the system, Jan–Jul 2025.
168.4M sends delivered, 1.7M clicks generated.
150% sales lift on mobile sends.
Zero logo-rendering escalations after rollout.
Final screens
Before
After
Scroll to see more ↓
Full email send, merchant offers
Before
After
Individual merchant module
Process
Setting the scene
Desktop-first, shipped to a mobile audience.
Shop-and-earn programs sit between two businesses: a partner, an airline or bank who offers the program as a retention channel, and the 1,100+ retailers who pay for it as an acquisition channel. A member clicks from the partner's portal to a retailer and earns miles or points on the purchase. Email is where they first see those merchant offers — the send either earns a click or gets deleted. This email design system needs to power three email sends a week across 10+ partner programs.
The problems were daunting. On mobile, where most opens happen, every offer got a full-width button — so nothing was prioritized and nothing got noticed. Type scaled down to about 12px, so offers and earn rates weren't legible. Merchant logos shipped as fixed 120×60 rasters with a white background baked into the file: clipped, low-resolution, and impossible to theme, so they rendered poorly, cropped, stretched, or invisible on dark backgrounds. With a logo and a number and nothing else to look at, a scrolling thumb had no reason to stop. Ten-plus partner brands broke the system under real content, and every send needed a designer to patch rendering before it could go out.
Why email is a different medium
Email members are 10x more valuable than average members, and the channel returns $36–$42 for every dollar spent — but it runs on some of the least modern tooling. Every email still renders inside decades-old constraints: layouts are built with HTML tables, not flexbox or grid; styles have to be inlined rather than written once in a stylesheet; and Outlook on Windows renders email using Microsoft Word's engine, not a browser — no flexbox, no CSS grid, and unreliable support for basic things like rounded corners or web fonts. Any design has to be built for that lowest common denominator first, then layer up for clients that support more.
The foundations
One system, built to hold real content and real logos.
I explored solutions: trimming copy and images on the existing structure was the fastest to ship, but it treated symptoms, not the container — it would have bought a year before the same problems came back. I rejected keeping separate mobile and desktop templates outright: it doubles creative production per client, and every fix has to be made twice, which is exactly the divergence that caused the rendering bugs in the first place.
Instead, I defined one fluid template, 375–600px, built from tiered modules: real product imagery where it earns its space, more offers in the same scroll where it doesn't, and one consistent anatomy underneath so repetition reads as rhythm instead of noise. Not four modules — one. Standard is the base; Marquee and Bulletin add a merchandise image; Tier 4 drops the offer entirely — four priced tiers from a single component, at a fraction of the dev lift. Each module is built as one flexible container that expands from mobile to desktop, keeping content fixed and legible at any viewport size.
But I also had another big problem. The primary content of the email is merchant logos, and the existing merchant logo database of 1,100+ logos was full of broken, cropped, or invisible-on-dark-mode renders that included a white bounding box in their export. They looked horrible and made our emails look untrustworthy. I pushed to rebuild it from the existing SVG library dev already maintained on-site, using an AI automation pass to export clean, email-safe transparent PNGs. That gave every module a logo that renders cleanly on any background, which is what made theming, dark modules, and the circle affordance possible everywhere else.
A closer look
Module 1: Merchant offer, with image
The top of the send and the most expensive placement on the rate card. It has one job: earn attention in the first three seconds.
Before
After
1
2
3
4
1Full-width image at a fixed 502×272 — one spec, enforced across every partner send.
2The old logo shipped small and illegible on a fixed white rectangle; the new one is a clean SVG-to-PNG export, crisp and email-safe at any size.
3No button anywhere — the entire module is the click target.
4An EXTRA tag replaced the striped bar that used to compete with the button for attention.
Module 2: Merchant offer, without product image
The tier that carries most sends. The old one left empty space below every offer; the redesign uses a fixed height that always looks full, so roughly three fit where one used to.
Before
After
1
2
3
4
1Transparent logo on a circle — the affordance that replaced the button.
2No unused containers — height is fixed for consistency but never renders half-empty the way the old one did.
3Roughly three fit in the space one old module took.
4The promo code finally gets real emphasis instead of being buried.
Module 3: Merchant logo only
A compact, image-free grid for long-scroll sends — no offer copy, no dates, nothing to go stale. Structurally it's Standard with the offer stripped out: same component, less content, so imagery is never required for a module to hold up.
Before
After
1
2
3
4
1Six merchants in the height of two old offer modules — twenty brands in a send instead of six.
2No copy, no dates, nothing to go stale — the logos carry it, and they only work because they're finally sharp.
3No buttons — each tile is a full tap target, so it stays thumb-friendly at grid density.
4Structurally it's Standard with the offer stripped out — same component, less content.
A bonus tracker should track the bonus.
Members earn a "bonus" in their program's currency for hitting a spend threshold within a promo period, on top of their regular loyalty earnings — the tracker's job is to emphasize the bonus amounts and let members know, at a glance, what they've earned. Marketing wanted the spend amount to lead — that's how bonuses had always been presented. I wanted the bonus miles to lead because that's the number a member has already banked; it's proof of progress, not a demand. Gamify what a member has already earned and they keep going; lead with what they still need to spend and it reads like a bill. The debate turned out to be about hierarchy, not content — earned miles take the headline; the spend amount sits right beneath it, phrased as the next action.
Spend-led
What you still need to spend leads.
Earned-led — shipped
Progress leads; the spend sits right beneath.
Progress that motivates, not just informs
Email can't rely on hover or tap states, so nothing sits behind an interaction — earned miles, three tiers and their rewards, and the next action all show at once, in one small card.
Tier 1 earned
Credits the win, then names the next tier.
Tier 2 earned
Checkmarks make progress feel permanent.
All three earned
Drops the threshold, keeps the invitation.
Theming
Same modules, tons of theming options
The system I built has a structure flexible enough to stretch across a huge variety of promotional and campaign needs with just a simple image or color swap — theming at the base level, so seasonal work doesn't mean maintaining a separate template for every holiday. Colors and imagery live as tokens on the module, not hardcoded — so a campaign moment is a retheme, not a rebuild. Creative drops in a hero image and swaps one hex value; the module handles the rest. No dev ticket, no rebuild. Emails can be themed for black friday, holiday, or any theme creative wants with an easy switch. Every campaign moment used to require custom creative and a designer in the loop for every send; but now one image and a hex value switch with no designer involvement at all, creates an entirely custom experience.
Valentine's Day
Winter bonus
ALL THE MODULES, MULTIPLE CLIENTS
Same system, different brand.
Same modules, same anatomy, same code — only the palette, logo, currency, and tone change per partner. A fix made once lands across every client; a new partner onboards onto something that already works; and every partner we add launches faster than the last. That's the difference between ten templates and one system.
Scroll
UNITED AIRLINES
Scroll
AMERICAN AIRLINES
Results
Results
I took the buttons off. Clicks went up.
The whole redesign shipped together, measured live against the existing template across two United campaigns and four send dates — 610,000 recipients, 27% of sends. Click-through, click-to-open, and shop rate all rose against the control, while deliverability, spam complaints, and unsubscribes held steady. It became the standard for rewards email across every client, and American asked when the site would be more like this.
168.4M
sends delivered on the new system
550 unique emails, Jan–Jul 2025
Can this retheme by Friday?
It's already live
one system, 10+ client brands
Retheme by token, not by rebuild
1.7M
clicks generated
Without touching deliverability or unsubscribes
10+
client brands sharing one system
610K+
members reached in validation
10x
more valuable, engaged members
550
unique emails built on the system
Learnings
Cosmetic and structural aren't opposites.
The logo fight was the one I couldn't afford to lose quietly. Dev called it cosmetic; I argued trust — a merchant logo that renders broken is the first thing a member sees, and it makes the whole program look unreliable. When that argument stalled, I brought a fix, not just a complaint: an AI automation pass on the SVG library dev already maintained on-site, exporting clean, email-safe transparent PNGs. Removing the "this is a big lift" objection is what got it approved.
Winning that fight is what made the rest of the system possible. A logo that renders cleanly on any background unlocked theming, dark-mode modules, and the circle affordance — and turned what started as a mobile-rendering fix into a real design system, not a one-time patch.
The other constraint was scope: collapsing four templates into one only holds up if every tier maps to a strict image/button spec that translates directly to code. Without that discipline, "one system" is just one more thing a designer has to babysit by hand on every send.
None of it shipped on conviction alone. Measuring the redesign live against the existing template, across real campaigns and send dates, is what turned the sales lift and click data into an argument the business could stand behind.