Skip to content
WORK

CASE STUDY

Fortesa

Salon booking & brand experience

A beauty salon's whole online presence, built end to end: a cinematic landing page with its own color science and photography treatment, a live-availability booking flow clients actually enjoy using, and a secure back office running the business quietly underneath — revenue splits, reconciliation, deposits — that a visitor never sees but the salon relies on every day.

Built foroktonFortesa Beauté
Platform
Web
Shipped
2026

From first sketch to opening day.

We ran the build through okton's eight stages — the same arc behind every project.

  1. 01

    Think

    A high-end salon needed to feel like a well-run atelier online, not a generic booking widget — calm, refined and trustworthy from the first scroll.

  2. 02

    Frame

    One site, two surfaces sharing a single domain: a public booking flow that only ever requests an appointment, and a private back office that runs the whole business behind it.

  3. 03

    Spec

    We wrote down the pricing and revenue-split rules before a line of UI: every service carries its own price and its own owner/employee split, and a booking locks in both the moment it's made.

  4. 04

    Design

    A wine palette built on perceptually uniform color science, a serif display face reserved for headlines only, and duotone-graded photography across every service category — one considered visual language, top to bottom.

  5. 05

    Build

    Next.js on Supabase Postgres, with row-level security limiting the public side to a single price-free view, next-intl for the Albanian UI, and a shared-password back office with a timing-safe login.

  6. 06

    Test

    The revenue split, daily reconciliation and availability logic are pure, unit-tested functions — and the booking and login paths are rate-limited against abuse before they ever reach production.

  7. 07

    Ship

    Deployed to Vercel with the database on Supabase; moving between environments only ever changes environment values, never code.

  8. 08

    Grow

    New service categories, prices and split percentages are just data — the salon can extend its own offering without touching a line of code.

What it gets right.

A palette built on color science

The wine brand color is defined in OKLCH, so every hover and focus state is a genuinely consistent step lighter — not a hex value nudged by eye.

Two typefaces, two jobs

A serif display face carries every headline; a humanist sans handles everything else — the two are never mixed, so the hierarchy always reads clearly.

Motion with a mood

An animated smoke layer drifts behind the hero's hand-lettered mark — restrained motion that sets a tone instead of demanding attention.

Photography with a point of view

Every service category gets its own duotone-graded photograph in the brand palette, instead of a generic stock-photo grid.

A film, not a slideshow

A muted, looping opening-ceremony video sits behind its own section, with a server-rendered poster frame so nothing ever flashes blank while it loads.

A calm surface, a real back office

Underneath the site sits a secured back office handling revenue splits, daily reconciliation and deposit contracts — the part of the business a visitor never sees, but the salon runs on every day.

Stack

Inside the app.

Representative screens, shown with sample data.

Landing hero — the cinematic wine-toned opening, with an animated smoke layer behind the salon's script mark
Founder feature — a full-bleed portrait section introducing the salon's owner
Opening-ceremony film — a muted, looping video section marking the salon's story
Services — eight treatment categories, each with its own duotone photograph
Booking flow — live-availability date and time selection for a client requesting an appointment

Want a site like this for your business?

We build calm, considered brand experiences and the systems that run quietly underneath them. Tell us what you're building.