Hire on Upwork only. No direct contact, please. I work exclusively through Upwork →
SLSadaf Labs
All projects

Frontend, Performance, React

A kanban that loaded in 28 seconds, fixed

Pagination, streaming, and memoization on a board that was scanning every case in the tenant.

Client

Compliance SaaS, EU

Duration

1 sprint

Year

2026

The problem

The flagship kanban view fetched every open case for the tenant on first paint, ran them through several map and filter passes, then rendered all columns at once. On real tenants that meant 28 seconds to interactive, frozen drag and drop, and a CloudWatch graph that looked like a denial of service attack on the read path. Users assumed the product was broken.

The solution

Replaced the bulk fetch with a per column query that pulls the first page of cards and a Show 10 more control for the long tail. Streamed columns into the UI as they arrived rather than waiting for the slowest one. Wrapped card and column components in React.memo, lifted selectors with useMemo, and stabilized event handlers with useCallback so a drag inside one column no longer re-rendered the others. Verified with React Profiler and a synthetic tenant of 5000 cases.

Architecture

Kanban load, paginated and streamed

Stack

ReactNext.jsTypeScriptDynamoDBAWS LambdaReact Profiler

Outcomes

from 28 s to under 2 s

Initial board load

−85 percent

DynamoDB read units on the page

from hundreds to single digits

Re-renders per drag

Want something like this?

More case studies on the projects page.

See all projects