Headless CMS - wydajnie i bezpiecznie

W ostatnim czasie coraz większe zainteresowanie przyciąga nowe podejście do tworzenia serwisów treściowych i aplikacji webowych, które zyskało nazwę Headless CMS. A na czym ono właściwie polega?

Dotychczas panel administracyjny do zarządzania treściami oraz szablon je prezentujący stanowiły spójną całość i działały jako jedno oprogramowanie. Zmiany w sposobie konsumpcji treści oraz zwiększenie wymagań odnośnie bezpieczeństwa i wydajności uwydatniły różne wady takiego podejścia.

Do często napotykanych problemów należały m.in. trudności z wykorzystaniem najnowszych technologii przeglądarkowych (takich jak React - biblioteka udostępniona przez twórców Facebooka) do prezentacji treści czy mało wydajne pluginy w Wordpressie (popularnym systemie CMS), które zwalniały całą stronę.

Rozwiązaniem częsci bolączek okazało się podejście "bezgłowe" (ang. headless), polegające na całkowitym oddzieleniu od siebie sposobu zarządzania treściami od aplikacji, z której korzysta użytkownik. Dane dostarczane są przez API i mogą być wykorzystywane przez dowolneą aplikację końcową.

API to sposób na zwracania danych w postaci "surowej", które możemy później wyświetlić w dowolnej formie - np. jako tabelka na stronie internetowej lub lista w aplikacji mobilnej.

Istnieją dwie szkoły korzystania z Headless CMS.

Generowanie statyczne
  • aplikacja dostępna dla użytkownika została wcześniej wygenerowana do postaci statycznej,
  • rozwiązanie to jest bardzo szybkie oraz bezpieczne, ponieważ dane są wygenerowane wcześniej i nie są pobierane na żywo z istniejącego systemu,
  • wiążę się to jednak z poważnym ograniczeniem - po każdej zmianie musimy wygenerować naszą stronę na nowo, co zwłaszcza przy dużych projektach może wymagać niemało zasobów.
Generowanie dynamiczne
  • użytkownik korzystający z aplikacji za każdym razem pobiera najnowsze dane z API,
  • rozwiązanie to jest mniej wydajne, ponieważ system z treściami jest naszym wąskim gardłem
  • dziura w panelu administracyjnym (np. Wordpressie) może zostać wykorzystany do włamania na naszą stronę.

Next.js - weźmy to co najlepsze z obu światów

Obie powyższe strategie mają swoje plusy i minusy. Od jakiegoś czasu powstają jednak rozwiązania próbujące pogodzic oba podejścia, a jednym z nich jest Next.js, który pozwala na tworzenie stron statycznych w sposób dynamiczny.

Brzmi to oczywiście jak oksymoron, ale twórcy tego rozwiązania stworzyli wydajną hybrydę fachowo nazwaną Incremental Static Regeneration (ISR), dzięki której w łatwy sposób możemy przeładowywać pojedyncze strony bez potrzeby budowania całej strony na nowo.

Serwisy internetowe i aplikacje webowe tworzone w Next.js należą do najszybszych w swojej kategorii. Do najbardziej znanych przykładów takich realizacji należą: strona internetowa aplikacji Tik-Tok, strona HBO Max czy strona firmy Nike.

Chcesz porozmawiać o migracji swojego projektu do Next.js lub Headless CMS?

Cześć! Nazywam się Artur Kędziora i jestem jednym z założycieli firmy Southern Sun. Z chęcią opowiem Ci więcej o naszej ofercie i rzeczach, które możemy wspólnie zrobić.