← Wszystkie posty7 min czytania

Post · 18

Sanity czy Strapi: który headless CMS wybrać

Wybór między Sanity a Strapi to przede wszystkim wybór między usługą chmurową z Content Lake a systemem, który możesz uruchomić we własnej infrastrukturze. Oba rozwiązania są przeznaczone do projektów headless, ale inaczej rozkładają odpowiedzialność za dane, serwer, bazę i codzienne utrzymanie. Dlatego przed porównywaniem panelu czy sposobu pracy dewelopera ustal najpierw, kto ma odpowiadać za zaplecze CMS.

  • Sanity
  • Strapi
  • headless CMS
  • porównanie

Najważniejsza różnica dotyczy miejsca, w którym działa CMS

W klasycznym CMS panel administracyjny, logika systemu i sposób przechowywania treści często są traktowane jako jeden zestaw. W architekturze headless frontend jest od tego oddzielony. Treści mogą trafiać do strony lub aplikacji przygotowanej na przykład w Next.js, a CMS odpowiada głównie za ich przechowywanie, modelowanie i udostępnianie.

Jeżeli chcesz szerzej zrozumieć ten model przed wyborem konkretnego narzędzia, opisałem go osobno we wpisie headless CMS: co to jest.

W przypadku Sanity zaplecze treści jest związane z usługą chmurową producenta. Dane trafiają do Content Lake, czyli zewnętrznej usługi odpowiedzialnej za ich przechowywanie i udostępnianie. Sanity Studio, a więc środowisko używane przez redaktorów do pracy z treścią, pozostaje natomiast projektem open source.

Strapi podchodzi do tego inaczej. Community Edition jest projektem open source, który można uruchomić we własnej infrastrukturze. Firma może więc mieć własny serwer, własną bazę danych i samodzielnie odpowiadać za działanie CMS. Dostępna jest również zarządzana usługa Strapi Cloud, jeśli zespół nie chce utrzymywać całej infrastruktury we własnym zakresie.

To rozróżnienie ma większe znaczenie biznesowe niż samo pytanie, który panel wygląda lepiej. Przy Sanity część zaplecza otrzymujesz jako usługę. Przy samodzielnie hostowanym Strapi bierzesz na siebie więcej elementów technicznych, ale jednocześnie możesz zdecydować, gdzie system zostanie uruchomiony.

Sanity przenosi przechowywanie treści do usługi chmurowej

Sanity działa w modelu SaaS. Treści są przechowywane w Content Lake, a aplikacja korzystająca z CMS pobiera je z tej usługi. Nie stawiasz więc własnej bazy danych tylko po to, aby przechowywać zawartość, jak robiłbyś to przy samodzielnym hostowaniu Strapi.

Dla firmy oznacza to konkretny podział odpowiedzialności. Nie musisz planować własnej bazy CMS ani utrzymywać serwera samego systemu zarządzania treścią. Jednocześnie akceptujesz model, w którym dane są przechowywane w zewnętrznej usłudze chmurowej.

Warstwa używana przez redaktorów wygląda inaczej niż zaplecze danych. Sanity Studio jest projektem open source rozpowszechnianym na licencji MIT. Studio stanowi środowisko do edycji, natomiast treści są przechowywane w Content Lake. Warto rozdzielić te dwa elementy, bo określenie Sanity po prostu jako systemu open source nie oddaje całego modelu.

Po stronie deweloperskiej ważną częścią Sanity jest GROQ. To dedykowany język służący do tworzenia zapytań o treści. Jeżeli frontend ma pobrać konkretny zestaw danych, sposób pracy będzie więc związany nie tylko ze strukturą treści, ale również z zapytaniami przygotowywanymi właśnie w GROQ.

Sanity Studio działa w ekosystemie Node.js i wspiera pracę z TypeScript. Jeżeli strona albo aplikacja powstaje w podobnym stosie technologicznym, nie trzeba wprowadzać zupełnie odrębnego środowiska programistycznego tylko dla panelu.

Nie oznacza to jednak, że model SaaS automatycznie pasuje do każdej firmy. Jeżeli organizacja ma wymaganie, aby sam system CMS i jego baza działały we wskazanej przez nią infrastrukturze, trzeba uwzględnić tę potrzebę już na początku. W takim scenariuszu różnica między Sanity a samodzielnie hostowanym Strapi staje się podstawowym kryterium wyboru.

Strapi pozwala utrzymywać system we własnej infrastrukturze

Community Edition Strapi jest projektem open source dostępnym na licencji MIT. System można uruchomić samodzielnie, dzięki czemu firma lub jej zespół techniczny odpowiada za środowisko, w którym działa CMS.

