AnuWorkWriting
Available
Ask me anything

Ask anything about Anu —
his work, skills, or experience.

Ask me anything

The Biggest UX Win on FilmFlux Wasn’t UI – It Was Caching

March 2026·6 min read

One of the biggest UX wins on FilmFlux didn't come from UI. It came from caching.

FilmFlux aggregates YouTube movie data, which means frequent database reads, API calls, and repeat visits for similar content. If every interaction hits the database, the product feels slow and costs scale quickly.

So I treated caching as core product infrastructure, not an afterthought.

Three-layer cache

I designed FilmFlux around a multi-layer cache. Each layer serves a different purpose, and together they mean most views resolve before a database call is ever needed.

1

In-memory cache

The first stop. Data lives in memory with short TTLs so in-session navigation feels instant.

2

localStorage cache

Persists across sessions. Each entry includes a timestamp and TTL, then restores into memory on app load.

3

Server-side rendering

SSR provides data on first paint so users see content immediately – no loading spinner on initial visit.

SSRMemorylocalStorageDatabase

Many views resolve before a DB call is needed.

Stale-while-revalidate

I use a stale-while-revalidate pattern. Cached data shows instantly. Fresh data is fetched in the background. Users get speed first, freshness second.

This means there's never a loading state for content that's been seen before – the app feels like it remembers where you left off.

Smarter TTLs

Not all data changes at the same rate. Trending and homepage rows use shorter TTLs. More stable collections live longer. This keeps content relevant without unnecessary database hits.

Prefetching for intent

When users hover routes or open the PWA, key data preloads. Often the data is ready before navigation completes. The system reduces both wait time and backend load.

The real impact

This caching system helps FilmFlux:

  • Reduce database load significantly
  • Lower API usage and cost
  • Minimise loading states across the app
  • Stay responsive as usage grows

Most users never think about caching. They just feel that the app is fast.

A takeaway

As a designer who builds, this reinforced something: performance is UX. Caching is product design. Some of the most impactful UX decisions live in architecture, not interfaces.

CachingPerformanceUXPWASSRArchitecture