Honza Kulda: Jak jsem splatil 10 let technického dluhu za 4 měsíce

Co uděláte, když váš web drží pohromadě technologie z roku 2013, chcete ho celý převléct do nového kabátu a nechcete strávit tisíce hodin ručním přepisováním? Já jsem si vzal k ruce AI parťáka, kterého jsem si fakt oblíbil – Klóda. A jak to dopadlo?

👉🏻 536 uložených změn. 4 478 souborů. 272 000 řádků kódu.

Tohle jsou čísla z redesignu webu Freela. A největší paradox? Naposledy jsem programoval ve škole.

Nová homepage Freela.
Nová homepage Freela.

Deset let lepení technologií

Znáte to. Založíte projekt, použijete framework, který je zrovna populární. Za rok přidáte další knihovnu. Za dva roky další. A najednou máte web, který funguje – ale při každé změně se vám chce brečet.

Náš web používal Bootstrap z roku 2013. K tomu jsme si ručně vytvořili utility class á la tachyons. Všechno napsané v LESS (speciální jazyk, který se musí překládat do CSS). Plus jQuery všude možně.

Když jsem chtěl změnit barvu tlačítka? Tři soubory a kaskáda přepisující Bootstrap defaultní třídy. Upravit typografii? Boj s pravidly, která se navzájem přepisovala. Mobilní responzivita? Raději se neptejte.

S faceliftem brandu přišla příležitost uklidit si před vlastním prahem. Jenže jak převléknout stovky šablon do nového kabátu a přitom nezbourat roky budovaný obsah?

Odpověď je jasná, buďto to udělám s AI nebo vůbec. 🤷🏻‍♂️

Zmigrované help centrum původně na wordpress šabloně a subdoméně, nově pod hlavním webem.
Zmigrované help centrum původně na wordpress šabloně a subdoméně, nově pod hlavním webem.

Kontext: Projekt „Facelift brandu“

Tohle mělo být jen lehké zmodernizování značky Freela, ale nakonec to bylo celé jinak. Už koncem roku 2024 jsme si říkali, že nás současné brand assety brzdí v tom, dělat v modernějším pojetí příspěvky na sociální sítě. To jak vypadá stánek na veletrhu a dost možná i web by mohl mít z té spousty placené návštěvnosti lepší konverzní poměr, kdyby vypadal lépe.

Tohle byly ty hlavní důvody, proč jsme s externí agenturou začali vymýšlet, jak zachovat kontinuitu značky Freela a zároveň ho zmodernizovat a umožnit nám působit čistěji, přehledněji a moderněji.

No a dnes máme rok 2026 a tenhle „projektík“ jsme pustili. O tom, co se dělo mezi tím, si s vámi někdy moc rád pokecám u piva na nějaké akci, ale dnes bych se rád věnoval tomu, co jsem za poslední 3 měsíce zvládnul sám bez programátorů, jen s AI kámošem – Klódkódem.

Ukázka práce se subagenty při předělávání oborových landing pages.
Ukázka práce se subagenty při předělávání oborových landing pages.

Hold my beer

Je 15. prosince a připravujeme se na kapitánský meeting, kde budeme představovat Q1 plán pro marketing.

Máme (Já, Honza Kulda, co-founder) s CMO Freela, Jankem Žežulou, diskuzi:

🙋🏻‍♂️ Janek: „Takže máme asi z 90 % hotový webdesign a kdo to vlastně teda nakóduje?“
👱🏻‍♂️ Kulin: „No já jsem už tak trošku začal, ale je tam toho hodně.“
🙋🏻‍♂️ Janek: „A do kdy myslíš, že to uděláš?“
👱🏻‍♂️ Kulin: „Vidím to tak konec února, když bude Claude poslouchat.“
🙋🏻‍♂️ Janek: „Tak já to teda dávám do Q1.“
👱🏻‍♂️ Kulin: „OK“

Když se podívám na historii gitu, tak 1. prosince 2025 mám první commit s Co-Authored-By: Claude.

A najednou řeším věci, na které bych si sám netroufnul.

78 000 výskytů starých CSS tříd napříč 265 šablonami? Klód mi pomohl napsat skript, který to projel automaticky. Odstranění silně zadrátovaného Bootstrapu ve 24 krocích? Společně jsme to zvládli za pár dní.

Jako co-founder a bývalý kodér (sic se základní znalostí programování) najednou řeším komplexní věci okolo webu, které bych dříve musel delegovat nebo se na ně neustále někoho ptát a čekat týdny na realizaci.

Tasklisty na steroidech

V lednu dostal Claude Code novou funkci – tasklisty s paralelním během sub-agentů.

👉🏻 Zjednodušeně: místo toho, aby AI řešila úkoly jeden po druhém, dokáže si je rozdělit a pracovat na více věcech naráz. Jako když místo jednoho dělníka najednou máte celou partu.

Řeknu „potřebuju zmigrovat všechny šablony na nový systém“ – a Claude si sám vytvoří seznam podúkolů, které pak řeší souběžně nebo si definuje, které tasky jsou blokované a musí je zpracovat až dokončí jiné.

V říjnu jsem ručně udělal 25 commitů. V únoru s tasklisty 238. Skoro desetkrát víc.

A ano, přesně v tuhle dobu jsem z plánu Max5 přešel na Max20 (nejlépe utracených $180/měsíc).

Claude Max20, který se rozhodně vyplail.
Claude Max20, který se rozhodně vyplatil.

AI potřebuje manuál

