← Wszystkie posty7 min czytania

Post · 09

Headless CMS: co to jest i kiedy ma sens dla firmy

Headless CMS to system zarządzania treścią, w którym panel edycji i przechowywanie danych są oddzielone od frontendu wyświetlającego stronę. Treści trafiają do osobnej aplikacji przez interfejs programistyczny, najczęściej REST API lub GraphQL. Dla firmy ma to sens wtedy, gdy rozdzielenie tych warstw rozwiązuje konkretny problem, a nie wtedy, gdy staje się celem samym w sobie.

  • headless CMS
  • architektura

Headless CMS oddziela treść od sposobu jej wyświetlania

W tradycyjnym systemie zarządzania treścią edycja, przechowywanie danych i generowanie strony są ze sobą połączone. WordPress w typowej konfiguracji obsługuje panel administracyjny, przechowuje treść i jednocześnie odpowiada za przygotowanie HTML, który później widzi użytkownik.

W architekturze headless ta zależność zostaje rozdzielona. CMS odpowiada za treści i panel, w którym są one wprowadzane, natomiast frontend powstaje jako osobna aplikacja. Może być zbudowany na przykład w Next.js albo innym rozwiązaniu przeznaczonym do tworzenia interfejsu strony.

Headless CMS nie musi sam renderować witryny. Jego podstawowym zadaniem jest udostępnienie treści frontendowi przez interfejs programistyczny. Komunikacja odbywa się zazwyczaj przez REST API albo GraphQL. Frontend pobiera potrzebne dane i sam decyduje, jak je zaprezentować.

Ta różnica ma znaczenie organizacyjne. W klasycznym WordPressie panel i strona należą do jednego systemu. Przy podejściu headless trzeba myśleć o dwóch oddzielnych częściach: miejscu do zarządzania treścią oraz aplikacji, która tę treść pokazuje.

Sam podział nie jest ani zaletą, ani wadą. Jest decyzją architektoniczną. Dopiero potrzeby konkretnej strony pokazują, czy niezależny frontend rzeczywiście coś upraszcza, czy tylko dodaje kolejną warstwę techniczną.

Edycja treści
Tradycyjny WordPress: W panelu WordPressa
Headless CMS: W panelu wybranego CMS
Przechowywanie treści
Tradycyjny WordPress: WordPress
Headless CMS: Headless CMS
Generowanie widoku strony
Tradycyjny WordPress: WordPress i jego motyw
Headless CMS: Osobny frontend
Przekazywanie treści
Tradycyjny WordPress: Wewnątrz jednego systemu
Headless CMS: Przez REST API, GraphQL lub inne API
Utrzymanie
Tradycyjny WordPress: Jeden główny system
Headless CMS: CMS oraz osobna warstwa frontendu

Jak działa strona oparta na headless CMS

Wyobraź sobie stronę firmową z ofertą, poradnikami i podstronami usług. W klasycznym WordPressie edytujesz tekst w panelu, a WordPress korzysta ze swojego motywu, aby wygenerować stronę dla odwiedzającego.

Przy headless CMS proces wygląda inaczej. Redaktor nadal pracuje w panelu administracyjnym, ale zapisane tam dane nie są bezpośrednio zamieniane przez CMS w gotową podstronę. Zamiast tego system udostępnia treść przez API, a frontend pobiera ją i wyświetla w przygotowanym układzie.

Dzięki takiemu rozdzieleniu frontend może rozwijać się niezależnie od miejsca, w którym przechowywana jest treść. Ten sam model danych nie jest bezpośrednio związany z konkretnym motywem WordPressa. Jednocześnie pojawia się wyraźna granica między tym, czym zarządza osoba edytująca zawartość, a tym, co musi przygotować programista.

Do systemów zaprojektowanych z myślą o takim sposobie pracy należą między innymi Sanity, Strapi, Contentful i Payload. Różnią się sposobem konfiguracji i modelem działania, dlatego sam napis „headless” nie wystarcza jeszcze do wyboru konkretnego rozwiązania.

Jeżeli rozważasz dwa z tych narzędzi, osobno opisałem Sanity czy Strapi. W praktyce ważniejsze od samej nazwy CMS jest ustalenie, jakie treści firma będzie edytować, jak ma wyglądać ich podgląd oraz jaki frontend będzie z nich korzystał.

To ostatnie pytanie często zostaje pominięte. Panel CMS może być wygodny, ale strona nadal wymaga osobnej aplikacji. Trzeba ją zbudować, połączyć z API i utrzymywać razem z systemem treści. Headless nie usuwa więc warstwy technicznej. Przenosi część odpowiedzialności z gotowego mechanizmu renderowania CMS do osobnego frontendu.

WordPress również może działać jako headless CMS

