Skip to content

All projects

2026 · Archive · Car parts store

Avtobamper

A storefront for a car body-parts shop, recovered from a company that had shut down and made runnable without its API.

  • Next.js 15
  • React 19
  • styled-components
  • Redux Toolkit
  • SWR
  • Docker
  • GitLab CI/CD
pages checked in the responsive pass
20
widths, from 280 to 2560 px
15
assertions on every page and width
5
timeout before the offline fallback
4 s

What I walked into

The company behind the storefront had shut down and its API was gone, so the pages had nothing to render.

The archive was desktop only, with width media queries in 15 of 136 styled files.


What I changed, and why

  1. One offline seam

    The fallback lives in exactly one file, offlineFallback.service.ts: the live call races a 4-second timeout and logs which endpoint went missing.

  2. One path for everything

    Server rendering, client pagination and the vehicle picker all share that single fallback path.

  3. Eight bands, measured

    The rebuild covers eight bands, verified by loading the production build into a resizable iframe.

A responsive rebuild verified by measurement: 20 pages, 15 widths, 5 assertions each.

Where it landed

The storefront runs without its API, falling back per endpoint and logging what went missing.

The layout covers eight bands, checked on 20 pages at 15 widths from 280 to 2560 px against 5 assertions each.