Presentation website
Lesní svatba Roklinka: A forest wedding site for a returning client
I know Roklinka's owner from modernising the Chata Roklinka site, where I took over an application with technical debt and replaced manual bookings with an automated system with online payments. When he expanded into forest weddings, for up to 30 guests with a season from May to October, he came straight to me. The result is a standalone bilingual wedding site — fast, with an enquiry form that reaches both the venue and the couple.
- 100
- Lighthouse accessibility & SEO
- 370+
- automated tests
A standalone site with its own identity
The new offer didn't fit on the cabin's site. A wedding sells on atmosphere, and couples need different information from people who want to rent the cabin. So it got its own site at svatba-v-lese.cz, with its own identity, linking to the cabin's site for accommodation.
The challenge
- Sell an experience, not just a rental. The site has to carry atmosphere while staying fast and easy to read on a phone.
- The client supplied content along the way and rewrote it several times during development, so the page structure had to be easy to change.
- Some of the interested couples are from abroad, so the site needs a full English version, not a machine translation of a single page.
- No enquiry can get lost. Every one has to reliably reach the venue, and the couple has to get a confirmation.
Atmosphere without losing performance
The opening section has subtle parallax, mist and fireflies. A scroll-driven "forest path" animation runs through the gallery, and content reveals itself as you scroll. The motion never gets in the way of reading: animations respect the system's reduced-motion setting and the page doesn't jump around while loading.
Photos load optimised and the browser caches them permanently. Until a photo loads, a blurred preview takes its place, so nothing flickers.
Two languages down to the last detail
The site is in Czech and English, including translated page URLs. Both language versions get their own sitemap entries, canonical links, structured data and social preview images. I self-host the fonts including Latin Extended, so Czech never loses its diacritics. An automated test makes sure both language versions have the same set of strings.
An enquiry form that delivers
The form validates input on both the client and the server. The venue receives a clear enquiry and the couple a confirmation, both in consistent brand styling. The server limits request size, verifies the origin and guards against flooding.
If sending fails, the user sees a specific, understandable message. During development all mail is redirected to a test address, so trial enquiries never reach real people.
Gallery
Photos are split into categories with filters. The grid loads in batches and the lightbox preloads neighbouring images. The open photo is reflected in the URL, so it can be shared as a link.
Accessibility and legal
Every colour was checked for WCAG contrast when the palette was designed, and automated tests guard accessibility. The privacy policy and cookie page adapt automatically to whether analytics is switched on, so the legal text never describes something other than what the site actually does.
Quality and operations
More than 370 automated tests cover navigation, redirects, the form, the gallery, fonts and accessibility. Every page is pre-rendered and served from a CDN; the only server function is sending an enquiry. In Lighthouse the site scores 100 for accessibility, SEO and best practices on both mobile and desktop, and the layout doesn't shift while loading.
Deployment and every environment variable are documented, so operations can be handed over at any time.
A continuing collaboration
With the second project there was no getting-to-know-you phase. I already knew how Roklinka operates and how the client works with content, so we went straight to what the wedding site needed to do. I maintain both sites long-term. When something changes on the ground — a contact, the season or the capacity — I update it in both places at once.
Tech used
- Next.js
- React
- TypeScript
- Tailwind CSS
- Zod
- Resend + React Email
- Vitest
- Playwright
- CDN hosting
Outcome
- the client came back with a second project, and today I maintain both of his sites
- a standalone wedding site with its own identity, linking to the cabin's site
- Czech and English, including translated page URLs
- enquiries go straight to the venue's inbox and couples get an instant confirmation
- static pages on a CDN that load fast even on a phone
- Lighthouse 100 for accessibility, SEO and best practices, with no layout shift while loading
- automated tests keep accessibility and the legal texts in line with what the site actually does