lukaskopecky.cz
developer portfolio
Role
Fullstack — template rework, project data model, localisation, SEO, contact form, CI/CD and deployment.
Year
2026
Stack
Next.js 16, React 19, TypeScript, next-intl, GSAP, Zod, Formspree, Docker, GitHub Actions, Coolify
Project
The bilingual personal portfolio you are reading — a project overview with detail pages, services, about, FAQ and a contact form. Built on the Rayo (Next.js) template, which I reworked into a data-driven site with CS/EN localisation, a complete SEO setup and automated deployment to my own server.
Fullstack — template rework, project data model, localisation, SEO, contact form, CI/CD and deployment.




What I built
CS/EN localisation via next-intl — Czech is the default language without a prefix, English lives under /en; page copy, projects and metadata are all localised.
Projects as data — a single data/projects.json (cs/en) drives the overview, statically generated detail pages, previous/next navigation, the sitemap and IndexNow; every project has its own textless device mockups.
SEO setup — canonical and hreflang tags, localised titles, generated sitemap.xml and robots.txt, JSON-LD structured data (Person, WebSite, CreativeWork, BreadcrumbList) and OG/Twitter images generated in Next.js.
IndexNow — an API route that submits every page, projects included, to search engines after a deploy; the verification key lives in the public folder.
A contact form on React Hook Form with Zod validation, submitted through Formspree, with toast feedback.
Cookie consent wired to Google Analytics — the scripts load only after the visitor agrees.
Smooth animation and parallax (GSAP, Lenis, Ukiyo, Swiper), including custom parallax banners with device mockups on each project page.
Deployment — a multi-stage Docker build with Next.js standalone output; the image is built in GitHub Actions into ghcr.io and runs in Coolify on my own server.
Let's talk about your project!

