Pavol Rašev
Open to remote work
All work

Anate

Anate is a massage studio in the centre of Nitra: classic, relaxing, pregnancy and baby massage. The site is written to be found by people searching for exactly that, and the studio runs it, and its client list, from one admin.

Client
Anate, Nitra
My role
Front end, CMS and API
Timeline
January 2026 to now
Stack
Next.js 16, React 19, TypeScript, Tailwind 4, Symfony 8, EasyAdmin, PostgreSQL, Vercel
Anate on a phone

The brief

A small studio lives on word of mouth and on Google. The site loads fast on a phone, says clearly what each massage does and costs, and the studio can change it without a developer. Behind it is one place for client notes, prepaid packages and the messages that come in.

Anate home page: we relieve your body, feel good again, with booking and gift buttons

The site

Next.js on Vercel, content from the studio’s own CMS.
Anate on a phone

On a phone

The home page on a phone.
  • Servicesvariants, prices
  • Clientsnotes, files, packages
  • Inboxreplies, IMAP sync
  • Contentarticles, FAQ, reviews
  • Instagramfeed sync

Behind it

Symfony 8 with EasyAdmin.

Decisions worth mentioning

  • Headless, but not complicated.The studio edits content in a plain admin. The API is protected with a key, and every change triggers on-demand revalidation, so the static site updates within seconds without a rebuild.
  • Structured for search.Titles and descriptions come from the CMS into each page’s metadata, with a generated sitemap and JSON-LD for a health and beauty business and its FAQ.
  • Tracking that asks first.Tag Manager runs with Consent Mode behind a cookie banner, and both forms are protected by reCAPTCHA v3 instead of puzzles.
  • Prepaid packages that count themselves.A client who buys ten massages has a package with used and remaining sessions and an expiry date, visible in their record.