Polyakov Barber.
- Client
- Fedya Polyakov, private barber — Prague, Karlín
- Role
- Design & Development
- Stack
- Vite · React 19 · TypeScript · Tailwind v4 · Framer Motion
- Year
- 2026
- Status
- Livepolyakovbarber.cz
A premium one-man barbershop site in Prague. Craft, not conveyor: one client at a time, film-grain black-and-white photography, and a haircut that happens as you scroll.

Overview
Fedya works alone — one chair, one client, no queue. The site has to say that before a single word is read, so the layout is built around one photograph at a time and a lot of empty black.
Booking runs through Altegio: the widget opens in a modal iframe, so client data never touches my code and the page keeps a strict CSP. Services, durations and prices from 400 to 3500 Kč live in one file that feeds the price list, the booking labels and the structured data.
Three languages (CZ / RU / EN), HairSalon JSON-LD, a sitemap and production-grade security headers. Nothing here is a template: the type, the grain and the scroll choreography belong to this one barber.
The complete site runs inside this portfolio — click through every page.
How it works.
The haircut is the transition. Inside a sticky 200vh section nine photographs cross-fade into one another: long hair shortens into a clean fade while the slogan rolls in a masked window beside it.
- 01
Stacked frames
Nine JPEGs sit on top of each other. Each frame's opacity is clamp(pos − i + 1, 0, 1), so exactly one cross-fade is ever in flight.
- 02
Scroll is the timeline
Scroll progress drives pos — no autoplay, no video file. Scrub back up and the haircut grows out again.
- 03
Slogan roll
A masked window rolls «Sharp Cuts → Clean Fade» in sync with the frames, so the line lands exactly on the finished shape.
- 04
Film grain
An SVG feTurbulence layer in overlay blend mode, jittered on steps(3), plus a vignette and a yellow circle behind the head — digital photos get their analogue back.


- 01
Altegio booking
The salon's real calendar opens in a modal iframe. Client data never passes through the site, and the page keeps a strict CSP.
- 02
Three languages
CZ, RU and EN from one dictionary, with hreflang and localised metadata on every route.
- 03
Portfolio, two ways
A hover accordion of panels on desktop; on mobile the same works become a stack of cards you drag through in 3D.
- 04
One source of truth
Services, durations and prices (400–3500 Kč) come from a single file — the price list and the booking labels can never disagree.
- 05
Production hygiene
HairSalon JSON-LD, sitemap, security headers, image budgets. The boring parts, done properly.
Palette
- Ink#0a0a0a
- Ink soft#141414
- Paper#ededea
- Mute#8a8a86
- Line#262624
- Accent#ffd400
Typefaces
- Druk Wide Cyr BoldDisplay
- InterText

Frame 01 — before the cut 
Frame 09 — clean fade 
Portfolio accordion, panel by panel 
Works open on hover
Levitskaia
[Beauty studio] — [Text parallax]