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

Next.js 16React 19TypeScriptnext-intlGSAPZodFormspreeDockerGitHub ActionsCoolify

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.

lukaskopecky.cz — screenshot 1
lukaskopecky.cz — screenshot 2
lukaskopecky.cz — screenshot 3
lukaskopecky.cz — screenshot 4

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!