4Watty
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
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.




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!