Wybór architektury headless nie musi oznaczać rezygnacji z WordPressa jako panelu administracyjnego. WordPress ma wbudowane REST API, przez które można pobierać treść do osobnej aplikacji. Można też wykorzystać WPGraphQL, czyli zewnętrzną wtyczkę udostępniającą dane przez GraphQL.

W takim wariancie WordPress pozostaje miejscem, w którym przechowywane i edytowane są treści, ale nie odpowiada już za wyświetlanie strony odwiedzającemu. Frontend może działać jako oddzielna aplikacja, na przykład zbudowana w Next.js.

To rozwiązanie jest przydatne przede wszystkim wtedy, gdy istnieje konkretny powód, aby zachować WordPressa po stronie treści, a jednocześnie odłączyć od niego warstwę prezentacji. Nie trzeba wtedy przenosić całego sposobu pracy redakcyjnej do innego CMS tylko dlatego, że frontend ma zostać napisany osobno.

Trzeba jednak pamiętać, że nadal powstają dwa elementy. WordPress wymaga utrzymania jako backend, a osobny frontend ma własny kod, konfigurację i proces wdrożenia. Z punktu widzenia właściciela firmy różnica nie sprowadza się więc do nazwy technologii. Pytanie brzmi raczej: czy korzyść z niezależnego frontendu uzasadnia utrzymywanie takiej architektury.

Więcej o tym wariancie opisuję na stronie headless WordPress. Jest to rozwiązanie pośrednie między klasycznym WordPressem renderującym całą stronę a przejściem na CMS zaprojektowany od początku jako system headless.

Headless CMS ma sens, gdy rozdzielenie warstw rozwiązuje problem

Najważniejszym argumentem za headless CMS nie powinna być sama nowoczesność rozwiązania. Architektura jest uzasadniona wtedy, kiedy potrzebujesz niezależnego frontendu i potrafisz wskazać, po co ma on być niezależny od systemu treści.

Przykładem jest sytuacja, w której treść ma być oddzielona od jednego konkretnego sposobu prezentacji. CMS przechowuje wtedy dane, a frontend korzysta z nich przez API. Możesz rozwijać aplikację prezentującą treść bez przenoszenia całej zawartości do nowego panelu.

Taki podział pasuje również do projektów, w których frontend jest osobnym produktem technicznym, a nie tylko warstwą szablonu CMS. Wtedy system treści pełni jasno określoną rolę: pozwala zarządzać informacjami, które później pobiera aplikacja.

Z punktu widzenia firmy headless warto rozważyć przede wszystkim wtedy, gdy występuje przynajmniej jedna z tych sytuacji:

• chcesz świadomie oddzielić panel zarządzania treścią od aplikacji, która ją prezentuje,

• WordPress ma pozostać zapleczem treści, ale frontend ma być zbudowany i rozwijany niezależnie,

• projekt od początku zakłada osobny frontend korzystający z danych dostarczanych przez API,

• zespół potrzebuje modelu treści, który nie jest bezpośrednio związany z jednym motywem strony.

To nie jest jednak automatyczny argument za migracją istniejącej witryny. Jeżeli obecna strona nie ma problemu wynikającego z połączenia panelu i frontendu, samo rozdzielenie tych elementów nie daje jeszcze biznesowego uzasadnienia dla zmiany.

Przy decyzji zacznij więc od potrzeb strony, a dopiero później wybieraj narzędzia. Jeśli wymaganiem jest po prostu wygodna edycja podstron firmowych, nie trzeba zakładać z góry, że treść powinna być obsługiwana przez osobny CMS, a witryna przez osobną aplikację.

Zwykły WordPress może być prostszy, gdy nie potrzebujesz osobnego frontendu

Headless dodaje elementy, których klasyczna strona WordPress nie potrzebuje. Najbardziej oczywisty to osobny frontend. Drugim jest połączenie między frontendem i CMS. Dochodzi też kwestia podglądu treści przed publikacją.

W tradycyjnym WordPressie panel administracyjny i mechanizm renderowania strony należą do jednego systemu. Jeżeli strona firmowa ma standardową strukturę, a głównym zadaniem CMS jest edycja treści dokładnie w obrębie tej witryny, taki model może po prostu odpowiadać temu zastosowaniu.

W nowych projektach WordPress można połączyć z własnym motywem i polami ACF, dzięki czemu edytowane sekcje odpowiadają przygotowanemu projektowi. Nie wymaga to używania Elementora, Divi, Avady ani innych kreatorów. Jeśli zależy Ci właśnie na takim podejściu, więcej informacji znajdziesz na stronie tworzenie stron WordPress.

Największym praktycznym kosztem złożoności headless jest to, że panel CMS i strona nie są jednym systemem. Każda funkcja oparta na ścisłej współpracy edytora z widokiem strony musi uwzględniać ten podział.

