lukaskopecky.cz

osobní portfolio vývojáře

Role

Fullstack — úprava šablony, datový model projektů, lokalizace, SEO, kontaktní formulář, CI/CD a nasazení.

Rok

2026

Stack

Next.js 16, React 19, TypeScript, next-intl, GSAP, Zod, Formspree, Docker, GitHub Actions, Coolify

Next.js 16React 19TypeScriptnext-intlGSAPZodFormspreeDockerGitHub ActionsCoolify

Projekt

Dvojjazyčné osobní portfolio, které právě čtete — přehled projektů s detailními stránkami, služby, o mně, FAQ a kontaktní formulář. Postavené na šabloně Rayo (Next.js), kterou jsem přepsal na datově řízený web s lokalizací CS/EN, kompletní SEO výbavou a automatizovaným nasazením na vlastní server.

Fullstack — úprava šablony, datový model projektů, lokalizace, SEO, kontaktní formulář, CI/CD a nasazení.

lukaskopecky.cz — snímek obrazovky 1
lukaskopecky.cz — snímek obrazovky 2
lukaskopecky.cz — snímek obrazovky 3
lukaskopecky.cz — snímek obrazovky 4

Co jsem řešil

Dvojjazyčnost CS/EN přes next-intl — čeština je výchozí jazyk bez prefixu, angličtina běží pod /en; lokalizované jsou texty stránek, projektů i metadata.

Projekty jako data — jediný soubor data/projects.json (cs/en) pohání přehled, detailní stránky se statickou generací, navigaci předchozí/další, sitemap i IndexNow; každý projekt má vlastní mockupy zařízení bez textu.

SEO výbava — canonical a hreflang, lokalizované titulky, generovaný sitemap.xml a robots.txt, strukturovaná data JSON-LD (Person, WebSite, CreativeWork, BreadcrumbList) a OG/Twitter obrázky generované přímo v Next.js.

IndexNow — API route, která po nasazení pošle vyhledávačům seznam všech stránek včetně projektů; ověřovací klíč leží ve veřejné složce.

Kontaktní formulář na React Hook Form s validací Zodem, odesílaný přes Formspree, se zpětnou vazbou v toastech.

Cookie consent napojený na Google Analytics — skripty se načtou až po souhlasu návštěvníka.

Plynulé animace a parallax (GSAP, Lenis, Ukiyo, Swiper) včetně vlastních parallax pásů s mockupy na detailu projektu.

Nasazení — vícestupňový Docker build se standalone výstupem Next.js, image se staví v GitHub Actions do ghcr.io a běží v Coolify na vlastním serveru.

Let's talk about your project!