Frontity, czyli React & WordPress

WordPress potrafi być niezawodnym oraz potężnym narzędziem, jeżeli jest wykorzystywany w odpowiednim celu. Próg wstępu jest dosyć niski, co sprawia, że chętnie sięgają po niego również początkujący web developerzy, a nawet ludzie, którzy nigdy nie mieli okazji programować.

Grafika z napisem WordPress.
WordPress ma 60% udziału w rynku CMS-ów

WordPress nie traci również na popularności. W momencie pisania artykułu (Maj, 2022) 42.9% stron internetowych w sieci działa właśnie na nim.

Jednym ze sposobów, aby sprawić, żeby to narzędzie było jeszcze lepsze jest podejście headless

Celem artykułu jest przedstawienie zalet oraz wad tego podejścia, oraz krótki opis frameworka Frontity.

Czym jest Headless WordPress?

Grafika z napisem Frontity.

Zacznijmy od tego czym NIE jest headless CMS.

WordPress ma w zwyczaju obsługiwać zarówno front end jak i back end, setup polega na instalacji jednej instancji CMS i działania na niej. Pliki są ściśle powiązane z szablonem oraz są z nim zintegrowane.

To podejście jest najpopularniejsze oraz najczęściej wybierane przez początkujących użytkowników, którzy chcą w szybki sposób stworzyć prostą stronę internetową.

Podejście headless zapewnia nam wygodę oddzielenia warstwy wizualnej naszej aplikacji od warstwy zarządzania treścią. Zamiast bezpośrednio zapewnić wbudowaną komunikację między frontem a cms’em, wystawiane jest REST API z którym komunikuje się nasz front end (w tym przypadku head).

Jeżeli naszym celem jest skorzystanie z takiej architektury, jednym z rozwiązań może być wykorzystanie biblioteki React.

Pojawia się wtedy niestety kilka problemów, których jeżeli nie przemyślimy w odpowiedni sposób, mogą sprawić że nasza strona nie będzie funkcjonować w sposób poprawny z ogólnie przyjętymi zasadami oraz praktykami tworzenia tego typu stron.

Problematyka

Głównymi zaletami Frontity są problemy, jakie rozwiązuje po stronie następujących zagadnień. 

SEO

Jeżeli zdecydujemy się na użycie biblioteki React, to nadal nasza strona będzie się renderować po stronie klienta, co będzie oznaczało, że stracimy wszelkie benefity SEO. Zalecane jest użycie frameworków takich jak Next.js, Gatsby lub Frontity który jest tematem tego artykułu.

Frontity zapewnia optymalizację SEO tworzonej strony internetowej, tak aby była poprawnie zaindeksowana. Framework zapewni nam dostarczenie gotowego oraz sformatowanego pliku HTML opartego o nasze komponenty napisane w React.

Frontity dostarcza nam również wiele możliwości konfiguracyjnych.

Performance

Gdy budujemy nasz projekt Frontity jego kluczowy kod jest inicjalizowany tylko raz. Framework zapewnia nam opcje pre-fetch’owania stron oraz ich danych out-of-the-box. Przez developerów została wykorzystana strategia Serverless Pre-rendering (SPR) w celu renderowania plików HTML „w locie”.

Jeśli zastosujemy strategię headless w kontekście rozwiązań CMS, nasza strona będzie o wiele lżejsza, co sprawi że doświadczenie użytkownika będzie o wiele lepsza niż przy tradycyjnym podejściu.

Security

Ponieważ front end naszej strony jest hostowany w odosobnieniu od CMS’a, to potencjalny atakujący ma utrudnione zadanie próbując wyrządzić nam szkody. Częstymi lukami w instalacjach WordPress są podejrzane lub słabo przetestowane wtyczki, które posiadają szereg podatności. Korzystając z podejścia headless uniemożliwiamy spory procent ataków, ot tak.

Flexibility

Gdy korzystamy z podstawowej wersji WordPress’a, jesteśmy skazani na język programowania PHP. Mamy dużą dowolność w doborze wtyczek oraz dopasowania naszego motywu, jednak nie dla każdego taka opcja jest odpowiednia. Wykorzystując React po stronie front, nadal możemy tworzyć i dostosowywać naszą treść w CMS.