W wariancie self-hosted Strapi oficjalnie współpracuje z MySQL, MariaDB, PostgreSQL oraz SQLite. Wybór konkretnej bazy staje się więc częścią architektury projektu. Trzeba ją uruchomić, skonfigurować i uwzględnić w utrzymaniu całego rozwiązania.

To daje inny zakres kontroli niż model Content Lake w Sanity. Firma może zdecydować o infrastrukturze, na której działa Strapi, ale taka decyzja ma konsekwencje organizacyjne. Ktoś musi odpowiadać za serwer, bazę oraz działanie systemu. Sam fakt, że oprogramowanie jest open source, nie usuwa tych obowiązków.

Strapi działa na Node.js i wspiera TypeScript, więc pod względem środowiska programistycznego może dobrze współgrać z projektami opartymi na współczesnym JavaScripcie i TypeScripcie. Jeżeli frontend powstaje jako jedna z aplikacji Next.js, oba elementy mogą funkcjonować w technologiach znanych zespołowi pracującemu z Node.js.

Samodzielne hostowanie nie jest przy tym jedyną drogą. Strapi oferuje również Strapi Cloud, czyli zarządzaną usługę chmurową. Dlatego wybór Strapi nie musi automatycznie oznaczać własnego serwera. Trzeba rozróżnić decyzję o samym CMS od decyzji o sposobie jego utrzymywania.

W praktyce oznacza to dwa możliwe podejścia. Możesz wybrać Strapi właśnie dlatego, że chcesz kontrolować jego infrastrukturę, albo korzystać z tego CMS bez samodzielnego utrzymywania środowiska, wybierając usługę chmurową. Przy ocenie ofert zawsze sprawdź, o którym wariancie mowa.

Edycja treści i praca dewelopera wynikają z architektury systemu

Przy wyborze CMS właściciel firmy zwykle patrzy na panel, natomiast deweloper również na sposób modelowania i pobierania danych. Te perspektywy trzeba połączyć, bo łatwy do uruchomienia panel niewiele daje, jeśli późniejsze zmiany w strukturze treści są trudne do wdrażania. Z drugiej strony technicznie wygodny system nie powinien utrudniać codziennej pracy osobom publikującym treści.

W Sanity środowiskiem do edycji jest Sanity Studio. Jest ono oddzielone od chmurowej warstwy przechowującej dane. Po stronie programistycznej zapytania do zawartości tworzy się przy użyciu GROQ. Oznacza to, że sposób prezentowania i pobierania treści jest częścią implementacji przygotowanej dla konkretnego projektu.

Strapi również rozdziela CMS od frontendu, ale przy samodzielnym hostowaniu dochodzi jeszcze warstwa infrastruktury pozostająca po stronie firmy lub wykonawcy. To ważne zwłaszcza wtedy, gdy po uruchomieniu serwisu nie ma stałego zespołu technicznego. Decyzja o własnym hostingu powinna obejmować nie tylko samo wdrożenie, ale też odpowiedzialność za późniejsze działanie zaplecza.

Nie sprowadzałbym więc wyboru do stwierdzenia, że jeden CMS ma lepszy panel. Najważniejsza jest różnica architektoniczna. Sanity łączy otwarte Sanity Studio z zewnętrzną usługą Content Lake. Strapi Community Edition pozwala uruchomić cały system we własnym środowisku, a Strapi Cloud daje alternatywę zarządzaną.

Dla osoby decydującej o stronie najważniejsze pytanie brzmi zatem: czy firma chce posiadać i utrzymywać własną infrastrukturę CMS, czy woli oprzeć tę część projektu na usłudze chmurowej. Dopiero później warto oceniać szczegóły pracy redakcyjnej na konkretnym modelu treści przygotowanym dla serwisu.

Koszt CMS obejmuje więcej niż sam plan lub licencję

Porównywanie Sanity i Strapi wyłącznie przez cenę widoczną w cenniku może prowadzić do błędnych wniosków. Oba produkty mają inny model, dlatego koszt składa się z innych elementów.

Sanity ma plan bezpłatny oraz płatne plany. Aktualne stawki i limity trzeba sprawdzić bezpośrednio w bieżącym cenniku Sanity, ponieważ mogą się zmieniać. W tym modelu istotne jest to, że przechowywanie treści działa jako usługa Content Lake.

Strapi Community Edition jest oprogramowaniem open source, ale przy wariancie self-hosted nadal potrzebujesz infrastruktury, na której uruchomisz system i wybraną bazę danych. Sam brak opłaty licencyjnej za Community Edition nie oznacza więc braku kosztu działania CMS.

