EP
01 of 08
Own work
01 — Freelance — end to end

Beauty salonlanding

The only project on this page I own outright: first client call to live deployment, with an admin panel the owner runs herself.

ClientIndependent salon, La Rioja
Stack
Nuxt 3GSAPCloudflare Workers KVZero Trust
Context

What the problem was

The salon had no site. Enquiries arrived through phone calls and Instagram messages, and prices and opening hours lived in the owner’s head. She needed a page that loaded instantly on a phone in the street, and she needed to be able to change it without calling me.

Home, on a phoneStill
Approach

What I did

01

Scoped it in plain language

Two meetings, no jargon. I walked her through what a page could do, agreed on what mattered — services, prices, hours, how to reach her — and cut the rest.

02

Built it prerendered

Nuxt with the content prerendered at build time, so the first paint is static HTML. Motion is GSAP, transform and opacity only, so it never fights the main thread on a mid-range Android.

03

Gave her the keys

A small admin panel writing to Cloudflare Workers KV, sitting behind Cloudflare Zero Trust. She edits hours and prices; the page reads the same keys at the edge.

04

Deployed and handed over

Domain, DNS, cache rules and a one-page handover document. No retainer, no dependency on me.

Performance

How it stays fast

  • Prerendered HTML, no client-side fetch on first paint
  • Images sized and served next-gen; fonts preconnected and swapped
  • Motion limited to compositor properties
Outcome

She updates the page herself and has not needed me since handover. The page is the first result people see when they search the salon by name.

Live site available on request
Visuals

Selected media

Services and pricesStill
Admin panelStill
Own work — free to shareEyman Pashaliev