Back to Portfolio
Kerkini Boat — Accessible Lake Trips, Stay & Car Rental

Kerkini Boat — Accessible Lake Trips, Stay & Car Rental

Kerkini Boat is a family business in the village of Kerkini, in Serres: Spyros Sfetkos runs the first boat on the lake built for wheelchair access. The deck is flat, boarding is by a wide ramp at deck level, nobody is lifted out of their chair, and 8 to 10 wheelchairs fit on board together with their companions among 35 seats. Commentary can be given in Greek Sign Language when it is arranged at booking. The same household also lets a self-catering apartment and rents cars, so the site has to introduce three services without burying the one that makes the business unusual. Greek leads and English follows as two complete sets of files with identical names and structure, not strings swapped by a script — the site is written to be read by search crawlers and AI assistants as much as by people, which is why it ships a hand-written llms.txt beside a generated full-text version of every page. There is no framework and no build step, and nothing is fetched from anyone else: the fonts and the animation library come from the same host, a decision the privacy policy states plainly. Motion is decorative and fails open three separate ways, so a page whose JavaScript never arrives still shows everything it has to say.

Technologies

HTML5 CSS3 Vanilla JS GSAP 3 JSON-LD Bilingual EL/EN WCAG 2.2 AA llms.txt Self-hosted fonts SEO

Challenges

A site about access cannot be vague about access. The boat is genuinely wheelchair accessible; the apartment, a traditional village house, is not — and saying that plainly, on the same site, without undermining the business, was the hardest call in the copy. Three services also compete for one front page, each arriving from a different search: a trip on the water, a place to sleep, a car. Bookings are taken by phone and WhatsApp only, with no email address and no form, so every page had to make the next step obvious without the usual contact funnel. And the audience is split between Greek visitors and international birdwatchers, photographers and disability groups, so neither language could be the afterthought a JavaScript toggle produces.

Solutions

Greek and English ship as two complete sets of pages with the same filenames and the same structure, each carrying its own canonical, hreflang and structured data, so both read correctly with JavaScript switched off. Header, drawer and footer are generated into all 22 pages from shared partials, and a checker validates links, assets, alt text, heading order, canonicals, structured data and a 150 KB budget per image before anything ships — there is no CI, so the gates run from the command line. Accessibility was measured rather than assumed: 3,055 text nodes across all 22 pages at two widths, zero contrast failures, and no horizontal scrolling between 320 and 1920 pixels. The accessibility statement lists what the boat offers and says plainly that the apartment is not fully accessible; the capacity and the sign-language commentary live in the structured data; and fonts and scripts are self-hosted, so no visitor is handed to a third party.