Dobrym przykładem jest podgląd treści na żywo. W odseparowanej architekturze trzeba skonfigurować specjalny tryb, który połączy wersję roboczą zawartości z osobnym frontendem. Nie oznacza to, że podglądu nie da się zrobić. Oznacza natomiast, że nie pojawia się on automatycznie tylko dlatego, że wybrany CMS ma panel do edycji.

Dla osoby zarządzającej stroną różnica jest istotna. Jeżeli podgląd zmian przed publikacją stanowi ważną część codziennej pracy, trzeba uwzględnić go już na etapie projektowania architektury. W przeciwnym razie można otrzymać wygodny panel do wprowadzania danych, ale mniej wygodny proces sprawdzania, jak te dane wyglądają na gotowej stronie.

Wybór CMS zaczyna się od architektury, nie od rankingu narzędzi

Sanity, Strapi, Contentful i Payload należą do systemów, które można wykorzystać jako headless CMS. Sam fakt, że wszystkie mieszczą się w tej samej kategorii, nie oznacza jednak, że wybór między nimi powinien zaczynać się od tabeli funkcji.

Najpierw trzeba ustalić, kto będzie edytował treści, jaki rodzaj danych ma przechowywać CMS, jak będzie działał frontend i czy potrzebny jest podgląd wersji roboczych. Dopiero na tej podstawie można oceniać konkretne narzędzia.

Koszt samego CMS także nie powinien być sprawdzany na podstawie starego artykułu czy pojedynczej kwoty zapamiętanej z wcześniejszego cennika. Dostawcy mają różne plany, limity i zasady rozliczania, które mogą się zmieniać. Przed wyborem trzeba więc sprawdzić aktualny cennik Sanity, Contentful, Strapi Cloud lub innego rozważanego rozwiązania.

Do kosztu systemu dochodzi również osobny frontend i jego utrzymanie. To konsekwencja samej architektury: CMS przechowuje treści, natomiast warstwa prezentacji działa oddzielnie. Dlatego porównywanie wyłącznie cen paneli administracyjnych nie opisuje całego rozwiązania.

W praktyce decyzja między tradycyjnym CMS a headless sprowadza się do prostego pytania: czy firma rzeczywiście potrzebuje rozdzielenia zarządzania treścią od sposobu jej wyświetlania. Jeśli tak, Sanity, Strapi, Contentful, Payload albo WordPress działający jako backend mogą być punktami wyjścia do dalszego wyboru. Jeśli nie, dodatkowy CMS, API, osobny frontend i konfiguracja podglądu stają się kolejnymi elementami projektu, które trzeba wdrożyć i później utrzymywać.

FAQ

Najczęstsze pytania.

Czym headless CMS różni się od zwykłego WordPressa?
W typowej instalacji WordPress łączy panel edycji, przechowywanie treści i generowanie strony. Headless CMS udostępnia treść osobnemu frontendowi przez API, więc panel i warstwa widoczna dla użytkownika działają niezależnie.
Czy WordPress może działać jako headless CMS?
Tak. WordPress ma wbudowane REST API, a dane można również udostępniać przez WPGraphQL. W takim układzie WordPress pozostaje zapleczem do zarządzania treścią, a stronę wyświetla osobny frontend.
Czy w headless CMS można mieć podgląd strony przed publikacją?
Tak, ale wymaga to połączenia wersji roboczej treści z oddzielnym frontendem. Taki podgląd trzeba odpowiednio skonfigurować, ponieważ panel CMS i aplikacja prezentująca stronę są od siebie oddzielone.
Ile kosztuje headless CMS?
Zależy to od wybranego systemu, planu oraz jego aktualnych limitów. Sanity, Contentful i Strapi Cloud mają własne modele rozliczeń, dlatego przed decyzją trzeba sprawdzić bieżące cenniki, a dodatkowo uwzględnić koszt stworzenia i utrzymania osobnego frontendu.
Który headless CMS wybrać: Sanity, Strapi, Contentful czy Payload?
Nie ma jednego wyboru odpowiedniego do każdego projektu. Najpierw określ sposób edycji treści, wymagania frontendu i potrzebę podglądu wersji roboczych, a dopiero potem porównuj konkretne systemy.

Autor

Marcin Siwonia
Marcin Siwonia

Programista z Wrocławia. Od 2020 roku tworzę strony i aplikacje internetowe, od końca 2022 na własny rachunek. Ponad 30 wdrożeń komercyjnych dla firm z Polski i Niemiec, głównie WordPress, WooCommerce i Next.js.

Powiązane usługi

Pogadajmy

Masz pytanie? Napisz.

Kontakt→