02 — Solution
Monorepo in a single Docker image: Next.js 16 + .NET 9 + React admin
We built the entire system from scratch. One .NET 9 process hosts the backend API, serves the static admin SPA and, via a YARP proxy, routes the root to Next.js SSR. Fewer containers, simpler ops, one CI/CD pipeline.
01.NET 9 + EF Core + PostgreSQL backend
ASP.NET Core 9 REST API on Azure-managed PostgreSQL. The host app also serves the static admin and uses a YARP proxy to forward requests to the Next.js SSR process. Everything in a single Docker image from Azure Container Registry.
02Public website — Next.js 16 + React 19 + Tailwind 4
Full SSR across all 6 languages (25 page types × 6 locales). Per-locale slugs, dynamically generated OG images on the Edge runtime and in-memory redirect cache for zero DB load on every request.
03AI-assisted translation pipeline
Every entity has source Czech content and N translation records. A Czech edit triggers a TranslationBackgroundJob that issues a batch request to the Anthropic Claude API, polls asynchronously and applies the results to the database. A translation audit dashboard shows editors what is still missing.
04AI sitemap matcher + redirect system
An LLM compared 536 URLs from the old site with 1,333 on the new one and proposed redirects for 97.6% of cases. A redirect database with 12-month retention, chain flattening (no A→B→C hops) and automatic redirects when an editor changes a slug. Middleware caches 308 redirects with a 3-minute TTL.
05E-commerce-grade SEO
17 JSON-LD types: MedicalOrganization, Physician, MedicalProcedure, FAQPage, JobPosting, BreadcrumbList and more. AggregateRating from imported Google reviews drives star ratings in SERPs. Full hreflang for 6 languages plus x-default on every URL.
06Admin portal with 14 CRUD sections
React 19 + Vite 8 + Material-UI 7. Doctors, treatments, branches, pricing, Q&A, academy, news, books, careers, reviews (auto-imported from Google), translations, redirects, CDN files, users. Google OAuth 2.0 with email allowlist plus audit trail with point-in-time recovery.
07Analytics for PPC performance campaigns
Google Tag Manager with Consent Mode v2 (GDPR). Conversion events newsletter_signup, phone_click, email_click and booking_click carry CZK values for Google Ads Smart Bidding. Cookie banner and legal pages in 6 languages.