Oleg Katrichuk
Back to work
Tetyana, hair colorist in Odessa — studio Zvezdochka, blonde balayage portfolio hero

Zvezdochka — hair-coloring studio, Odessa · 2026

A portfolio site that books clients for a hair colorist

An image-heavy, multilingual portfolio and booking site for a professional colorist — fast galleries served from object storage, reviews, courses, and direct booking channels.

An owned, multilingual home that turns Instagram traffic into bookings

Next.jsTypeScripti18nCloudflare R2
Visit live site

The problem

For a hair colorist, the work is the marketing — clients choose based on before/after photos. The studio's reach was Instagram-only: great content, but no owned home that ranks on Google, works in three languages (English / Ukrainian / Russian), and turns a browser into a booking. An image-heavy site also risks being slow, which kills exactly the visitors you want.

My approach

  • Built a portfolio-first site: galleries, services, courses, video and client reviews — structured so the work is the hero.
Portfolio gallery on odessacolorist.com — before/after balayage, airtouch and hair extension work by colorist Tetyana
  • Served all media from object storage (Cloudflare R2) so heavy before/after imagery loads fast and cheaply.
  • Made it trilingual (en / uk / ru) to match the real client base.
  • Put booking front and centre — direct channels (phone, Telegram, WhatsApp) one tap away on every page.

Stack & why

  • Next.js — server-rendered, indexable pages so the studio finally has an owned property that ranks, not just a social feed.
  • Cloudflare R2 for media — a colorist's site is mostly photos; offloading them to object storage keeps pages fast and hosting cheap.
  • i18n from the start — retrofitting three languages later is far more expensive than designing for it up front.

The result

  • A professional, fast home that converts profile-stalkers into bookings instead of leaving them in Instagram DMs.
  • Multilingual reach matching the actual client base.
Professional hair-care cosmetics catalogue on odessacolorist.com — searchable storefront with brands like YOU Look and Rawwell

What was hard

Image-heavy sites are usually slow, and slow kills a portfolio. The work was in the media pipeline — storage, sizing and delivery via R2 plus Next.js image optimization — so the gallery stays sharp on a phone without the page crawling. That balance, quality vs. speed, was the whole game here.

Related work

Want something similar built?

I take on a small number of projects at a time. If this looks like your problem, let's talk.