← WorkClinical editorialClient work · Finished

Skin Solutions

A rebuild for a cosmetology clinic in Lublin, where nothing is published until it is confirmed.

Type
Clinic website rebuild
Role
Design and development
Year
2026
For
Client work
Stack
Next.js 16 · React 19 · TypeScript · GSAP · Server Actions · Zod · Resend
Skin Solutions homepage in Polish: “Zobaczyć więcej niż powierzchnię.” - To see more than the surface.
Homepage

02

Context

The existing site was a template export with no structured data, no sitemap, broken internal links and several third-party requests on load.

In a medical-aesthetic context, anything published - a price, a claim, a device name - has to be true and confirmed by the clinic.

03

Role

Client work delivered through Binary Brain Technologies. I designed and built the rebuild.

04

Idea

A publishing gate.

Content is data with a status. A price appears only once it is confirmed, with who confirmed it and when - and hides itself again after 180 days. A fact needs to be marked verified. A launch check fails while anything is still open.

The result is a site that can go live early without ever showing an unconfirmed number.

gatePriceconfirmedpublishedPricenot confirmedhiddenDevice nameverifiedpublishedPriceconfirmed 181 days agohidden
Drawing: content passes the gate only when confirmed; confirmations expire.

05

Experience

  • A treatment explorer with categories, ten treatment pages and eighteen skin-concern pages at their original URLs.
  • Booking stays with the clinic’s existing booking service; the site hands visitors over rather than rebuilding it.
  • The original logo redrawn with CSS from its own geometry, drawn once on load and static under reduced motion.
  • No cookies and no third-party requests on load; the map loads only when asked for.

06

System

  1. InterfaceNext.js 16, static pages with daily revalidationGSAP ScrollTrigger loaded only near the one section that uses it
  2. ContentTyped content modules behind a publishing gateAutomated content check for launch
  3. FormsServer Action + ZodSigned timing token, honeypot, rate limit
  4. SecurityStrict Content Security PolicyEverything self-hosted
  5. InfrastructureVercel

07

Details

Prices that expire

Confirmed prices carry a confirmation date. After 180 days they stop rendering until someone confirms them again, and daily revalidation makes that happen without a deploy.

The logo is still the logo

The animated mark is drawn from the original logo geometry, checked against the source files so the brand itself does not change.

08

Output

A finished rebuild: treatment explorer, 10 treatment pages and 18 skin-concern pages, booking handed to the clinic’s booking service.

09

Reflection

Designing the gate took less time than any single page - and it is the part that makes every page trustworthy.