web rockové kapely

Klient

4Watty

Role

Fullstack — migrace obsahu, datový model, frontend a nasazení.

Rok

2026

Stack

Next.js 16, React 19, Payload CMS 3, PostgreSQL, TypeScript, Tailwind CSS v4, S3, Python, Docker

Next.js 16React 19Payload CMS 3PostgreSQLTypeScriptTailwind CSS v4S3PythonDocker

Projekt

4Watty je východočeská rocková kapela. Její web nabízí koncerty a vstupenky, novinky, fotogalerie, sestavu kapely, playlist a booking kontakt. Starý WordPress byl letitý a kapela chtěla web, který se dobře spravuje a nepřijde o desítky let obsahu.

Převedl jsem celý archiv. Python extraktory čtou WordPress XML export a galerie NextGEN, navazující importéry plní Payload CMS a backfill doplňuje původní cesty. Generátor redirectů ze starých WordPress URL zajistil, že web nepřišel o dohledatelnost. Novinky, které na starém webu nikdy nebyly, jsem doplnil importem příspěvků z Facebooku, a to dvěma cestami, přes API i scraping.

Datový model v Payloadu zná koncerty (nadcházející a odehrané se odvozují z data, s odkazem na vstupenky), galerie s mřížkou řízenou rozměry dlaždic, sestavu kapely, skladby s audiem a novinky. Sekce homepage jsou async server komponenty čtoucí přes Payload Local API, takže mezi CMS a webem není síťové kolo navíc.

Média se ukládají na S3 s automatickým fallbackem na lokální disk. Potřebujete se přesunout z WordPressu a nechcete přijít o obsah ani SEO? To je moje práce.

4Watty — snímek obrazovky 1
4Watty — snímek obrazovky 2
4Watty — snímek obrazovky 3
4Watty — snímek obrazovky 4

Technologie

Web staví na Next.js 16 s Turbopackem, Reactu 19 a striktním TypeScriptu. Payload CMS 3 s PostgreSQL přes Drizzle drží obsah, Tailwind CSS v4 a shadcn/ui rozhraní. Média jdou na S3 (Hetzner Object Storage), migrační skripty jsou v Pythonu, chyby sleduje Sentry a nasazení běží v Dockeru a GitHub Actions.

Co jsem řešil

Migrace z WordPressu — Python extraktory nad WordPress XML exportem a nad galeriemi NextGEN, navazující importéry do CMS a backfill legacy cest.

Generátor redirectů ze starých WordPress URL, aby kapela migrací nepřišla o dohledatelnost.

Import příspěvků z Facebooku dvěma cestami — přes API i scrapingem — pro doplnění novinek, které na starém webu nikdy nebyly.

Datový model v CMS — koncerty s automatickým rozdělením na nadcházející a odehrané, galerie s mřížkou řízenou rozměry dlaždic, sestava kapely, skladby s audiem, novinky a globální sekce hero, o kapele a kontakt.

Sekce homepage jako async server komponenty čtoucí přímo přes Local API s cachovacími helpery — žádné síťové kolo navíc mezi CMS a webem.

Ukládání médií na S3 s automatickým fallbackem na lokální disk, dokud nejsou vyplněné přístupové údaje.

České formátování dat, cookie consent, form builder pro booking poptávky, SEO plugin, Sentry a seed skripty pro obsah i navigaci.

Pojďme si promluvit o vašem projektu!