Pozwala nam to wprowadzić porządek w przypadku większych projektów, gdzie może istnieć podział na dwa zespoły developerów, którzy specjalizują się w innych technologiach.

Ponadto możemy w dowolnym momencie zmienić architekturę (np. wybór innego frameworku front end) naszego projektu i nie będzie to stanowiło problemu.

Alternatywy dla Frontity

Monitor z kodem programistycznym.
Używanie Gatsby wraz z WordPressem to kuszące rozwiązanie dla programistów stawiających na wydajność oraz bezpieczeństwo swoich aplikacji.

Jak już wcześniej wspomniałem, istnieją różne możliwości wdrożenia nowej architektury, jednym z godnych konkurentów Frontity może być Next.js lub Gatsby.

Jedną z różnic jest to, że Frontity zostało stworzone specjalnie pod integrację z WordPress. Zapewnia optymalizację, odpowiednie wtyczki oraz bogatą bibliotekę, pozwalającą nam na komunikację z CMS’em. 

Next.js lub Gatsby są dosyć ogólnymi rozwiązaniami, które pozwalają nam głównie na dobór odpowiedniej strategii renderowania takich jak SSR lub SSG.

Samodzielny front end – Next.js

Logo – Next.js.

Jeśli decydujemy się na korzystanie z Next.js, to na nas spoczywać będzie odpowiedzialność stworzenia własnej architektury front end stworzonej do integracji z naszym CMS’em. 

Zaletą korzystania z Next.js może być jego popularność, bez problemu powinniśmy znaleźć wśród community odpowiedź na zagadnienie z którym się trapimy.

Wewnętrzna wtyczka WooCommerce – Gatsby

Logo – Gatsby.

Istnieje wiele materiałów ze strony twórców Gatsby pokazujących możliwości zintegrowania ich rozwiązania z WordPress oraz skonfigurowanie architektury headless CMS

Dostępny jest również szereg pluginów oraz artykułów prowadzących nas za rękę. Bardzo ważna jest także możliwość zintegrowania naszego systemu z wtyczką WooCommerce

Takie rozwiązanie nie jest niestety jeszcze dostępne we Frontity (mowa oczywiście rozwiązaniu o zaproponowanym przez twórców, ponieważ samodzielnie możemy stworzyć dla niego alternatywę).

Podsumowanie

Dostępne jest wiele ciekawych rozwiązań oraz opcji wyboru, ale najpierw powinniśmy się zastanowić nad kilkoma kwestiami:

Czy dane narzędzie rzeczywiście jest nam potrzebne? 
Sama nazwa nowej fancy technologii może przysłonić nam na chwilę rozumowanie, podczas gdy tradycyjne podejście jest bardzo często wystarczającym rozwiązaniem.
Do czego aplikacja ma służyć i w jaki sposób działać?
Jednym z wielu zagadnień do rozważenia jest kwestia samej struktury aplikacji i to jakie ma być jej główne zastosowanie. Może się okazać, że wcale nie potrzebujemy CMS’a lub nasze potrzeby są na tyle skomplikowane, że lepiej będzie napisać własne rozwiązanie od zera. 
Kolejną sprawą jest wdrożenie. 
W przypadku headless CMS mamy do czynienia z dwoma instancjami komunikującymi się ze sobą. Wdrożenie zwykłego WordPress’a jest dosyć łatwe nawet dla niedoświadczonej osoby.

Mimo wszystko rozwiązanie headless jest zdecydowanie bardzo przydatne w przypadku kiedy szukamy sposobów na zoptymalizowanie naszej aplikacji lub zintegrowania jej z naszym ulubionym frameworkiem front endowym.


Chcesz wiedzieć więcej o technologiach, które wykorzystujemy? Zajrzyj do zakładki Case Studies, gdzie szczegółowo opisujemy nasze najciekawsze projekty.

Michał Walczuk

Doświadczony Full-Stack Developer z silnym zapleczem w CSS i UI. W pracy tworzy zaawansowane interfejsy, a prywatnie rozwija pasję do grafiki 3D i trenuje sporty siłowe.

Przekształć
swoje pomysły w rzeczywistość

Skontaktuj się z nami i pozwól nam sprawdzić jak możemy Ci pomóc.

Najciekawsze treści na Blogu