Headless CMS – Aplicatiile in WordPress de maine

Ce este Headless CMS?

Un CMS (sistem de gestionare a continutului) fara cap, foloseste doar partea de BackEnd a unei aplicatii full stack, care poate expune functionalitatile si datele prin punctele finale (URL-uri) REST sau GraphQL.

Deci, in loc sa folosim WordPress pentru stocarea datelor si crearea HTML-ului, il folosim doar pentru stocarea si expunerea datelor, apoi folosim Next.js sau orice alt cadru pentru a crea HTML-ul si ne ocupam de FrontEnd. parte a aplicatiei.

Cand Folosim WordPress ca un Headless CMS?

Pentru realizarea unui site de prezentare putem folosi WordPress asa cum vine, si nu este necesar sa folosim WordPress-ul doar pentru BackEnd. Exista insa cazuri cand dorim sa dezvoltam o aplicatie bazata pe WordPress care are foarte multe functionalitati, si atunci e indicat sa folosim WordPress-ul doar pentru BackEnd, la care ne conectam cu REST API sau GraphQL. In felul asta decuplam FrontEnd-ul de BackEnd si ne putem focusa pe construirea unei interfete foarte performante ca viteza si functionalitate. Pentru site-urile care au un trafic mare, temele in WordPress nu sunt asa performante si vin cu tot felul de Plugin-uri in jQuery inclusiv jQuery, crescand dimensiunea fisierelor JS, css. De asemeni, este mai usor in React.js/Next.js sa fie dezvoltate componente care interactioneaza intre ele si sunt reutilizabile, decat in implementarea de functionalitati intr-o tema de WordPress in jQuery ce presupune utilizarea de AJAX pentru a nu reincarca pagina cand avem de realizat update-uri de sectiuni.

Arhitectura bazei de date in WordPress este axata pe tabelele Posts si Posts Meta, si in unele cazuri interogarile pot dura foarte mult, insa in cazul in care avem de implementat de exemplu o cautare dupa articole care sa fie foarte performanta, putem implementa ElasticSearch care indexeaza intr-o tabela liniara atat informatiile din Posts cat si Posts Meta.

Un alt motiv de a folosi WordPress ca un Headless CMS, este acela atunci cand avem nevoie de un BackEnd care sa suporte REST API sau GraphQL. De exemplu pentru realizarea unei aplicatii pe telefon, putem folosi foarte usor WordPress. Ne putem bucura de faptul ca avem deja o interfata de administrare, o baza de date care are niste standarde si care e extensibila sau care poate fi indexata in ElasticSearch sau Sphinx, si ca e API Ready prin REST API sau GraphQL. Desigur exista si alte solutii, Precum Strapi sau Recoil, solutii testate de mine si care sunt foarte bune, precum si Django in Python sau Laravel in PHP.

Facand o balanta pret per valoare cred ca WordPress este o soutie foarte buna pentru o arhitectura JamStack cu WordPress ca Headless CMS.