Used photography equipment store

Fotobazoš.cz

  • React 18 (SPA)
  • PHP 8.3 (REST API)
  • Custom JWT authentication
  • SQL - pessimistic row locking (SELECT … FOR UPDATE)
  • Procedurally generated SVG
Fotobazoš.cz catalog - product cards with procedurally generated SVG badges instead of photos

Audit

A store for unique items, built from scratch: no old website to redesign and no existing platform. Off-the-shelf solutions such as Shoptet or WordPress were out of scope because they add overhead and cannot support the custom business logic this kind of store needs. The brief called for maximum performance, administration manageable by someone with no technical background, and certainty that one unique item cannot be sold twice.

Optimization

A custom e-commerce solution built from scratch: high speed, no unnecessary data overhead, and transactional certainty.

Architecture

The frontend is a custom React 18 SPA and the backend is a clean PHP 8.3 REST API, without a cumbersome framework that would only add overhead a used-goods store with unique items does not need. Each layer does exactly what it should and nothing more.

Zero-image catalog

The catalog loads not a single product photo. Instead of JPEG/PNG, it generates a procedural SVG vector for each item: a badge that parses the product name on the fly and displays its key parameter (58 mm for a lens, 64 GB for a memory card). The result: the card renders instantly, without a single network request for an image.

Fotobazoš.cz catalog - product cards with procedurally generated SVG badges instead of photos

Cart and Pessimistic Locking

The store sells unique items: two customers cannot buy the same item. The cart therefore runs in an atomic database transaction with row locking (SELECT … FOR UPDATE): once one customer locks an item, a second query for the same row waits until the transaction closes. The race condition when a unique item sells out is thus solved at database level, not by guarding it in application logic.

Custom admin and JWT infrastructure

The admin area uses custom JWT authentication in native PHP 8.3, without heavy Composer dependencies. The order overview retrieves data in one aggregated query instead of a separate query for each order (the N+1 problem), so the admin remains fast as the number of orders grows. It also includes a honeypot against bots and client-side idempotency (UUID v4) against duplicate order submission.

Measurement

The scores are Lighthouse measurements for mobile and desktop. There is no before-and-after comparison because no prior version existed.

Technical quality

Performance

100 desktop / 97 mobile

No BEFORE: the website was built from scratch, so no old version exists for comparison.

Accessibility

100

Mobile and desktop are the same.

Best Practices

100

Mobile and desktop are the same.

SEO

100

Mobile and desktop are the same.

Agentic browsing

3/3

Mobile and desktop are the same. Website readiness for AI assistants.

Catalog data savings

0 image requests

Instead of photos, product cards render procedural SVG, so the catalog loads without a single network request for an image.

As a complete beginner, I needed an online store that would be very simple to manage and would not distract me from selling. The result exceeded my expectations. The system is remarkably fast, order management is completely intuitive, and everything works flawlessly without me having to deal with technical complexity. Precise and professional work.

Fotobazoš.cz - majitelka

Want a similar result?

I want an audit of my website
Next case studyNemovitosti na Jadranu →Real estate portal for Istria

Get in touch.

Tell us what is bothering you - the website, manual work, or both. Within 24 hours we will get back to you with a concrete proposal.

Prefer email? business@kypyx.cz