FYSA
physiotherapy booking website
Client
FYSA — Lukáš Sajdl
Role
Fullstack — design and implementation of the whole site including localisation, SEO, accessibility and deployment.
Year
2026
Stack
Next.js 16, React 19, TypeScript, Tailwind CSS v4, shadcn/ui, next-intl, Zod, Resend, Sentry, Docker
Project
FYSA is the website of physiotherapist Lukáš Sajdl, who treats clients in their own homes. He offers reflexive, relaxation, classical and sports massage, massage with an individual exercise programme and kinesiology taping. The site had to present the services and pricing clearly and lead visitors to book through Reservio.
I designed and built the whole site, from the layout to deployment. It is a single-page site with hero, about, experience, animated statistics, testimonials, an Instagram feed and contact sections. Most of the page renders on the server as React Server Components, I kept client code only where interaction is needed, and the contact form loads on demand so it does not slow down the first render.
The site speaks Czech and English through next-intl. SEO is part of the craft too: generated robots.txt and sitemap.xml, JSON-LD structured data and per-locale metadata. The cookie bar loads Google Analytics only after consent. I verified accessibility with a documented WCAG audit.
Do you need a fast website for a sole trader or small business with bookings and a contact form? I build sites like this as a freelance web developer.




Technology
The site runs on Next.js 16 and React 19 with TypeScript, mostly on React Server Components. Styling is handled by Tailwind CSS v4 and shadcn/ui, and the two languages by next-intl. The form is built on React Hook Form and Zod and sent through Resend, Sentry tracks errors. Deployment is Docker and GitHub Actions.
What I built
A single-page layout — hero, about, experience, animated stats, testimonials, image marquee, Instagram feed and contact — mostly React Server Components, with client components only where interactivity is needed.
Czech/English localisation via next-intl and the app/[locale] segment.
A contact form on React Hook Form with Zod validation, submitted through a Server Action backed by Resend, lazy-loaded to keep the initial render light.
Cookie consent wired to conditional Google Analytics loading.
SEO — generated robots.txt and sitemap.xml, JSON-LD structured data and per-locale metadata.
A documented WCAG accessibility audit.
A custom design system — a CVA-driven button with variants, directional icons and a self-hosted font; plus Sentry, Speed Insights, Docker and a GitHub Actions pipeline.
Let's talk about your project!