Jedna věc je mít AI nástroj. Druhá věc je naučit ho, jak pracovat na vašem projektu.

Postupně jsem vybudoval celý ekosystém dokumentace – 37 souborů, skoro 5 000 řádků. Funguje to jako „provozní příručka“ pro AI vývojáře.

Je tam hlavní konfigurace – takový vstupní bod, kde se Klód dozví, jak přistupovat k úkolům. Pak znalostní moduly s pravidly pro CSS, šablony, brand voice a katalog 30+ znovupoužitelných bloků. Hotové postupy (skills) pro opakované úkoly – nová landing page, nový presenter, přebarvení loga. Specializovaní agenti na review kódu (jeden kontroluje šablony, druhý CSS, třetí stavbu stránek). A hooks – automatické kontroly, které nedovolí uložit rozbitý kód.

A co mě baví nejvíc? Brand guidelines se aktivují automaticky. AI konzistentně dodržuje náš tone of voice, aniž bych mu to musel pokaždé připomínat.

Doporučuju na to využít tento tool: https://github.com/kojott/claude-docu-optimizer

A celý tenhle systém vznikl za víkend. Ne postupným patchováním měsíce, ale promyšleným nasazením naráz.

Bez kontextu by byl Claude chabým pomocníkem, ale s ním je to neskutečný boost.
Bez kontextu by byl Claude chabým pomocníkem, ale s ním je to neskutečný boost.

Co všechno jsme stihli

Kromě přepisování starého kódu vznikly i úplně nové věci:

  • Block Builder – nástroj pro rychlé vyrábění landing pages a přepoužívání odladěného kódu.
  • Brand manuál – stránka se vším, co designér potřebuje. Barvy, loga, fonty, pravidla pro maskota TuDůa.
  • Šablony – stránka veřejnými šablonami Freela, která byla původně pod Help centrem a na subdoméně.
  • Help centrum – integrace nápovědy přímo do webu. Vyhledávání s našeptávačem. Migrace 251 odkazů z externího help.freelo.io a to v anglické a české mutaci + dodržení všech URLs pro snadné přesměrování těch původních.
  • 10+ landing pages – srovnání s konkurencí (Trello, Asana, ClickUp, Jira), oborové stránky, easter egg s příběhem TuDů.

Každá z těch věcí by normálně znamenala briefing, odhad, sprint. Tady to bylo vždy na 1–2 dny a jede se dál. A samozřejmě i zde platí, že posledních 10 % práce zabralo 50 % času .

Snadno aktualizovatelný brand manuál pro spolupracující subjekty a nebo interní tým, abychom byli vždy on-brand.
Snadno aktualizovatelný brand manuál pro spolupracující subjekty a nebo interní tým, abychom byli vždy on-brand.

Čísla

Co jsme změřili Výsledek
Období 1. prosince 2025 – 25. února 2026
Uložených změn 536
Změněných souborů 4 478
Přidaných řádků +355 071
Smazaných řádků -82 627
Aktivních dnů 71

A vývoj po měsících:

Měsíc Změn Co se dělo
Říjen 25 Ruční práce
Listopad 32 Ruční práce
Prosinec 40 První kroky s Klódem
Leden 201 Tasklisty
Únor 238 Plný plyn
Blocks builder, který nám umožní rychlé stavení landing pages.
Blocks builder, který nám umožní rychlé stavení landing pages.

Co z toho plyne

Bez automatizace bych to nedal. Skript s 5 000+ pravidly projel všechny soubory a nahradil staré třídy novými – ručně bych v těch tisících změn dělal chybu za chybou.

Pak jsem pochopil, že AI potřebuje kontext. Těch 5 000 řádků dokumentace vypadá jako spousta práce, ale vrací se to při každém dalším úkolu. Čím víc toho Klód o projektu ví, tím míň hloupých otázek klade a tím míň blbostí dělá.

Několikrát jsme taky pěkně nabourali. Jedno vylepšení rozbilo načítání stránek, museli jsme to revertovat. Ale to je normální – s gitem a AI parťákem se z toho vzpamatujete rychle.

A guardrails. Automatické kontroly (hooks), které nedovolí uložit rozbitý kód. Tohle mi ušetřilo hodiny debugování.

Kde jsme teď

Web Freela běží na moderních technologiích. Tailwind CSS místo Bootstrapu. Čistý JavaScript – jQuery zůstalo jen v pár součástech (kvůli Nette). 22 přehledných souborů místo 71 nepřehledných. Styly menší o 32 %. Obrázky menší o 54 %.

K tomu ze subdomény zmigrované Help centrum přímo pod web, Block builder, 10+ nových landing pages a online brand manuál.

A hlavně: konečně se mi s tím kódem dobře pracuje. Díky kontextu nyní 95 % hrubé práce řeší Klódna mě zbývá směřování, dohlížení a kreativa. Každá další změna je jednodušší než ta předchozí. Popíšu, co chci, a Klód to udělá. Většinou napoprvé.

Ukázka jedné z landing page.
Ukázka jedné z landing page.

Co to znamená pro mě

Pracuju s AI denně a pořád mě překvapuje, co všechno zvládnu sám. Věci, které bych dřív musel delegovat na vývojáře, teď řeším já – a rychleji.

Vibecoding není buzzword. Je to způsob, jak lidi, co vědí co chtějí, dostanou do pozice, kdy to taky dokážou udělat. I když naposledy programovali ve škole.

Aktualizováno:
Freelo Blog Inspirace Honza Kulda: Jak jsem splatil 10 let technického dluhu za 4 měsíce