[{"data":1,"prerenderedAt":1410},["ShallowReactive",2],{"blog-moderny-web-pre-malu-firmu":3,"blog-pool":240},{"id":4,"title":5,"author":6,"body":7,"category":229,"cover":230,"date":231,"description":232,"extension":233,"meta":234,"navigation":235,"path":236,"published":235,"seo":237,"stem":238,"__hash__":239},"blog\u002Fblog\u002Fmoderny-web-pre-malu-firmu.md","Moderný web pre malú firmu — kde začať a čo skutočne potrebujete","Tomáš Renčík",{"type":8,"value":9,"toc":219},"minimark",[10,14,17,22,25,54,57,61,64,67,70,74,77,82,97,102,113,117,120,187,190,194,197,203,206,210],[11,12,13],"p",{},"\"Potrebujeme web.\" Táto veta odštartuje tisíce projektov ročne. A veľa z nich skončí rovnako: predražená agentúra, hotovo za 6 mesiacov, web vyzerá dobre, ale nikto ho nevie aktualizovať.",[11,15,16],{},"Existuje lepší spôsob.",[18,19,21],"h2",{"id":20},"čo-malá-firma-od-webu-skutočne-chce","Čo malá firma od webu skutočne chce",[11,23,24],{},"Predtým ako hovoríme o technológii, treba byť jasný v cieľoch:",[26,27,28,36,42,48],"ol",{},[29,30,31,35],"li",{},[32,33,34],"strong",{},"Nájditeľnosť"," — Google ma nájde",[29,37,38,41],{},[32,39,40],{},"Dôveryhodnosť"," — vyzerám seriózne",[29,43,44,47],{},[32,45,46],{},"Konverzia"," — návštevník sa stane zákazníkom",[29,49,50,53],{},[32,51,52],{},"Aktualizovateľnosť"," — viem zmeniť cenu bez volania programátorovi",[11,55,56],{},"Väčšina riešení sa sústredí na body 1-3, ale zabúda na 4. A to je problém.",[18,58,60],{"id":59},"prečo-je-aktualizovateľnosť-kľúčová","Prečo je aktualizovateľnosť kľúčová",[11,62,63],{},"Predstavte si, že zmeníte otváraciu dobu alebo ceny. Zavoláte agentúre? Počkáte 3 dni a zaplatíte 50€? Alebo to spravíte sami za 2 minúty?",[11,65,66],{},"CMS systém (Content Management System) existuje práve preto, aby bola druhá možnosť dostupná každému.",[11,68,69],{},"Ale pozor — nie každý CMS je rovnaký. WordPress vyžaduje stály server, zálohy, aktualizácie pluginov, bezpečnostné záplaty. Je to práca sama o sebe.",[18,71,73],{"id":72},"headless-cms-pre-malú-firmu-dáva-to-zmysel","Headless CMS pre malú firmu — dáva to zmysel?",[11,75,76],{},"Headless CMS bol dlho doménou veľkých projektov. Ale Modulo CMS mení toto pravidlo.",[11,78,79],{},[32,80,81],{},"Čo dostanete:",[83,84,85,88,91,94],"ul",{},[29,86,87],{},"Admin panel pre správu obsahu (blog, jedálny lístok, nehnuteľnosti...)",[29,89,90],{},"Rýchly verejný web bez databázy",[29,92,93],{},"Žiadne mesačné licenčné poplatky za CMS",[29,95,96],{},"Obsah v Markdown — prenositeľný, zálohovateľný",[11,98,99],{},[32,100,101],{},"Čo musíte riešiť:",[83,103,104,107,110],{},[29,105,106],{},"Hosting (Cloudflare Pages — zadarmo pre malé projekty)",[29,108,109],{},"Doménu (~10€\u002Frok)",[29,111,112],{},"Počiatočný setup (tu pomôžeme my)",[18,114,116],{"id":115},"koľko-to-stojí","Koľko to stojí?",[11,118,119],{},"Toto je závisí od rozsahu, ale orientačne:",[121,122,123,139],"table",{},[124,125,126],"thead",{},[127,128,129,133,136],"tr",{},[130,131,132],"th",{},"Typ projektu",[130,134,135],{},"Riešenie",[130,137,138],{},"Náklady",[140,141,142,154,165,176],"tbody",{},[127,143,144,148,151],{},[145,146,147],"td",{},"Vizitka + kontakt",[145,149,150],{},"Statická stránka",[145,152,153],{},"~500€ jednorazovo",[127,155,156,159,162],{},[145,157,158],{},"Blog + o nás",[145,160,161],{},"Modulo CMS blog modul",[145,163,164],{},"~800-1200€ jednorazovo",[127,166,167,170,173],{},[145,168,169],{},"Reštaurácia + jedálny lístok",[145,171,172],{},"Modulo CMS food modul",[145,174,175],{},"~1000-1500€",[127,177,178,181,184],{},[145,179,180],{},"Realitná kancelária",[145,182,183],{},"Modulo CMS reality modul",[145,185,186],{},"~1200-2000€",[11,188,189],{},"Bez mesačných poplatkov za CMS. Hosting na Cloudflare Pages je zdarma pre bežnú návštevnosť.",[18,191,193],{"id":192},"čo-neriešiť-hneď","Čo neriešiť hneď",[11,195,196],{},"Nové firmy chcú mať všetko: shop, rezervačný systém, blog, newsletter, chatbot... Toto je pasca.",[11,198,199,202],{},[32,200,201],{},"Začnite s minimom, ktoré funguje."," Pridajte funkcie podľa toho, čo skutočne potrebujú zákazníci — nie podľa toho, čo si myslíte, že budú chcieť.",[11,204,205],{},"Modulo CMS je modulárny práve preto — pridáte modul keď ho naozaj potrebujete.",[18,207,209],{"id":208},"prvý-krok","Prvý krok",[11,211,212,213,218],{},"Ak premýšľate o webe pre vašu firmu a chcete sa porozprávať o možnostiach, napíšte na ",[214,215,217],"a",{"href":216},"mailto:info@modulocms.sk","info@modulocms.sk",". Prvá konzultácia je zadarmo.",{"title":220,"searchDepth":221,"depth":221,"links":222},"",2,[223,224,225,226,227,228],{"id":20,"depth":221,"text":21},{"id":59,"depth":221,"text":60},{"id":72,"depth":221,"text":73},{"id":115,"depth":221,"text":116},{"id":192,"depth":221,"text":193},{"id":208,"depth":221,"text":209},"podnikanie","\u002Fblog\u002Fmoderny-web-pre-malu-firmu\u002Fcover.webp","2026-06-12","Malá firma nepotrebuje enterprise riešenie. Ale potrebuje profesionálny web, ktorý rastie spolu s ňou a nepohltí celý marketingový budget.","md",{},true,"\u002Fblog\u002Fmoderny-web-pre-malu-firmu",{"title":5,"description":232},"blog\u002Fmoderny-web-pre-malu-firmu","rjUyDh7ISo6D7EiGFSDnZNF6OjPJtM6m7kU03fbBfZM",[241,391,538,777,1085,1297],{"id":242,"title":243,"author":6,"body":244,"category":382,"cover":383,"date":384,"description":385,"extension":233,"meta":386,"navigation":235,"path":387,"published":235,"seo":388,"stem":389,"__hash__":390},"blog\u002Fblog\u002Fai-a-tvorba-obsahu.md","AI a tvorba obsahu — partner, nie náhrada",{"type":8,"value":245,"toc":365},[246,254,257,261,266,269,272,276,279,283,286,290,293,297,301,304,308,311,315,318,322,325,328,331,335,338,352,355,359,362],[11,247,248,249,253],{},"Generatívna AI zmenila spôsob, akým pracujeme s textom. Ale presne ",[250,251,252],"em",{},"ako"," ju používame — a ako by sme ju nemali používať — je stále vec, na ktorú si každý musí prísť sám.",[11,255,256],{},"Tu sú naše skúsenosti z budovania Modulo CMS a písania jeho obsahu.",[18,258,260],{"id":259},"kde-ai-skutočne-pomáha","Kde AI skutočne pomáha",[262,263,265],"h3",{"id":264},"_1-prvý-návrh-štruktúry","1. Prvý návrh štruktúry",[11,267,268],{},"Najhoršia časť písania nie je samotné písanie — je to prázdna stránka. AI vie rýchlo navrhnúť osnovu článku. Nie výsledný text, len štruktúru.",[11,270,271],{},"\"Napíš mi osnovu článku o headless CMS pre malé firmy\" → dostanete 5-7 bodov. Tri zahodíte, dva upravíte, jeden vás inšpiruje na myšlienku, na ktorú by ste nepríšli sami.",[262,273,275],{"id":274},"_2-technická-dokumentácia","2. Technická dokumentácia",[11,277,278],{},"Dokumentácia API endpointov, popis parametrov, príklady requests\u002Fresponses — toto je obsah, ktorý AI zvláda dobre. Je faktický, štruktúrovaný, bez potreby \"hlasu\".",[262,280,282],{"id":281},"_3-revízia-a-korektúry","3. Revízia a korektúry",[11,284,285],{},"AI vie nájsť gramatické chyby, navrhnúť lepšie formulácie, skrátiť príliš dlhé vety. Ako korektorský asistent je vynikajúca.",[262,287,289],{"id":288},"_4-preklady-pre-testovanie","4. Preklady pre testovanie",[11,291,292],{},"Rýchly preklad do angličtiny pre kontrolu, či text dáva zmysel aj v inej kultúre. Nie produkčný preklad — len kontrola.",[18,294,296],{"id":295},"kde-ai-škodí","Kde AI škodí",[262,298,300],{"id":299},"_1-originálny-hlas","1. Originálny hlas",[11,302,303],{},"AI text znie... ako AI. Je korektný, plynulý, ale bez osobnosti. Ak chcete, aby váš blog znel ako vy — vaše skúsenosti, váš humor, vaše postoje — AI vám nepomôže. Buď píšete sami, alebo stratíte hlas.",[262,305,307],{"id":306},"_2-fakty-a-čísla","2. Fakty a čísla",[11,309,310],{},"AI halucinuje. Nie vždy, ale dosť často na to, aby každý fakt musel byť overený. Pre marketing (kde nezáleží na presnosti) to môže stačiť. Pre technické články je to problém.",[262,312,314],{"id":313},"_3-seo-long-tail-obsah","3. SEO long-tail obsah",[11,316,317],{},"Ak generujete obsah iba pre Google bez reálnej hodnoty pre čitateľa, krátkodbodo to môže fungovať. Dlhodobo — Google sa učí a obsah bez hodnoty klesá.",[18,319,321],{"id":320},"naša-filozofia","Naša filozofia",[11,323,324],{},"V Modulo CMS píšeme texty sami. AI používame ako nástroj v procese, nie ako generátor obsahu.",[11,326,327],{},"Konkrétne: prvý draft je vždy náš. AI potom pomáha s korekturou, navrhne alternatívne formulácie pre niektoré vety, skontroluje logiku článku. Výsledok je vždy prečítaný a upravený ľudským okom.",[11,329,330],{},"Prečo? Pretože naši čitatelia sú vývojári a podnikatelia, ktorí si cenia úprimnosť. Generický AI obsah spoznajú okamžite.",[18,332,334],{"id":333},"integrácia-ai-do-cms-čo-plánujeme","Integrácia AI do CMS — čo plánujeme",[11,336,337],{},"Do budúcej verzie Modulo CMS plánujeme AI asistenta priamo v editore. Nie na generovanie článkov, ale na:",[83,339,340,343,346,349],{},[29,341,342],{},"Návrh meta description na základe textu",[29,344,345],{},"Kontrola čitateľnosti (priemerná dĺžka vety, komplexnosť)",[29,347,348],{},"Návrh interných odkazov medzi článkami",[29,350,351],{},"Automatické tagrovanie kategórie",[11,353,354],{},"Toto sú funkcie, kde AI skutočne šetrí čas bez toho, aby nahrádzala ľudskú tvorbu.",[18,356,358],{"id":357},"záver","Záver",[11,360,361],{},"AI je nástroj. Ako kladivo — môžete ním postaviť dom, ale aj si trafiť po prstoch. Otázka nie je \"používať alebo nepoužívať\", ale \"kde a ako\".",[11,363,364],{},"Pre tvorbu obsahu: používajte AI na štruktúru, korekcie a technické texty. Váš hlas a vaše skúsenosti — to AI nenahradí.",{"title":220,"searchDepth":221,"depth":221,"links":366},[367,374,379,380,381],{"id":259,"depth":221,"text":260,"children":368},[369,371,372,373],{"id":264,"depth":370,"text":265},3,{"id":274,"depth":370,"text":275},{"id":281,"depth":370,"text":282},{"id":288,"depth":370,"text":289},{"id":295,"depth":221,"text":296,"children":375},[376,377,378],{"id":299,"depth":370,"text":300},{"id":306,"depth":370,"text":307},{"id":313,"depth":370,"text":314},{"id":320,"depth":221,"text":321},{"id":333,"depth":221,"text":334},{"id":357,"depth":221,"text":358},"tech","\u002Fblog\u002Fai-a-tvorba-obsahu\u002Fcover.webp","2026-06-19","Kde konkrétne pomáha AI pri tvorbe webového obsahu? A kde si škodí? Praktické skúsenosti z projektu Modulo CMS.",{},"\u002Fblog\u002Fai-a-tvorba-obsahu",{"title":243,"description":385},"blog\u002Fai-a-tvorba-obsahu","9QMqZWw4OGjdlWiN1ozY_4CmVZeqFSBP5oMXqOPzKeE",{"id":4,"title":5,"author":6,"body":392,"category":229,"cover":230,"date":231,"description":232,"extension":233,"meta":536,"navigation":235,"path":236,"published":235,"seo":537,"stem":238,"__hash__":239},{"type":8,"value":393,"toc":528},[394,396,398,400,402,420,422,424,426,428,430,432,434,438,448,452,460,462,464,510,512,514,516,520,522,524],[11,395,13],{},[11,397,16],{},[18,399,21],{"id":20},[11,401,24],{},[26,403,404,408,412,416],{},[29,405,406,35],{},[32,407,34],{},[29,409,410,41],{},[32,411,40],{},[29,413,414,47],{},[32,415,46],{},[29,417,418,53],{},[32,419,52],{},[11,421,56],{},[18,423,60],{"id":59},[11,425,63],{},[11,427,66],{},[11,429,69],{},[18,431,73],{"id":72},[11,433,76],{},[11,435,436],{},[32,437,81],{},[83,439,440,442,444,446],{},[29,441,87],{},[29,443,90],{},[29,445,93],{},[29,447,96],{},[11,449,450],{},[32,451,101],{},[83,453,454,456,458],{},[29,455,106],{},[29,457,109],{},[29,459,112],{},[18,461,116],{"id":115},[11,463,119],{},[121,465,466,476],{},[124,467,468],{},[127,469,470,472,474],{},[130,471,132],{},[130,473,135],{},[130,475,138],{},[140,477,478,486,494,502],{},[127,479,480,482,484],{},[145,481,147],{},[145,483,150],{},[145,485,153],{},[127,487,488,490,492],{},[145,489,158],{},[145,491,161],{},[145,493,164],{},[127,495,496,498,500],{},[145,497,169],{},[145,499,172],{},[145,501,175],{},[127,503,504,506,508],{},[145,505,180],{},[145,507,183],{},[145,509,186],{},[11,511,189],{},[18,513,193],{"id":192},[11,515,196],{},[11,517,518,202],{},[32,519,201],{},[11,521,205],{},[18,523,209],{"id":208},[11,525,212,526,218],{},[214,527,217],{"href":216},{"title":220,"searchDepth":221,"depth":221,"links":529},[530,531,532,533,534,535],{"id":20,"depth":221,"text":21},{"id":59,"depth":221,"text":60},{"id":72,"depth":221,"text":73},{"id":115,"depth":221,"text":116},{"id":192,"depth":221,"text":193},{"id":208,"depth":221,"text":209},{},{"title":5,"description":232},{"id":539,"title":540,"author":6,"body":541,"category":768,"cover":769,"date":770,"description":771,"extension":233,"meta":772,"navigation":235,"path":773,"published":235,"seo":774,"stem":775,"__hash__":776},"blog\u002Fblog\u002Fdizajn-system-pre-web.md","Dizajn systém — prečo si nastaviť pravidlá skôr, ako začnete kódovať",{"type":8,"value":542,"toc":759},[543,546,549,553,556,559,565,636,645,651,657,661,672,678,682,685,692,696,699,702,706,709,712,738,742,745,749,752,755],[11,544,545],{},"Predstavte si web, kde každé tlačidlo vyzerá trochu inak. Jeden má zaoblené rohy, druhý ostré. Jeden je modrý, druhý námornícky. Jeden má tieň, druhý nie.",[11,547,548],{},"Toto nie je hypotéza — je to realita väčšiny webov, ktoré sa vyvíjajú bez systému.",[18,550,552],{"id":551},"čo-je-dizajn-systém","Čo je dizajn systém?",[11,554,555],{},"Dizajn systém je zbierka pravidiel, komponentov a štýlov, ktoré definujú vizuálny jazyk projektu. Môže byť jednoduchý (niekoľko CSS premenných a typografia) alebo komplexný (plnohodnotná komponentová knižnica s dokumentáciou).",[11,557,558],{},"Pre Modulo CMS sme zvolili stredný prístup:",[11,560,561,564],{},[32,562,563],{},"Farby"," ako CSS premenné:",[566,567,571],"pre",{"className":568,"code":569,"language":570,"meta":220,"style":220},"language-css shiki shiki-themes github-light github-dark","--c-primary: #6366f1;    \u002F* indigo *\u002F\n--c-accent:  #a855f7;    \u002F* fialová *\u002F\n--c-text:    #09090b;    \n--c-muted:   #71717a;    \n--c-border:  #e4e4e7;    \n","css",[572,573,574,594,605,616,627],"code",{"__ignoreMap":220},[575,576,579,583,587,590],"span",{"class":577,"line":578},"line",1,[575,580,582],{"class":581},"sVt8B","--c-primary: ",[575,584,586],{"class":585},"s7hpK","#6366f1",[575,588,589],{"class":581},";    ",[575,591,593],{"class":592},"sJ8bj","\u002F* indigo *\u002F\n",[575,595,596,599,602],{"class":577,"line":221},[575,597,598],{"class":581},"--c-accent:  ",[575,600,601],{"class":585},"#a855f7;",[575,603,604],{"class":592},"    \u002F* fialová *\u002F\n",[575,606,607,610,613],{"class":577,"line":370},[575,608,609],{"class":581},"--c-text:    ",[575,611,612],{"class":585},"#09090b",[575,614,615],{"class":581},";    \n",[575,617,619,622,625],{"class":577,"line":618},4,[575,620,621],{"class":581},"--c-muted:   ",[575,623,624],{"class":585},"#71717a",[575,626,615],{"class":581},[575,628,630,633],{"class":577,"line":629},5,[575,631,632],{"class":581},"--c-border:  ",[575,634,635],{"class":585},"#e4e4e7;\n",[11,637,638,641,642],{},[32,639,640],{},"Zaoblenie"," konzistentné: ",[572,643,644],{},"--radius: 12px",[11,646,647,650],{},[32,648,649],{},"Typografia",": Inter, system-ui, sans-serif — bez externých fontov pre rýchlosť",[11,652,653,656],{},[32,654,655],{},"Tiene",": len kde treba, vždy rovnaký pattern",[18,658,660],{"id":659},"prečo-to-ušetrí-čas","Prečo to ušetrí čas",[11,662,663,664,667,668,671],{},"Keď máte dizajn systém, každé rozhodnutie o dizajne je otázkou \"použijem ",[572,665,666],{},"--c-primary"," alebo ",[572,669,670],{},"--c-accent","?\" nie \"aká modrá to bola?\"",[11,673,674,675,677],{},"Pri zmene brandovej farby stačí zmeniť jeden riadok CSS a zmena sa prejaví všade. Bez systému by ste hľadali ",[572,676,586],{}," po celom codebase.",[18,679,681],{"id":680},"komponentová-knižnica-v-admin-paneli","Komponentová knižnica v admin paneli",[11,683,684],{},"Pre admin panel používame Vuetify 3 — kompletný dizajn systém pre Vue 3. Vuetify má stovky komponentov: tabuľky, formuláre, dialógy, navigácia. Všetky sú tematizovateľné — môžete zmeniť tému a celý admin sa prispôsobí.",[11,686,687,688,691],{},"Toto je sila komponentovej knižnice: ",[32,689,690],{},"nemusíte vymýšľať koleso",". Sústredíte sa na funkcionalitu, nie na štylizáciu každého tlačidla.",[18,693,695],{"id":694},"verejný-web-vlastné-css","Verejný web: vlastné CSS",[11,697,698],{},"Verejný web Modulo CMS používa čisté CSS s premennými. Žiadny framework, žiadna externá závislosť. Dôvod: verejný web musí byť rýchly a ľahký. Tailwind, Bootstrap aj Vuetify pridávajú kilobajty, ktoré návštevník musí stiahnuť.",[11,700,701],{},"S CSS premennými dosiahneme konzistenciu bez záťaže.",[18,703,705],{"id":704},"typografia-základ-ktorý-sa-prehliadne","Typografia: základ, ktorý sa prehliadne",[11,707,708],{},"Väčšina webov sa príliš sústredí na farby a zabudne na typografiu. Pritom 90% webu je text.",[11,710,711],{},"Naše pravidlá:",[83,713,714,721,728,735],{},[29,715,716,717,720],{},"Nadpis H1: ",[572,718,719],{},"clamp(1.75rem, 4vw, 2.5rem)"," — responzívne bez media queries",[29,722,723,724,727],{},"Line-height pre text: ",[572,725,726],{},"1.8"," — priestor pre pohodlné čítanie",[29,729,730,731,734],{},"Letter-spacing pre nadpisy: ",[572,732,733],{},"-0.04em"," — tesnejšie, modernejšie",[29,736,737],{},"Font-weight: 900 pre nadpisy, 500 pre text, 700 pre labely",[18,739,741],{"id":740},"spacing-ôsma-sústava","Spacing: ôsma sústava",[11,743,744],{},"Všetky medzery sú násobkami 8px: 8, 16, 24, 32, 48, 64. Nikdy 7, 9 alebo 13. Toto robí dizajn rytmický a konzistentný, aj keď na to nikto priamo nepozrie.",[18,746,748],{"id":747},"záver-systém-pred-kódom","Záver: systém pred kódom",[11,750,751],{},"Ak začínate nový projekt, investujte prvé hodiny do definovania systému: farby, fonty, spacing, zaoblenie, tiene. Tieto rozhodnutia ušetria dni práce neskôr.",[11,753,754],{},"V Modulo CMS je dizajn systém súčasťou projektu od prvého commitu. Keď pridávame nový modul, nová stránka vyzerá konzistentne — bez extra práce.",[756,757,758],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":220,"searchDepth":221,"depth":221,"links":760},[761,762,763,764,765,766,767],{"id":551,"depth":221,"text":552},{"id":659,"depth":221,"text":660},{"id":680,"depth":221,"text":681},{"id":694,"depth":221,"text":695},{"id":704,"depth":221,"text":705},{"id":740,"depth":221,"text":741},{"id":747,"depth":221,"text":748},"dizajn","\u002Fblog\u002Fdizajn-system-pre-web\u002Fcover.webp","2026-06-04","Konzistentný dizajn nie je náhoda. Je to systém. Ako sme pristupovali k vizuálnej konzistencii v Modulo CMS a prečo to ušetrilo stovky hodín.",{},"\u002Fblog\u002Fdizajn-system-pre-web",{"title":540,"description":771},"blog\u002Fdizajn-system-pre-web","jdYA4TCiNRloNsP2jDXJnedVh042DNTDG9fWZC-gz0Y",{"id":778,"title":779,"author":6,"body":780,"category":382,"cover":1077,"date":1078,"description":1079,"extension":233,"meta":1080,"navigation":235,"path":1081,"published":235,"seo":1082,"stem":1083,"__hash__":1084},"blog\u002Fblog\u002Fnuxt-3-pre-moderny-web.md","Nuxt 3 — prečo je naša voľba pre moderný web",{"type":8,"value":781,"toc":1069},[782,785,789,792,812,815,819,822,828,834,840,846,849,853,871,1031,1038,1042,1045,1048,1052,1055,1058,1060,1063,1066],[11,783,784],{},"Keď sme vyberali technológiu pre Modulo CMS, chceli sme niečo, čo bude rýchle, moderné a zároveň dostatočne flexibilné pre rôzne typy projektov. Nuxt 3 bol jasná voľba.",[18,786,788],{"id":787},"čo-je-nuxt-3","Čo je Nuxt 3?",[11,790,791],{},"Nuxt je framework postavený na Vue 3, ktorý rieši všetky \"nudné\" veci okolo fullstack webového projektu:",[83,793,794,797,800,803,806,809],{},[29,795,796],{},"Server-side rendering (SSR)",[29,798,799],{},"Statická generácia (SSG)",[29,801,802],{},"File-based routing",[29,804,805],{},"Auto-import komponentov a composables",[29,807,808],{},"API routes zabudované priamo v projekte",[29,810,811],{},"TypeScript podpora out-of-the-box",[11,813,814],{},"Vo svete Nuxt 3 nemusíte konfigurovať webpack, babel, typescript ani routing ručne. Všetko funguje od prvého príkazu.",[18,816,818],{"id":817},"rendering-modes-prečo-na-tom-záleží","Rendering modes — prečo na tom záleží",[11,820,821],{},"Toto je možno najdôležitejší aspekt moderného web developmentu, o ktorom sa hovorí menej, ako by malo.",[11,823,824,827],{},[32,825,826],{},"CSR (Client-Side Rendering)"," — stránka sa vyrenderuje v prehliadači. Rýchly prvý byte, pomalé zobrazenie obsahu. Problém pre SEO.",[11,829,830,833],{},[32,831,832],{},"SSR (Server-Side Rendering)"," — server vyrenderuje HTML a pošle ho prehliadaču. Dobré pre SEO, ale vyžaduje bežiaci server.",[11,835,836,839],{},[32,837,838],{},"SSG (Static Site Generation)"," — stránky sa vygenerujú pri builde. Ultrarychlé, extrémne jednoduché hostovanie. Obmedzenie: obsah sa aktualizuje len pri novom builde.",[11,841,842,845],{},[32,843,844],{},"Hybrid rendering"," — každá route má vlastný rendering mode. Toto je to, čo robí Nuxt 3 výnimočným.",[11,847,848],{},"V Modulo CMS používame hybridný prístup: verejný web je prevažne staticky generovaný (rýchlosť + SEO), ale API endpointy a admin panel fungujú v SSR mode.",[18,850,852],{"id":851},"vue-3-a-composition-api","Vue 3 a Composition API",[11,854,855,856,859,860,859,863,866,867,870],{},"Vue 3 s Composition API zmenilo spôsob, akým píšeme komponenty. Miesto rozsypaných options (",[572,857,858],{},"data",", ",[572,861,862],{},"methods",[572,864,865],{},"computed",") je logika organizovaná do ",[572,868,869],{},"composables"," — malých, znovupoužiteľných funkcií.",[566,872,876],{"className":873,"code":874,"language":875,"meta":220,"style":220},"language-typescript shiki shiki-themes github-light github-dark","\u002F\u002F composables\u002FuseBlogPosts.ts\nexport function useBlogPosts() {\n  const posts = ref\u003CPost[]>([])\n  const loading = ref(true)\n  \n  async function fetchPosts() {\n    loading.value = true\n    posts.value = await $fetch('\u002Fapi\u002Fblog')\n    loading.value = false\n  }\n  \n  return { posts, loading, fetchPosts }\n}\n","typescript",[572,877,878,883,899,923,943,948,961,973,995,1005,1011,1016,1025],{"__ignoreMap":220},[575,879,880],{"class":577,"line":578},[575,881,882],{"class":592},"\u002F\u002F composables\u002FuseBlogPosts.ts\n",[575,884,885,889,892,896],{"class":577,"line":221},[575,886,888],{"class":887},"szBVR","export",[575,890,891],{"class":887}," function",[575,893,895],{"class":894},"sScJk"," useBlogPosts",[575,897,898],{"class":581},"() {\n",[575,900,901,904,908,911,914,917,920],{"class":577,"line":370},[575,902,903],{"class":887},"  const",[575,905,907],{"class":906},"sj4cs"," posts",[575,909,910],{"class":887}," =",[575,912,913],{"class":894}," ref",[575,915,916],{"class":581},"\u003C",[575,918,919],{"class":894},"Post",[575,921,922],{"class":581},"[]>([])\n",[575,924,925,927,930,932,934,937,940],{"class":577,"line":618},[575,926,903],{"class":887},[575,928,929],{"class":906}," loading",[575,931,910],{"class":887},[575,933,913],{"class":894},[575,935,936],{"class":581},"(",[575,938,939],{"class":906},"true",[575,941,942],{"class":581},")\n",[575,944,945],{"class":577,"line":629},[575,946,947],{"class":581},"  \n",[575,949,951,954,956,959],{"class":577,"line":950},6,[575,952,953],{"class":887},"  async",[575,955,891],{"class":887},[575,957,958],{"class":894}," fetchPosts",[575,960,898],{"class":581},[575,962,964,967,970],{"class":577,"line":963},7,[575,965,966],{"class":581},"    loading.value ",[575,968,969],{"class":887},"=",[575,971,972],{"class":906}," true\n",[575,974,976,979,981,984,987,989,993],{"class":577,"line":975},8,[575,977,978],{"class":581},"    posts.value ",[575,980,969],{"class":887},[575,982,983],{"class":887}," await",[575,985,986],{"class":894}," $fetch",[575,988,936],{"class":581},[575,990,992],{"class":991},"sZZnC","'\u002Fapi\u002Fblog'",[575,994,942],{"class":581},[575,996,998,1000,1002],{"class":577,"line":997},9,[575,999,966],{"class":581},[575,1001,969],{"class":887},[575,1003,1004],{"class":906}," false\n",[575,1006,1008],{"class":577,"line":1007},10,[575,1009,1010],{"class":581},"  }\n",[575,1012,1014],{"class":577,"line":1013},11,[575,1015,947],{"class":581},[575,1017,1019,1022],{"class":577,"line":1018},12,[575,1020,1021],{"class":887},"  return",[575,1023,1024],{"class":581}," { posts, loading, fetchPosts }\n",[575,1026,1028],{"class":577,"line":1027},13,[575,1029,1030],{"class":581},"}\n",[11,1032,1033,1034,1037],{},"Tento composable môžete použiť v ľubovoľnom komponente jedným riadkom: ",[572,1035,1036],{},"const { posts, loading } = useBlogPosts()",".",[18,1039,1041],{"id":1040},"typescript-všade","TypeScript všade",[11,1043,1044],{},"Nuxt 3 je napísaný v TypeScript a podporuje ho first-class. To znamená, že typy sa automaticky generujú pre API routes, content collections, env variables aj store.",[11,1046,1047],{},"Pre Modulo CMS to znamená, že keď píšete kód admin panelu, editor vám napovedá presne aké polia má článok, aké role existujú a aké API endpointy sú dostupné.",[18,1049,1051],{"id":1050},"prečo-nie-nextjs-alebo-iné","Prečo nie Next.js alebo iné?",[11,1053,1054],{},"Táto otázka padá vždy. Next.js je skvelý framework — ale je to React. Vuetify (UI knižnica ktorú používame v admin paneli) je Vue-only. Ekosystém, na ktorý sme zvyknutí, je Vue ekosystém.",[11,1056,1057],{},"Okrem toho, Nuxt 3's @nuxt\u002Fcontent — knižnica pre správu Markdown obsahu — je natívna Nuxt knižnica a funguje bezproblémovo. Pre headless blog je toto ideálna kombinácia.",[18,1059,358],{"id":357},[11,1061,1062],{},"Nuxt 3 nie je len \"ďalší framework\". Je to komplexné riešenie, ktoré rieši routing, rendering, TypeScript, auto-import, API a obsah v jednom konzistentnom balíku. Pre projekt ako Modulo CMS — kde admin a verejný web musia spolupracovať, ale byť nezávislé — je to ideálna technológia.",[11,1064,1065],{},"Ak vás zaujíma kód, Modulo CMS bude čoskoro open-source na GitHube.",[756,1067,1068],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":220,"searchDepth":221,"depth":221,"links":1070},[1071,1072,1073,1074,1075,1076],{"id":787,"depth":221,"text":788},{"id":817,"depth":221,"text":818},{"id":851,"depth":221,"text":852},{"id":1040,"depth":221,"text":1041},{"id":1050,"depth":221,"text":1051},{"id":357,"depth":221,"text":358},"\u002Fblog\u002Fnuxt-3-pre-moderny-web\u002Fcover.webp","2026-05-28","SSR, SSG, hybrid rendering, edge deployment... Nuxt 3 zvláda všetko. Vysvetlíme, prečo je práve táto technológia základom Modulo CMS.",{},"\u002Fblog\u002Fnuxt-3-pre-moderny-web",{"title":779,"description":1079},"blog\u002Fnuxt-3-pre-moderny-web","imtPlU9IuuzwvdaujQfhlk7bV6z8we6ZdxHpCzkShnk",{"id":1086,"title":1087,"author":6,"body":1088,"category":1288,"cover":1289,"date":1290,"description":1291,"extension":233,"meta":1292,"navigation":235,"path":1293,"published":235,"seo":1294,"stem":1295,"__hash__":1296},"blog\u002Fblog\u002Fblog-modul-do-detailov.md","Blog modul — od napísania po publikovanie za 3 kroky",{"type":8,"value":1089,"toc":1280},[1090,1096,1099,1102,1106,1109,1120,1124,1127,1130,1150,1153,1157,1160,1163,1168,1172,1179,1240,1246,1250,1253,1257,1260,1274,1277],[11,1091,1092,1093],{},"Najdôležitejšia vec pri CMS systéme nie je technológia. Je to ",[32,1094,1095],{},"rýchlosť, s akou sa myšlienka stane publikovaným článkom.",[11,1097,1098],{},"Vo väčšine systémov to vyzerá takto: prihlásiť sa, nájsť tlačidlo \"nový príspevok\", vyplniť 15 polí, vybrať kategóriu z rozbaľovacieho menu, nahrať titulný obrázok, nastaviť SEO... až potom môžete písať.",[11,1100,1101],{},"V Modulo CMS je to inak.",[18,1103,1105],{"id":1104},"krok-1-otvorte-editor","Krok 1: Otvorte editor",[11,1107,1108],{},"Kliknete na \"Nový článok\" v admin paneli. Otvorí sa TipTap editor — čistý, plnoekránový, bez rozptyľovania. Ľavá strana je váš text, pravá má len to najnutnejšie: názov, popis, kategória, autor, dátum, prepínač publikovať\u002Fuložiť koncept.",[11,1110,1111,1112,1115,1116,1119],{},"Editor podporuje Markdown syntax — ak napíšete ",[572,1113,1114],{},"## Nadpis",", zobrazí sa nadpis. ",[572,1117,1118],{},"**tučné**"," urobí tučné písmo. Môžete však jednoducho aj klikať na tlačidlá v nástrojovej lište.",[18,1121,1123],{"id":1122},"krok-2-píšte","Krok 2: Píšte",[11,1125,1126],{},"Toto je krok, ktorý väčšina CMS systémov kazí. Editor je buď príliš jednoduchý (len čistý text) alebo príliš komplikovaný (plnohodnotné DTP s desiatkami možností).",[11,1128,1129],{},"TipTap editor v Modulo CMS je zlatý stred:",[83,1131,1132,1135,1138,1141,1144,1147],{},[29,1133,1134],{},"Nadpisy H2, H3",[29,1136,1137],{},"Tučné, kurzíva, odkaz",[29,1139,1140],{},"Odrážkový a číslovaný zoznam",[29,1142,1143],{},"Blokový citát",[29,1145,1146],{},"Kód inline aj blokový",[29,1148,1149],{},"Horizontálna čiara",[11,1151,1152],{},"Nič viac. Nič menej. Pre editoriálny obsah je to viac ako dosť.",[18,1154,1156],{"id":1155},"krok-3-publikujte","Krok 3: Publikujte",[11,1158,1159],{},"Keď ste spokojní, prepnete prepínač \"Publikovať\" a uložíte. Hotovo.",[11,1161,1162],{},"Pod povrchom sa stane nasledovné: admin panel uloží Markdown súbor na disk. Verejný web (@nuxt\u002Fcontent) sleduje tento adresár a automaticky zaregistruje nový článok. Žiadna databázová operácia, žiadne čakanie na deploy.",[11,1164,1165],{},[32,1166,1167],{},"Čas od \"nový článok\" po \"živý na webe\": zvyčajne menej ako minúta.",[18,1169,1171],{"id":1170},"čo-sa-deje-s-obsahom","Čo sa deje s obsahom?",[11,1173,1174,1175,1178],{},"Každý článok je uložený ako ",[572,1176,1177],{},".md"," súbor s YAML frontmatter. Vyzerá to takto:",[566,1180,1184],{"className":1181,"code":1182,"language":1183,"meta":220,"style":220},"language-markdown shiki shiki-themes github-light github-dark","---\ntitle: Môj článok\ndescription: Popis pre SEO\ndate: 2026-05-22\ncategory: cms\nauthor: Tomáš Renčík\ncover: \u002Fblog\u002Fblog-modul-do-detailov\u002Fcover.webp\npublished: true\n---\n\nText článku...\n","markdown",[572,1185,1186,1191,1196,1201,1206,1211,1216,1221,1226,1230,1235],{"__ignoreMap":220},[575,1187,1188],{"class":577,"line":578},[575,1189,1190],{},"---\n",[575,1192,1193],{"class":577,"line":221},[575,1194,1195],{},"title: Môj článok\n",[575,1197,1198],{"class":577,"line":370},[575,1199,1200],{},"description: Popis pre SEO\n",[575,1202,1203],{"class":577,"line":618},[575,1204,1205],{},"date: 2026-05-22\n",[575,1207,1208],{"class":577,"line":629},[575,1209,1210],{},"category: cms\n",[575,1212,1213],{"class":577,"line":950},[575,1214,1215],{},"author: Tomáš Renčík\n",[575,1217,1218],{"class":577,"line":963},[575,1219,1220],{},"cover: \u002Fblog\u002Fblog-modul-do-detailov\u002Fcover.webp\n",[575,1222,1223],{"class":577,"line":975},[575,1224,1225],{},"published: true\n",[575,1227,1228],{"class":577,"line":997},[575,1229,1190],{},[575,1231,1232],{"class":577,"line":1007},[575,1233,1234],{"emptyLinePlaceholder":235},"\n",[575,1236,1237],{"class":577,"line":1013},[575,1238,1239],{},"Text článku...\n",[11,1241,1242,1243],{},"Výhodou je, že obsah je čitateľný aj bez CMS systému. Môžete ho otvoriť v akomkoľvek textovom editore, zálohovať do gitu, preniesť na iný systém. ",[32,1244,1245],{},"Váš obsah je skutočne váš.",[18,1247,1249],{"id":1248},"kategórie-a-filtrovanie","Kategórie a filtrovanie",[11,1251,1252],{},"Blog modul podporuje kategórie, na verejnom webe funguje filtrovanie v reálnom čase — bez načítania stránky. Čitateľ klikne na kategóriu a karta okamžite filtruje. Toto je možné vďaka reaktivite Vue 3.",[18,1254,1256],{"id":1255},"čo-plánujeme","Čo plánujeme",[11,1258,1259],{},"V ďalšej verzii blog modulu plánujeme:",[83,1261,1262,1265,1268,1271],{},[29,1263,1264],{},"Titulné obrázky článkov",[29,1266,1267],{},"Súvisiace články na konci detailu",[29,1269,1270],{},"Vyhľadávanie v obsahu",[29,1272,1273],{},"RSS feed automaticky generovaný z MD súborov",[11,1275,1276],{},"Ak vás zaujíma konkrétna funkcia, napíšte nám — dopyt klientov určuje poradie vývoja.",[756,1278,1279],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":220,"searchDepth":221,"depth":221,"links":1281},[1282,1283,1284,1285,1286,1287],{"id":1104,"depth":221,"text":1105},{"id":1122,"depth":221,"text":1123},{"id":1155,"depth":221,"text":1156},{"id":1170,"depth":221,"text":1171},{"id":1248,"depth":221,"text":1249},{"id":1255,"depth":221,"text":1256},"cms","\u002Fblog\u002Fblog-modul-do-detailov\u002Fcover.webp","2026-05-22","Pozrite sa, ako funguje editorial workflow v Modulo CMS. Žiadna databáza, žiadne špeciálne nástroje — len text, ktorý si nájde cestu k čitateľovi.",{},"\u002Fblog\u002Fblog-modul-do-detailov",{"title":1087,"description":1291},"blog\u002Fblog-modul-do-detailov","u88icJhEaaMV-tqHSmH3ycSzYQPNeFvSmpxLjQb7Lyc",{"id":1298,"title":1299,"author":6,"body":1300,"category":1288,"cover":1402,"date":1403,"description":1404,"extension":233,"meta":1405,"navigation":235,"path":1406,"published":235,"seo":1407,"stem":1408,"__hash__":1409},"blog\u002Fblog\u002Fpreco-headless-cms.md","Prečo sme vsadili na headless CMS — a neoľutovali",{"type":8,"value":1301,"toc":1391},[1302,1308,1311,1315,1318,1321,1324,1328,1331,1337,1341,1345,1348,1352,1355,1359,1362,1366,1369,1372,1375,1379,1382],[11,1303,1304,1305],{},"Keď sme začínali budovať Modulo CMS, mali sme jednoduchú otázku: ",[32,1306,1307],{},"Prečo musí byť správa obsahu viazaná na konkrétny dizajn?",[11,1309,1310],{},"Tradičné CMS systémy ako WordPress fungujú tak, že frontend (šablóna) a backend (obsah + databáza) sú súčasťou toho istého systému. To má svoje výhody — všetko je na jednom mieste. Ale má to aj zásadnú nevýhodu.",[18,1312,1314],{"id":1313},"problém-s-monolitickým-prístupom","Problém s monolitickým prístupom",[11,1316,1317],{},"Predstavte si, že máte napísaných 200 článkov v systéme XY. Rozhodnete sa prerobiť web. Čo teraz? Musíte celý web prerobiť v tom istom systéme, alebo exportovať obsah a importovať ho niekde inde — čo je zdĺhavé a náchylné na chyby.",[11,1319,1320],{},"Alebo chcete zobraziť obsah zároveň na webe aj v mobilnej aplikácii. V tradičnom CMS to zvyčajne znamená duplicitu — dvaja redaktori píšu to isté.",[11,1322,1323],{},"Headless CMS rieši oba problémy naraz.",[18,1325,1327],{"id":1326},"čo-znamená-headless","Čo znamená \"headless\"",[11,1329,1330],{},"Headless CMS ukladá obsah bez toho, aby vedel, kde a ako sa zobrazí. Obsah je dostupný cez API alebo priamo ako súbory (v našom prípade Markdown). Frontend — teda to, čo vidí návštevník — si môžete postaviť v akejkoľvek technológii.",[11,1332,1333,1334],{},"V Modulo CMS je obsah uložený v Markdown súboroch. Admin panel slúži na ich správu. Verejný web ich načítava a zobrazuje. ",[32,1335,1336],{},"Sú to dve nezávislé aplikácie, ktoré spolupracujú.",[18,1338,1340],{"id":1339},"výhody-ktoré-sme-sami-zažili","Výhody, ktoré sme sami zažili",[262,1342,1344],{"id":1343},"sloboda-vo-frontende","Sloboda vo frontende",[11,1346,1347],{},"Keď sme menili dizajn verejného webu, nemuseli sme sa dotknúť ani jedného obsahu. Zmena vizuálu neznamená žiadnu migráciu dát.",[262,1349,1351],{"id":1350},"obsah-raz-použitie-viackrát","Obsah raz, použitie viackrát",[11,1353,1354],{},"Rovnaký Markdown súbor môže čítať web, mobilná aplikácia, aj RSS feed. Obsah je v jednom mieste, formát výstupu závisí od konzumenta.",[262,1356,1358],{"id":1357},"rýchlosť-a-bezpečnosť","Rýchlosť a bezpečnosť",[11,1360,1361],{},"Keďže verejný web nemusí komunikovať s databázou v reálnom čase, môže byť staticky vygenerovaný. Je rýchlejší a bezpečnejší — neexistuje priamo exponovaná databáza.",[18,1363,1365],{"id":1364},"kedy-headless-cms-nie-je-vhodný","Kedy headless CMS nie je vhodný",[11,1367,1368],{},"Je dôležité byť úprimný. Headless nie je pre všetkých.",[11,1370,1371],{},"Ak potrebujete rýchlo rozbehnúť jednoduchý blog bez vývojára, WordPress s hotovou temou je stále legitímna voľba. Headless CMS vyžaduje aspoň základné pochopenie, ako funguje frontend a backend.",[11,1373,1374],{},"Pre tímy s vývojármi alebo pre projekty, kde je dôležitá flexibilita a výkon, je headless prístup dlhodobo správnejší.",[18,1376,1378],{"id":1377},"naša-odpoveď-modulo-cms","Naša odpoveď: Modulo CMS",[11,1380,1381],{},"Modulo CMS sme navrhli tak, aby headless prístup bol čo najpristupnejší. Admin panel je intuitívny pre každého redaktora. Markdown formát je jednoduchý a prenositeľný. Verejný web beží na Nuxt 3 — jednom z najrýchlejších frameworkov.",[11,1383,1384,1385,1037],{},"Ak sa chcete pozrieť, ako to funguje v praxi, admin panel je dostupný na ",[214,1386,1390],{"href":1387,"rel":1388},"https:\u002F\u002Fadmin.modulocms.sk",[1389],"nofollow","admin.modulocms.sk",{"title":220,"searchDepth":221,"depth":221,"links":1392},[1393,1394,1395,1400,1401],{"id":1313,"depth":221,"text":1314},{"id":1326,"depth":221,"text":1327},{"id":1339,"depth":221,"text":1340,"children":1396},[1397,1398,1399],{"id":1343,"depth":370,"text":1344},{"id":1350,"depth":370,"text":1351},{"id":1357,"depth":370,"text":1358},{"id":1364,"depth":221,"text":1365},{"id":1377,"depth":221,"text":1378},"\u002Fblog\u002Fpreco-headless-cms\u002Fcover.webp","2026-05-15","Tradičné systémy spájajú obsah s prezentáciou natvrdo. Headless prístup ich oddeľuje a dáva vám slobodu. Tu je to, čo sme sa naučili.",{},"\u002Fblog\u002Fpreco-headless-cms",{"title":1299,"description":1404},"blog\u002Fpreco-headless-cms","OzCP79g34sel9JJL6ywuyJSOMmJpLNB1syT276U-Jf0",1782179200467]