Druhá destinácia, rovnaký motor
Žabljak leží v nadmorskej výške okolo 1 456 metrov, je najvyššie položeným mestom na Balkáne a hlavnou bránou do Národného parku Durmitor. Má osemnásť ľadovcových jazier, Bobotov kuk a kaňon Tary priamo za dverami. Čo nemal, bolo jediné miesto, ktoré to všetko predáva.
Keď sme dokončili Visit Pljevlja, bolo jasné, že ten istý motor môže poháňať viac než jednu destináciu. Žabljak bol prirodzeným ďalším krokom, a to z praktického dôvodu: rafting na Tare, kaňoning v Nevidiu a džípové výlety okolo Durmitora predávajú obe destinácie. Ten istý výlet, dve brány, jeden organizátor.
Žabljak preto nie je nový web. Je to druhá destinácia v sieti, na rovnakom kóde a v rovnakej administrácii.
Čo znamená „druhá destinácia"
Obsah sa označuje podľa webu cez väzbu mnoho k mnohým. Jeden výlet môže patriť Pljevlji aj Žabljaku a objaví sa na oboch weboch bez jediného duplicitného záznamu. Rezervácie prichádzajú do rovnakej schránky, označené webom, z ktorého prišli.

Čo je pre Žabljak vlastné:
- Vlastná doména a značka,
visitzabljak.me, vlastné logo a vlastná domovská stránka - Vlastná téma, modrozelená alpská paleta namiesto zelenej z Pljevlje, riešená cez CSS premenné, bez druhého buildu
- Vlastné texty, domovská stránka, stránka „Kde je Žabljak", právne stránky a zaujímavosti, preložené do všetkých 18 jazykov
- Vlastné údaje, súradnice pre widget počasia a vlastná adresa odosielateľa pre e-maily, aby SPF a DKIM vždy sedeli s doménou
Praktický dôsledok: nová destinácia sa spúšťa v dňoch, nie v mesiacoch, a údržba zostáva na jednej kódovej báze.
Maya, AI sprievodkyňa, ktorá vie len to, čo vie web
Na webe pracuje AI asistentka menom Maya. Nie je to ozdoba.

Maya beží na modeli od Anthropicu a jej znalosťou je samotný web. Výlety, miesta, sprievodcovia a praktické informácie sa skladajú do znalostnej bázy pre každú destináciu a každý jazyk, a vyrovnávacia pamäť sa zruší v momente, keď sa niečo zverejní alebo stiahne. Nemôže citovať výlet, ktorý je stiahnutý.
Tri veci boli pre nás dôležité:
- Vie pripraviť rezerváciu. Maya zloží výlet, dátum, počet hostí, čas odchodu a miesto stretnutia do jednorazového tokenu a hosť si to sám skontroluje a odošle cez rezervačný formulár. Maya nerezervuje za neho.
- Nikdy nezlyhá na hosťa. Každá chyba, odmietnutie či vypršanie času skončí zdvorilým ospravedlnením a odovzdaním človeku, tím dostane upozornenie. Hosť nikdy nevidí chybu.
- Nemôže minúť rozpočet. Denný limit správ na úrovni webu, denný limit na návštevníka a tvrdá hranica na jeden rozhovor. Jeden zneužívateľ nemôže vypnúť chat všetkým ostatným.
Rozhovory sa uchovávajú deväťdesiat dní, potom sa automaticky mažú. Raz týždenne príde anonymizovaná správa o tom, na čo sa hostia pýtali, a z toho vzniká zoznam medzier v obsahu.
Rezervácia a platba
Rezervácia neinkasuje hneď. Hosť pošle žiadosť, dostane potvrdenie, tím nastaví cenu a zálohu, potom odchádza platobný odkaz.

Platba beží cez Stripe, ale na vlastnej doméne, cez vložený platobný prvok, nie cez presmerovanie. Záloha je štandardne 30 percent a 1 percento z každej platby ide na dobročinné účely, viditeľne pre hosťa.
Po zaplatení dostane hosť QR poukaz. Organizátor ho naskenuje na mieste, označí výlet ako uplatnený a potom ako dokončený. Pracovník prihlásený vlastným účtom vidí poukaz a výlet, ale nikdy nevidí ani jedno číslo provízie.
Ceny výletov pokrývajú to, ako sa naozaj pracuje: na osobu, na skupinu so základným počtom hostí a príplatkom za každého ďalšieho, alebo na jednotku (dva džípy po 160 €). K tomu prichádzajú sezónne ceny, zľava pre deti a doplnkové možnosti k výletu.
Osemnásť jazykov
Web beží v 18 jazykoch: angličtina, čiernohorčina, nemčina, ruština, maďarčina, francúzština, taliančina, poľština, turečtina, albánčina, španielčina, slovenčina, slovinčina, ukrajinčina, holandčina, dánčina, švédčina a nórčina.

Prekladanie tu nie je drina súbor po súbore. Zdrojový text sa píše v angličtine, preklady sa generujú pre každý jazyk, štrukturálne sa kontrolujú a zapisujú ako verzionované súbory, ktoré jediný príkaz aplikuje na databázu. Opravený údaj ide do anglického zdroja a znova sa pustí cez všetky jazyky namiesto látania na osemnástich miestach.
Čo je na webe vidieť
Popri výletoch je tu celá destinácia: príroda a krajina, kultúra a dedičstvo, kde sa najesť, kde prespať, etno dediny.

Miesta sú modelované ako jediný typ záznamu s viacerými úlohami, takže reštaurácia, ktorá je zároveň pamiatkou, stojí v oboch sekciách bez duplikovania. K tomu prichádza blog s príbehmi o Durmitore, živý widget počasia pre Žabljak a partnerský portál, kde miestni organizátori sami zadávajú svoje výlety a miesta, s povinnou moderáciou pred zverejnením.
Pod kapotou
Backend: PHP 8.3, Laravel 13, Filament v4 ako administrácia, Spatie Translatable pre prekladateľné stĺpce, mcamara localization pre jazykové predpony, Stripe, Anthropic API pre Mayu, Open-Meteo pre počasie.
Frontend: Blade a Alpine.js, Tailwind CSS v4 s konfiguráciou v CSS, Vite, kritické CSS pri builde. Bez Reactu, bez Vue, bez jQuery.
Infraštruktúra: MySQL za Cloudflare, automatická záloha databázy každé dve hodiny so sedemdňovým uchovávaním, nasadenie výhradne cez GitHub.
Viac o tom, ako staviame turistické weby, ktoré naozaj prijímajú rezervácie, v článku weby, ktoré prinášajú dopyty a rezervácie, a o znižovaní závislosti od zahraničných platforiem v článku priame rezervácie namiesto Booking.com.
Pozrite si webstránku
Ak vediete destináciu, turistickú organizáciu alebo organizátora a potrebujete platformu, ktorá predáva a nielen zobrazuje, ozvite sa nám. Pozrite si aj ostatné projekty v našom portfóliu.