Kova Checkout

A rebuilt checkout for a B2B supplies shop that loads in about a second and stopped paging the engineers on call.

client

Kova Supply

role

Lead engineer, front end

year

2025

stack

Next.js · Stripe · Playwright

Hands holding a payment card in front of a laptop

01 / problem

Kova Supply’s checkout was a five step form on top of a cart service written in 2015. It took 2.8 seconds to load at the 95th percentile, broke whenever the payment provider changed a field, and woke someone up most weeks.

02 / approach

I rebuilt it as one Next.js route whose steps render on the server, moved card entry to Stripe’s Payment Element and covered every step with Playwright tests that run against a staging copy of the cart. The old flow stayed live behind a flag until the numbers were clear.

03 / outcome

The new checkout shipped in six weeks. Load time at p95 dropped from 2.8s to 1.1s, conversion rose 9% in the first quarter, and nobody on call has been paged about checkout since launch.

1.1s

p95 load time, down from 2.8s

+9%

Checkout conversion in the first quarter

Close-up of a card held over a laptop keyboard
A plain cardboard shipping box on a white table

© 2026 Teodor Halvik. Built in Rotterdam.

© 2026 Teodor Halvik. Built in Rotterdam.

Create a free website with Framer, the website builder loved by startups, designers and agencies.