Tradiční systémy pro správu obsahu (CMS z anglického content management system) poskytují velmi malou flexibilitu co se týče správy obsahu pro více platforem současně (typicky desktop + mobilní aplikace). Zavedení mobilní (nebo obecně IoT) funkčnosti do aplikační architektury, tak může představovat výzvy a komplikace. To je jeden z důvodů proč se čím dál více vývojářů rozhodlo jít cestou "headless" CMS.
Co je to Headless CMS?
"Head" (hlava) v "headless CMS" označuje frontend. "Headless" (bezhlavý) systém správy obsahu se skládá především z rozhraní API a technologie na straně backendu, potřebných k ukládání a poskytování obsahu. "Headless" přístup umožňuje vývojářům poskytovat obsah jako službu, zkráceně jako CaaS, což jednoduše znamená, že ukládání a distribuce obsahu jsou zpracovány samostatným softwarem.
Headless CMS může mít následující úkoly:
- modelování, tvorba a autorizace obsahu
- uspořádání úložišť obsahu (databáze)
- zlepšení pracovního postupu a spolupráce
Jako kompromis však "Headless" CMS postrádají tzv. "web delivery" vrstvy, jako jsou například šablonovací systémy. Na rozdíl od tradiční architektury CMS, která vyžaduje, abyste dodržovali specifická pravidla a používali určené programovací jazyky, "headless" systém CMS dává vývojářům úplnou kontrolu nad tím, jak je obsah prezentován uživateli.
Z technického hlediska umožňuje "headless" systém CMS používat volání rozhraní API k vykreslení obsahu v rámci kódové základny webu, a nikoliv k vytvoření komplexních vztahů mezi kódem a obsahem. Z tohoto důvodu můžeme říct, že má "headless" architektura velmi snadnou údržbu. Na rozdíl od tradičního CMS, "headless" CMS také obvykle nevyžaduje externího hosta, jelikož existují možnosti vlastního hostování. V neposlední řadě se také nemusíte obávat všech nekonečných bezpečnostních aktualizací a dalších otázek údržby, které přicházejí s použitím tradičního CMS, jako je WordPress.
Tradiční CMS vs Oddělené CMS vs Headless CMS
Může se stát, že se pojmy "headless" a "decoupled" (oddělené) CMS používají zaměnitelně, ale ve skutečnosti popisují různé systémy. Zde je přehled tří typů architektury CMS:
Tradiční CMS
V tradičním CMS jsou backend a frontend neoddělitelně spojeny. Všechny aplikace pro návrh a přizpůsobení webových stránek jsou uloženy v backendu, zatímco návštěvníci vidí frontend. Mnoho populárních blogovacích platforem, jako jsou WordPress a Squarespace, jsou spojeny s nástroji CMS.
Tradiční CMS obsahuje:
- databáze pro ukládání obsahu
- backend, kde se generuje obsah
- frontend - rozhraní pro zobrazování publikovatelného obsahu na stránkách (HTML, CSS, Javascript, jQuery, Angular..)
Oddělené CMS
V odděleném systému CMS jsou backend a frontend spravovány dvěma samostatnými systémy. Po úpravě v CMS musí být obsah přesunut přes rozhraní API a publikován na frontendu. V důsledku toho je architektura frontendu velmi čitelná.
Oddělené CMS se skládá z:
- databáze pro ukládání obsahu
- administrativní rozhraní vč. aplikací určených pro tvorbu a správu obsahu
- Předdefinovaný frontend pro publikování obsahu, který je propojen s backendem prostřednictvím rozhraní API
Headless CMS
"Headless" architektura neobsahuje žádný systém frontend. Místo toho je obsah zveřejněn v rozhraní API nebo webové službě, která je schopna tisknout obsah přímo do libovolného inteligentního zařízení.
Významnou výhodou použití "headless" CMS je to, že stejný obsah lze zveřejnit na webových stránkách, v mobilní aplikaci nebo v čemkoliv, co je spojeno s IoT (
Internet Of Things). Z dlouhodobého hlediska má "headless" přístup praktické důsledky pro IO a umělou inteligenci, v krátkodobém horizontu může spravovat obsah v různých formátech mnohem jednoduššeji, jelikož
obsah není vázán na předem určenou strukturu.
"Headless" systém CMS má pouze:
- zálohování pro správu obsahu
- API
Výhody "headless" CMS architektury
Jak jsme již zmínili, existuje mnoho výhod pro použití "headless" CMS. Mezi pět největších výhod patří:
- Flexibilita - Někteří vývojáři považují tradiční architekturu CMS za frustrující. Použití "headless" systému CMS vám dává možnost vytvořit frontendovou strukturu, která má smysl pro váš projekt. Jelikož každý "headless" CMS přichází s dobře definovaným rozhraním API, mohou vývojáři více času věnovat spíše tvorbě obsahu než jeho správě.
- Rychlejší uvedení na trh - Autoři se nemusí zabývat tím, jak různé frontendy zobrazují jejich obsah, protože všechny úpravy postupně projdou přes všechny technologie systému. To nejen urychluje výrobu, ale také umožňuje opakované použití a kombinování jednotlivých položek obsahu.
- Kompatibilita - Můžete zobrazovat obsah na libovolném zařízení při správě z jedné pohodlné backendové aplikace.
- Extra zabezpečení - Vzhledem k tomu, že platforma pro publikování obsahu není dostupná z databáze CMS, použití "headless" CMS snižuje riziko útoků DDoS.
- Škálovatelnost - Udržování backend a frontend oddělených od sebe obvykle znamená, že neexistuje žádný "downtime" (čas, kdy je zařízení, které provádí úkony zaneprázdněno) při údržbě, takže můžete upgradovat a přizpůsobovat své webové stránky bez ohrožení výkonu.
Výzvy při použití "headless" CMS
S větší svobodou přichází větší odpovědnost. Vzhledem k tomu, že vykreslování frontend musí být řešeno samostatným softwarem, vývojáři musí znát více kódových základen. "Headless" systém CMS může také představovat výzvy při formátování, jelikož nikdy nemáte přesnou vizualizaci toho, jak bude Váš obsah vypadat na stránce. Proto musíte přijmout dodatečná opatření, abyste předvídali, jak se věci na frontend objeví.
Používat "headless" CMS může také vést k degradaci personalizace. Kvůli oddělení obsahu a "doručení" nemusí správce CMS shromažďovat dostatečné množství informací o návštěvnících tak, aby vrátil personalizovaný obsah. Naštěstí existují nástroje pro BI (business intelligence), které mohou tomuto problému předcházet tím, že vám umožní shromažďovat kompletní analytické údaje obsahu.
Při použití "headless" architektury však budete nejspíše muset nastavit oprávnění a uživatelská pověření pro ochranu důvěrného obsahu od neautorizovaných uživatelů, což může být únavné.
Kdy použít "headless" CMS?
"Headless" správa obsahu může být ideální pro následující případy použití:
- Webové stránky a aplikace používající javascript a jeho modifikace.
- Každý ekosystém, kde je stejný obsah publikován na více platformách.
- Pokud máte pocit, že tradiční systém CMS do vašeho projektu přináší příliš vysokou rigiditu (tuhost, neohebnost), může vám volba "headless" CMS pomoci přesněji dosáhnout vaší představy. Vývojáři mobilních aplikací mají mimořádnou výhodu v oblasti správy obsahu, protože API jim umožňuje předávat obsah do aplikace iOS nebo Android ze stejného prostředí.