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
- Web
- anate.sk

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.

The site
Next.js on Vercel, content from the studio’s own CMS.

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.