Case study 01 · Fintech · WordPress · Jul–Oct 2025
Kurv: a payments site rebuilt around how people convert
EMS was rebranding to Kurv. The brief was to make the website look modern. I led UX across design, development, content, SEO and product, reframed the work around the journeys that lead to a sign-up, and kept going after launch until the site was fast.
- On timeLaunched within the Jul–Oct 2025 window despite five teams and competing priorities.
- 3SEO-hostile CMS patterns caught in design review, before a line was built.
- 1.7sMobile load time (LCP) for real users. Core Web Vitals pass on mobile and desktop.
- EditableContent and SEO teams update copy through patterns, without waiting on engineering.
01 Context
A rebrand became the moment to fix everything the old site couldn't do.
EMS, a payments company, was rebranding to Kurv. The website had grown for years without a clear information architecture, and the rebrand was the catalyst to rebuild it on WordPress with Gutenberg.
Five groups had a stake in the result, the timeline was fixed, and everyone was also working on other priorities. My job was to keep the work moving: bridge design, development, content and SEO, flag problems early, and drive decisions when teams were blocked.
02 Problem
The brief said "make it look good." The real problem was that nobody could change the site.
Three problems sat under the visual brief:
- No structurePages had accumulated without an IA, so users had no clear path from interest to sign-up.
- Heavy on mobileVisually dense layouts performed poorly on small screens and slow connections.
- Locked for editorsContent and SEO teams couldn't update copy without engineering, so every change waited in a queue.
Visually appealing doesn't automatically mean the conversion numbers will follow.
03 Discovery
I mapped what a merchant needs to see and do before they convert.
Partway into the project it was clear we needed to hold two goals at once: a site that looked credible and modern, and one structured to move people toward action. I raised this with the designer and PM, and we mapped the primary user journeys before refining visuals.
We then ran a workflow review with the full team: designer, developers, content and SEO. It confirmed the structure made sense to users and surfaced patterns that would have caused problems later.
I also reviewed how other payment and fintech companies present themselves: full-page teardowns of Stripe, Global Payments, Heartland, Ramp and Mercury, plus seven fintech hero sections. Five patterns kept repeating, and each one shaped a section of the new homepage.
04 Insights
The bottleneck wasn't the design. It was everything around it.
- Journeys before visuals.Visual refinement works best as a layer on top of a structure that already answers "what do I need to see to sign up?"
- Editors are users too.If the content and SEO teams can't update a page, the site goes stale the week after launch.
- Desktop-clean isn't mobile-safe.Several layouts that looked tidy at 1440px broke at tablet and phone widths.
05 Opportunity
Rebuild around journeys and editor autonomy, not just a new skin.
How might we launch a site that looks like Kurv, guides merchants to a sign-up, and that the content and SEO teams can keep updating without filing tickets?
06 Solution
Three decisions shaped the build.
- Decision
- Hard-code heroes and one-off promos. Build anything editors touch often as a Gutenberg pattern.
- Why
- Not everything could be flexible in the time we had. This rule protected the launch date without creating a content bottleneck.
- Trade-off
- Hard-coded sections need a developer to change. We chose them on purpose, and the whole team knew which ones.
- Decision
- Fix three SEO-hostile CMS patterns in design, not after launch.
- Why
- The workflow review showed these patterns would have hurt how pages were indexed. Fixing them in Figma cost hours; fixing them live would have cost weeks.
- Trade-off
- A few layouts lost some visual flourish to keep headings and content crawlable.
- Decision
- Solve responsive problems in short three-way sessions: designer, developer and me.
- Why
- Faster than handoff ping-pong, and developers understood the intent when they hit edge cases on their own.
- Trade-off
- More meetings early, far fewer surprises in staging.
07 System
Patterns for editors and an asset spec for everyone.
The Gutenberg pattern library became the site's design system for the people who'd maintain it: consistent output, with room for content and SEO teams to edit copy. Every image and icon also passed one checklist before reaching developers.
| Check | Rule | Why it matters |
|---|---|---|
| Dimensions | Sized for its slot, not the original upload | No downloading 3000px for a 600px card |
| Format | WebP where supported | Smaller files at the same quality |
| Alt text | Describes purpose, empty for decoration | Screen readers and image search |
| File size | Within the budget for that page type | Protects LCP as content grows |
08 Build
Launch revealed what staging didn't, so I kept going.
I ran daily check-ins with developers: which pages and patterns were due that day, what would be hard-coded, and what could wait for a post-launch pass. Before sign-off I checked each layout with the designer for image dimensions, icon formats and component behaviour at every breakpoint.
After launch, real traffic showed pages loading slower than acceptable. On blog posts, LCP was dragged down by large featured images that added little to reading an article.
- Decision
- Remove the featured image from single blog post templates.
- Why
- It was the LCP element and it wasn't earning its weight. This was a design decision as much as a performance one.
- Trade-off
- Less visual on post pages. Readers get to the content faster.
We also re-compressed every image, wrote the asset spec above so the problem wouldn't come back, and reworked several patterns to give editors more freedom.
09 Results
A site that launched on time, is fast for real users, and stayed editable.
- Jul–Oct 2025Delivered on schedule across five teams.
- PassedCore Web Vitals for real users, on mobile and desktop.
- Editor autonomyContent and SEO teams update copy through patterns, without engineering.
| Measure | Mobile | Desktop |
|---|---|---|
| LCP, real users (last 28 days) | 1.7s · Passed | 1.0s · Passed |
| LCP, lab (simulated Lighthouse run) | 8.6s | 0.8s |
| Lighthouse performance score | 63 / 100 | 97 / 100 |
Real users load the largest element in 1.7 seconds on mobile, well inside Google's 2.5-second threshold. The lab number is much worse because Lighthouse simulates a slow phone on a throttled connection. I read that gap as headroom, not a failure: it shows what still costs time on slower phones, and it's where I'd look next.
10 Reflection
What I'd take into the next project.
- 01
Looking good and converting are different goals.
Keeping that tension explicit, instead of assuming one implies the other, produced a better site than either direction alone.
- 02
Make constraint-driven trade-offs on purpose.
The hard-coded vs. pattern rule was a response to the timeline. Deciding it deliberately meant the whole team owned the trade-off instead of discovering it after launch.
- 03
Post-launch is part of the design process.
The performance issues weren't failures. They were data, and acting on them is what made the site perform.