Vila Hedvika
Zpět na projekty

Vila Hedvika

Petr VíchHlavní vývojář a architekt

Výzva

Vila Hedvika potřebovala rezervační platformu, která se řídí sama: dostupnost v reálném čase bez rizika dvojitých rezervací, párování plateb bez ručního kontrolování a kompletní automatizaci komunikace s hostem — to vše pro jeden prémiový objekt a s minimálními provozními náklady. Tou těžkou částí nebyl rezervační formulář, ale automatické udržení interního kalendáře, sdíleného Google kalendáře, bankovního účtu a schránky hosta v souladu.

Řešení

Jako hlavní vývojář a architekt jsem postavil serverless platformu na Next.js 15 (App Router, React 19, edge runtime) nasazenou na Cloudflare stacku — Pages pro aplikaci, plánovaný Worker pro automatizaci, D1 (přes Drizzle ORM) jako zdroj pravdy a R2 pro generované soubory.

  • Rezervační kalendář s dostupností: vlastní dvouměsíční kalendář, který slučuje dva zdroje pravdy (rezervace v D1 + sdílený Google kalendář) do jednoho živého přehledu dostupnosti a blokuje obsazené, minulé, mimosezónní a „short-notice" termíny. Cena se počítá z reálného nastavení (nikdy se nevymýšlí) s pravidlem minimální délky pobytu.
  • Synchronizace s Google Calendar: obousměrná přes Google Service Account, s JWT (RS256) podepsaným přímo ve WebCrypto, takže běží na edge bez těžkých SDK. Rezervace vytvoří událost [PENDING], která se po zaplacení potvrdí a při zrušení smaže — čímž eliminuje dvojité rezervace napříč kanály.
  • Automatizovaná komunikace s hostem: dvojjazyčné (CS/EN) transakční e-maily přes Resend pro každý krok životního cyklu — potvrzení rezervace (s QR kódem k platbě), platba přijata, připomínka platby, automatické zrušení, zrušení a poděkování po pobytu s přímými odkazy na napsání recenze na Google / Firmy.cz. Šablony potvrzení může majitel upravovat přímo v administraci.
  • Párování bankovních plateb: místo platební brány plánovaný Worker každých 5 minut stahuje Fio Bank API, páruje příchozí platby k rezervacím podle variabilního symbolu a částky, označí je jako zaplacené, aktualizuje Google událost a odešle e-mail „platba přijata". QR platby odpovídají českému standardu SPD (IBAN + checksum dopočtené za běhu); bankovní token je uložený šifrovaně (AES-GCM).
  • Nastavení parametrů ubytování: administrace pro konfiguraci všeho bez kódu — cena za noc, číslo účtu, sezónní okno, minimální lhůta rezervace, splatnost a storno lhůty, vybavení, domácí řád a e-mailové šablony — plus rezervace, platby, uživatelé/role, přehledy tržeb a audit log.
  • Živé recenze z Google a Mapy.cz: endpoint na Workeru sjednocuje recenze z Google Places API a Firmy.cz/Mapy.cz do jednoho cacheovaného feedu zobrazeného na webu.
  • Detailní SEO a AI-SEO: strukturovaná data LodgingBusiness, canonical + hreflang, sitemapa, robots s AI content-signály a ověření Seznam Webmaster — plus neobvyklá AI vrstva: llms.txt, content-negotiation Accept: text/markdown, .well-known discovery pro agenty a reálný MCP server (JSON-RPC), který AI asistentům zpřístupňuje check_availability, get_reviews a get_property_info.

Celý systém se samo-opravuje: denní rutina posílá připomínky, automaticky ruší nezaplacené rezervace a dorovnává případné rozjetí kalendáře.

Dopad

Platforma proměnila správu rezervací v automatizovaný kanál — dostupnost, platby i e-maily hostům běží bez ručních zásahů — a přitom běží téměř výhradně v levných tarifech Cloudflare. Výsledkem je rychlý, prémiový rezervační zážitek pro hosty a téměř nulová administrativní zátěž pro majitele.

Web běží na vila-hedvika.net; zdrojový kód aplikace je neveřejný.

Galerie

Technologie

Next.js 15Cloudflare PagesCloudflare WorkersD1Drizzle ORMR2Lucia AuthGoogle Calendar APIResendFio API

Vybrané Projekty

Vila Hedvika
Hlavní vývojář a architekt
Výzva Vila Hedvika potřebovala rezervační platformu, která se řídí sama: dostupnost v reálném čase bez rizika dvojitých rezervací, párování plateb bez ručního k...
Next.js 15Cloudflare PagesCloudflare Workers+7
IZODIAMANT
Full-stack vývojář
Výzva IZODIAMANT, specialista na sanaci a odvlhčení zdiva, potřeboval proměnit pomalý, nekonvertující web v nástroj na získávání poptávek — a zároveň dát majite...
Next.js 16React 19TypeScript+6
Backend Framework pro MPSV
Hlavní architekt • Hlavní vývojář
Výzva Ministerstvo práce a sociálních věcí (MPSV) potřebovalo sjednotit vývoj napříč různými odděleními a zrychlit uvedení nových agendových aplikací na trh. St...
Java 17+Spring Boot 3+Azure+3