Backend .NET 9 + EF Core + PostgreSQL
ASP.NET Core 9 REST API nad Azure managed PostgreSQL. Host aplikace zároveň slouží statické adminy a přes YARP proxy směruje požadavky na Next.js SSR proces. Vše v jednom Docker image z Azure Container Registry.
The Clinic Praha je renomovaná zubní klinika s mezinárodní klientelou. Starý Laravel web nabízel jen 2 jazyky, měl chybné meta popisy a minimum strukturovaných dat. Dodali jsme kompletní rewrite: veřejný web v Next.js 16, admin portál v Reactu a backend v .NET 9 — vše v jednom Docker image na Azure. Za 3 týdny a 116 commitů.
The Clinic Praha obsluhuje pacienty z Německa, Francie, Ruska i arabského světa, ale starý web uměl jen češtinu a angličtinu. K tomu přibývaly technické SEO problémy, které brzdily růst organické návštěvnosti — chybějící strukturovaná data, špatné canonical URL a fallback meta popisy „Stránka nebyla nalezena" na detailech ošetření. Migrace nesměla ohrozit stávající Google pozice ani backlinky.
Postavili jsme celý systém od nuly. Jeden .NET 9 proces hostí backend API, statické adminy a přes YARP proxy směruje root na Next.js SSR. Méně kontejnerů, jednodušší operace, jeden CI/CD pipeline.
ASP.NET Core 9 REST API nad Azure managed PostgreSQL. Host aplikace zároveň slouží statické adminy a přes YARP proxy směruje požadavky na Next.js SSR proces. Vše v jednom Docker image z Azure Container Registry.
Plný SSR ve všech 6 jazycích (25 typů stránek × 6 lokalizací). Per-locale slugy, dynamicky generované OG image v Edge runtime, in-memory cache redirectů pro nulovou DB zátěž na každý požadavek.
Každá entita má zdrojový český obsah a N překladů. Změna v češtině spouští TranslationBackgroundJob, který pošle batch požadavek do Anthropic Claude API, asynchronně ověřuje stav a aplikuje výsledky do DB. Translation audit dashboard ukazuje editorovi, co kde chybí přeložit.
LLM porovnal 536 URL starého webu s 1 333 URL nového a navrhl přesměrování pro 97,6 % případů. Redirect databáze s 12měsíční retencí, chain-flattening (žádné řetězce A→B→C) a auto-redirect při editaci slugu. Middleware cachuje 308 redirecty s 3min TTL.
17 typů JSON-LD: MedicalOrganization, Physician, MedicalProcedure, FAQPage, JobPosting, BreadcrumbList a další. AggregateRating z importovaných Google recenzí pro hvězdičky v SERPu. Plný hreflang 6 jazyků + x-default na každé URL.
React 19 + Vite 8 + Material-UI 7. Lékaři, ošetření, pobočky, ceník, poradna, akademie, aktuality, literatura, kariéra, recenze (auto-import z Google), překlady, redirecty, CDN soubory, uživatelé. Google OAuth 2.0 s email allowlistem a audit trail s point-in-time recovery.
Google Tag Manager s Consent Mode v2 (GDPR). Konverzní eventy newsletter_signup, phone_click, email_click, booking_click nesou hodnotu v CZK pro Google Ads Smart Bidding. Cookie banner a právní stránky v 6 jazycích.
Celý systém běží jako jeden Docker kontejner — .NET 9 proces hostí API, statické adminy a přes YARP proxy směruje root na Next.js SSR. Databáze je Azure managed PostgreSQL, média v Cloudflare R2. Traefik řeší reverse proxy a TLS, Cloudflare CDN + WAF chrání před útoky. CI/CD automatizují Azure Pipelines.
1 333 URL v sitemapu oproti 539 u starého webu. Nové jazykové mutace otevírají pozice v Google.de, Google.fr, Google.ru a arabsky mluvících trzích.
17 typů JSON-LD strukturovaných dat ověřeno v Google Rich Results Testu. AggregateRating z importovaných Google recenzí zajišťuje hvězdičky přímo ve výsledcích vyhledávání.
AI matcher navrhl přesměrování pro 97,6 % starých URL. Chain-flattening zajistil, že se přesměrování nikdy neřetězí a linkový juice zůstává zachovaný.
Plný SSR ve 25 typech stránek napříč 6 jazyky — včetně správného RTL layoutu pro arabštinu. Hreflang a x-default na každé URL.
Klient spravuje obsah bez programátora. AI překlady do 6 jazyků asynchronně na pozadí, audit trail s point-in-time recovery, auto-redirect při změně slugu článku.
Google Consent Mode v2 a value-based konverzní eventy v CZK pro Google Ads Smart Bidding. Cookie banner a právní stránky ve všech 6 jazycích.
Datový sklad na Microsoft Fabric pro síť 200+ lékáren
Kompletní náhrada systému pro správu prodejní sítě MLM za 3 měsíce
Aplikace pro sběr a reporting síťového provozu podporující protokoly NetFlow v5/v9 a IPFIX, s vysokovýkonným úložištěm na PostgreSQL + TimescaleDB.
Hlubší technické poznámky k tématům této případové studie.
V překladové pipeline pro The Clinic jsme ze synchronního Claude API přešli na Batch API. 50% sleva plus prompt caching = zhruba 80 % úspora. Háček je v orchestraci fronty — a v pár situacích, kdy je batch ta špatná volba.
Číst článekPražská stomatologická klinika s dvoujazyčným Laravel webem potřebovala oslovit pacienty v šesti jazycích, a to bez ztráty pozic v Googlu. Takhle jsme to zvládli za tři týdny — a jak AI redirect matcher pokryl 97,6 % starých URL.
Číst článek