Do porównania włącz przede wszystkim:

• plan usługi CMS, jeśli wybrany wariant go wymaga,

• serwer i bazę danych przy samodzielnym hostowaniu Strapi,

• wdrożenie i konfigurację środowiska,

• późniejsze utrzymanie infrastruktury,

• pracę deweloperską potrzebną do połączenia CMS z frontendem.

Strapi Cloud ma własne płatne plany, których aktualną wysokość również trzeba sprawdzić w bieżącym cenniku. W takim wariancie struktura kosztu będzie inna niż przy samodzielnym uruchomieniu Community Edition.

Dlatego nie traktowałbym pytania „który CMS jest tańszy?” jako samodzielnego kryterium. Najpierw trzeba ustalić wariant wdrożenia. Dopiero wtedy można porównywać koszt dwóch konkretnych architektur, a nie samych nazw produktów.

Wybór zależy od tego, kto ma utrzymywać zaplecze

Jeżeli firma chce korzystać z zewnętrznej usługi do przechowywania treści i nie planuje samodzielnie utrzymywać bazy CMS, model Sanity odpowiada takiemu założeniu. Content Lake pozostaje usługą chmurową, a Sanity Studio służy do budowy środowiska edycji.

Jeżeli wymaganiem jest możliwość uruchomienia CMS we własnej infrastrukturze, Strapi Community Edition daje taką opcję. Możesz wybrać jedną z oficjalnie obsługiwanych baz i samodzielnie zdecydować o środowisku działania systemu. Trzeba jednak od początku wskazać, kto później będzie odpowiadał za tę infrastrukturę.

Strapi nie wymaga przy tym własnego hostingu w każdym projekcie, ponieważ istnieje również Strapi Cloud. Dlatego samo stwierdzenie „chcę Strapi” jeszcze nie określa modelu utrzymania. Podobnie informacja, że Sanity Studio jest open source, nie oznacza, że cały model Sanity jest rozwiązaniem self-hosted.

Przed wyborem zadałbym więc kilka prostych pytań: gdzie mają być przechowywane treści, czy własna infrastruktura CMS jest wymaganiem, kto będzie ją utrzymywał, jaki stos technologiczny ma frontend i jak wygląda plan dalszego rozwoju serwisu. Odpowiedzi szybko zawężają wybór.

W moim stosie technologicznym obok Sanity i Strapi znajdują się również WordPress z ACF oraz Next.js. Jeśli zależy Ci na wykorzystaniu WordPressa jako zaplecza treści przy oddzielnym frontendzie, osobną opcją do sprawdzenia jest headless WordPress. Nie wybieraj Sanity lub Strapi tylko dlatego, że projekt ma być headless. Model przechowywania treści, utrzymania i odpowiedzialności za infrastrukturę powinien wynikać z wymagań firmy.

FAQ

Najczęstsze pytania.

Czym przede wszystkim różnią się Sanity i Strapi?
Sanity przechowuje treści w zewnętrznej usłudze Content Lake, natomiast Strapi Community Edition możesz uruchomić we własnej infrastrukturze. Strapi jest też dostępne jako zarządzana usługa Strapi Cloud. Najważniejsza różnica dotyczy więc modelu hostowania i odpowiedzialności za zaplecze.
Czy Sanity jest systemem open source?
Sanity Studio jest projektem open source rozpowszechnianym na licencji MIT. Treści są jednak przechowywane w chmurowej usłudze Content Lake, dlatego całego modelu Sanity nie należy utożsamiać z samodzielnie hostowanym CMS.
Czy Strapi trzeba hostować samodzielnie?
Nie. Community Edition pozwala uruchomić Strapi we własnej infrastrukturze, ale dostępna jest również zarządzana usługa Strapi Cloud. Wybierając Strapi, trzeba więc dodatkowo zdecydować o sposobie jego utrzymywania.
Jakie bazy danych obsługuje samodzielnie hostowane Strapi?
Oficjalnie wspierane są MySQL, MariaDB, PostgreSQL oraz SQLite. Wybór bazy jest częścią architektury self-hosted i trzeba uwzględnić jej konfigurację oraz późniejsze utrzymanie.
Ile kosztują Sanity i Strapi?
Sanity ma plan bezpłatny i plany płatne, a Strapi Community Edition jest projektem open source. Strapi Cloud korzysta z płatnych planów, natomiast przy self-hostingu dochodzi koszt własnej infrastruktury. Aktualne ceny i limity obu usług trzeba sprawdzić w ich bieżących cennikach.

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→