Jamstack - wszystko, co musisz wiedzieć

Laptop na stole z otwartym edytorem kodu

Jamstack to nowoczesne podejście do tworzenia szybkich, łatwych w utrzymaniu i bezpiecznych stron internetowych oraz aplikacji webowych. Nie jest żadnym konkretnym zbiorem technologii czy narzędzi - te dobiera się indywidualne na potrzeby projektu.

Popularność tego rozwiązania rośnie w ekspresowym tempie, co przekłada się na cały ekosystem rozwiązań, których powstaje coraz więcej i więcej.

Żeby zrozumieć, jak korzystny jest ten sposób implementacji, wystarczy spojrzeć na kilka dużych firm, które już korzystają z tego rozwiązania, np. Netflix, Spotify, Braun, Airbnb, Nike czy KFC.

Ilekroć w tym tekście będę odnosił się do tradycyjnej architektury serwerowej, będę miał na myśli tzw. LAMPstack, który był standardem tworzenia stron i aplikacji przez ponad dekadę.

W tekście skupię się na wyjaśnieniu, czym dokładnie jest Jamstack, jakie są jego kluczowe elementy, jak działa ekosystem z nim związany oraz przedstawię jakie przewagi zapewnia, a także jakie są jego wady.

Etymologia słowa Jamstack

Na dobry początek rozszyfrujmy sam skrót. JAM oznacza JavaScript, API, Markup, natomiast stack, to z angielskiego stos, w tym przypadku oznacza to stos technologiczny - określenie, które oznacza zbiór technologii, których używa się wspólnie ze sobą, aby stworzyć konkretny projekt.

JavaScript

Bez wątpienia jeden z najpopularniejszych języków programowania na świecie. Stworzony został 25 lat temu, początkowo był używany do tworzenia wyskakujących okienek na stronach internetowych (tzw. popupów), które irytowały użytkowników. Dzisiaj jest absolutnie kluczowy, jeżeli chodzi o internet, jaki znamy. Niezbędny składnik wszelkich aplikacji webowych oraz ważny aspekt stron internetowych. Jest jedynym językiem programowania, który jest obsługiwany przez wszystkie nowoczesne przeglądarki internetowe. Pozwala pisać kod zrozumiały zarówno dla serwera, jak i dla klienta (czyli przeglądarki internetowej). Jest na tyle wszechstronny, że dzisiaj wykorzystuje się go do uczenia maszynowego, pisania gier (nie tylko tych przeglądarkowych), czy nawet do tworzenia interfejsów rakiet kosmicznych.

W Jamstacku to właśnie JavaScript jest odpowiedzialny za tworzenie całej logiki biznesowej i nadawanie dynamiczności (o czym będziemy mówić później).

API

Programistyczny Interfejs Aplikacji (z ang. Application Programmable Interface), w skrócie API, jest zbiorem reguł określającym, w jaki sposób aplikacja może komunikować się z inną aplikacją. Słowo interfejs jest tutaj kluczowe, ponieważ oznacza ono po prostu sposób komunikowana się. Przykład? Chcesz zamieścić na swojej stronie kursy walut, które, jak wiadomo, zmieniają się każdego dnia. Zamiast codziennie wpisywać kurs danej waluty na swojej stronie, możemy wykorzystać w tym celu API (np. Narodowego Banku Polskiego)), które będzie nam zwracało aktualizowany każdego dnia kurs danej waluty, co pozwoli wyświetlać zawsze aktualny kurs walutowy na naszej stronie, bez naszej ingerencji. API może być użyte także do takich czynności jak wysyłka wiadomości e-mail czy SMS, wyświetlania postów z mediów społecznościowych, obsługa płatności i wiele, wiele innych. Zaryzykuję stwierdzenie, że nie ma dziś rzeczy, do której nie moglibyśmy wykorzystać API.

Markup

Słowo markup informuje nas o tym, że stworzona strona internetowa czy aplikacja webowa mają wcześniej sporządzony szkielet, na którym możemy operować za pomocą różnych danych, tj. podstawiać teksty, obrazki czy nawet tworzyć całe podstrony. Termin odnosi się do rozwinięcia skrótu HTML - HyperText Markup Language, czyli języka znaczników, z którego składają się wszystkie strony internetowe, które jesteśmy w stanie odwiedzić. Markup jest pierwszą rzeczą, którą przeglądarka internetowa otrzymuje, kiedy zaczyna wyświetlać końcowemu użytkownikowi jakąś witrynę. Za jego pomocą tworzy się cały fundament, który w połączeniu z językiem CSS (Cascading Style Sheets), nadaje wyglądu naszej stronie lub aplikacji.

Istotą Jamstacku jest to, że markup serwowany jest (przynajmniej w większości) jako pliki statyczne, co tworzy przewagę nad tradycyjną infrastrukturą serwerową (o tym później).

Kluczowe elementy

Definicję mamy za sobą, dlatego przyjrzymy się teraz kluczowym aspektom architektury Jamstack. Istotnym elementem dla zrozumienia, dlaczego Jamstack daje nam przewagę, jest zrozumienie, czym są treści statyczne i treści dynamiczne, w jaki sposób serwery wyświetlają nam to, co widzimy w naszych przeglądarkach oraz czym różni się renderowanie po stronie klienta, oraz po stronie serwera.

Renderowanie w dwóch wydaniach

Renderowanie to proces, w którym przeglądarka maluje piksele na naszych ekranach, tworząc spójny obraz strony internetowej bądź też aplikacji.

Kiedy wpisujemy jakąś nazwę domeny w przeglądarce i klikamy enter, to tak naprawdę wysyłamy zapytanie do serwera, który kryje się za tą domeną. W zależności od tego, do jakiego serwera wysyłamy zapytanie, mogą zadziać się 2 rzeczy:

  1. Dostaniemy gotowe pliki statyczne, które zostały wyrenderowane po stronie serwera,
  2. Dostaniemy wytyczne dla naszej przeglądarki, w jaki sposób ma ona przetworzyć i wyrenderować to, co każe jej serwer, z którym się łączymy.

Oczywiście jest to opisanie w wielkim uproszczeniu, a cały proces wyświetlania stron internetowych jest o wiele bardziej skomplikowany i jest to temat, o którym można by napisać książkę.

W opcji numer 1, która pokazuje Jamstackowe podejście, cała strona, przed umieszczeniem jej w internecie, zostaje przygotowana tak, aby serwowała tylko (lub głównie) pliki statyczne. Wykonując zapytanie do serwera, na którym znajduje się taka strona, odpowiedź otrzymujemy niemalże natychmiastowo. Jest to możliwe dzięki temu, że serwer już wie, jak dokładnie ma wyglądać strona internetowa, którą chcemy odwiedzić. Jest to nazywane renderowaniem po stronie serwera.

Opcja numer 2 z kolei, wykorzystująca klasyczną infrastrukturę serwerową, jest nieco bardziej skomplikowana. Serwer przetwarza zapytanie, często wysyła również zapytanie do bazy danych. Następnie renderuje całą stronę po swojej stronie, zwraca ją klientowi (przeglądarce internetowej) i dopiero wtedy przeglądarka może zająć się procesem renderowania na naszym urządzeniu. Dlatego często na tego typu stronach musimy chwilę zaczekać, aż treści się załadują. Jest to przykład dynamicznego tworzenia treści. Każdy użytkownik otrzymuje de facto inną stronę — inną, ponieważ została ona wyrenderowana wraz z wykonaniem zapytania do serwera. Nazywamy to renderowaniem po stronie klienta.

Nowoczesne narzędzia pozwalają nam mieszać ze sobą te dwa podejścia w taki sposób, aby część serwisu była dynamiczna, a część statyczna. Może to być niezwykłe przydatne w niektórych przypadkach.

Statyczność to nowa Dynamiczność

Kiedyś tworząc prostą stronę internetową za pomocą HTML oraz CSS i wrzucając ją na serwer (taki jak Apache czy nginx), nie mieliśmy możliwości edycji tej strony bez bezpośredniej ingerencji w jej kod źródłowy. Każda zmiana wymagała więc ręcznej pracy u źródła. Jak można się domyślić — nie było to najwygodniejsze rozwiązanie dla właścicieli stron internetowych.

Później powstały monolityczne CSM-y (czym jest CMS wytłumaczę za chwilę), takie jak WordPress, na którym pracowali zarówno developerzy, jak i twórcy treści. Z biegiem czasu ekosystem WordPressa rozrósł się do tego stopnia, że powstały narzędzia umożliwiające tworzenie stron bez umiejętności kodowania, tzw. Page Buildery oraz cała masa wtyczek, które pozwalają de facto zamienić stronę internetową w aplikację, poprzez dodawanie skomplikowanych funkcjonalności.

Wraz z rosnącą popularnością JavaScriptu i jego powszechnej adopcji w przeglądarkach internetowych narodziły się nowe możliwości. Treści wyświetlane na stronach mogły być renderowane dynamicznie — nie musiały być już częścią kodu źródłowego strony internetowej. Z racji tego, że JavaScript jest uruchamiany w przeglądarce internetowej, treści mogły się zmieniać bez konieczności przeładowywania strony. Otworzyło to wiele drzwi dla developerów, którzy mogli korzystać z różnego rodzaju API w banalny sposób.

Na fali tej popularności narodził się Jamstack, który zakłada, że strony i aplikacje stworzone w tej konwencji są niemalże całkowicie statyczne, z wyjątkiem miejsc, które wymagają dynamicznych danych. W telegraficznym skrócie dynamiczne dane to takie, które mogą zmieniać się warunkowo, jeżeli zaistnieją jakieś okoliczności.

Generatory Stron Statycznych

Ważnym elementem Jamstackowego świata są Generatory Stron Statycznych, w skrócie SSG (z ang. Static Site Generators). Są to frameworki, które zajmują się optymalizacją i zmniejszaniem finalnego rozmiaru tworzonego projektu poprzez generowanie plików HTML, CSS oraz JavaScript.

frameworkami nazywamy szkielety do budowy aplikacji. Określają one strukturę oraz podstawowe funkcjonalności, które zazwyczaj możemy rozszerzać.

Ich podstawową cechą jest to, że kod, który pisze developer, jest zupełnie inny, niż kod produkcyjny, z którym ma do czynienia końcowy użytkownik. Różnica ta wynika z faktu, że Generatory Stron Statycznych mają możliwość generowania aplikacji, w procesie nazywanym budowaniem. Gdy proces się zakończy, otrzymujemy zoptymalizowane pliki statyczne, które mogą być serwowane dla użytkowników jako działająca strona internetowa, sklep, czy aplikacja i nie wymagają do tego skomplikowanej konfiguracji serwera.

Żeby więc poczynić jakąś zmianę na stronie internetowej lub aplikacji, należy uruchomić proces budowania, zajmujący zazwyczaj od kilkudziesięciu sekund w górę, w zależności od ilości podstron. Gotowe. Przy odpowiedniej konfiguracji nasza zmiana jest automatycznie widoczna w sieci.

Dla klienta ten proces jest banalnie prosty i zazwyczaj sprowadza się do kliknięcia jednego przycisku w specjalnym panelu. Dzięki takiemu rozwiązaniu osoba, która edytuje lub dodaje treści na stronie, nie jest w stanie niczego zepsuć, a sam proces nie wymaga żadnej wiedzy technicznej.

Warto wspomnieć, że Generatory Stron Statycznych nie są nieodłączną częścią Jamstacku. Projekty w tej konwencji można tworzyć także bez wykorzystania żadnego frameworka, posiłkując się "czystym" JavaScriptem. Zazwyczaj jednak nie jest to optymalne rozwiązanie. Weźmy na przykład katalog produktów sklepu internetowego. Zamiast tworzyć ręcznie podstronę dla każdego produktu, możemy stworzyć jeden szablon takiej podstrony, a następnie, za pomocą Generatora Stron Statycznych, podstawiać dane do szablonu i generować podstrony, które będą wyglądać tak samo, lecz będą posiadać inne treści. W praktyce proces ten sprowadza się do kliknięcia przycisku "dodaj" w panelu CMS, wypełnienia pól z informacjami o produkcie, zapisania zmian i kliknięcia przycisku, który rozpocznie proces budowania.

Systemy Zarządzania Treścią

No dobrze, wiemy już, jak działa Jamstack, w jaki sposób buduje się strony i aplikację za jego pomocą i czym różni się od tradycyjnej architektury. Pisałem także o dynamicznych treściach w tego typu projektach — możesz słusznie więc zapytać, w jaki sposób miałbyś niby dodawać lub edytować treści na stronie, która została wygenerowana jako pliki statyczne?

Tutaj z pomocą przychodzą CMS-y (z ang. Content Management System, czyli System Zarządzania Treścią), termin wielu osobom znany. Z definicji jest to aplikacja, która służy do zarządzania treściami na stronie internetowej, sklepie lub aplikacji.

Najbardziej popularnym CMS-em na świecie jest WordPress i bardzo możliwe, że o nim słyszałeś lub nawet na nim pracowałeś. WordPress jest przykładem monolitycznego CMS-a, co oznacza, że kod serwerowy (back-end) i kod widoczny w przeglądarce dla użytkownika (front-end) są ze sobą ściśle i nierozerwalnie powiązane. Znaczy to tyle, że istnieją na jednym serwerze jako jedna, wielka aplikacja.

front end → wszystko to, co jest widoczne dla użytkownika, gdy wejdzie na stronę internetową, aplikację webową oraz mobilną. Co do zasady odpowiada za warstwę wizualną.
back end → kod, który jest uruchamiany po stronie serwera. Wszystko to, czego użytkownik nie widzi, a co dzieje się "pod spodem".

Systemy Zarządzania Treścią, które nie mają głowy

Jamstack zakłada całkowitą separację back-endu od front-endu. W Jamstackowych aplikacjach możemy wybrać sobie dowolny back-end, który za pomocą API oraz JavaScriptu, będzie komunikował się ze stroną lub aplikacją, którą tworzymy i wykorzystywał dane albo funkcje takiego API.

Przykładem takiego back-endu może być Headless CMS (z ang. CMS bez głowy). Jest to przeciwieństwo tradycyjnych systemów CMS, takich jak WordPress czy Drupal (chociaż te również mogą być wykorzystywane jako Headless CMS, o czym za chwilę). Różnica polega na tym, że Headless CMS-y są całkowicie niezależne od front-endu i nie polegają w żaden sposób na szablonach, które same generują. Zamiast tego, są one miejscem, w którym tylko składujemy dane, które są pobierane przez naszą aplikację i wstawiane w specjalnie przygotowane do tego miejsca w naszym markupie (szablonie).

Headless CMS-y zapewniają nam swobodę i przede wszystkim pozwalają osobom, które tworzą treści skupić się na tworzeniu treści bez obaw o zepsucie czegokolwiek. Przyspieszają one także czas pracy edytorów, ponieważ ich praca polega tylko na wypełnianiu pól, czy to tekstowych, czy z grafikami, bez ingerencji w kod źródłowy samej aplikacji.

Przykładamy takich CMS-ów mogą być DatoCMS, Forestry, Sanity, Contenful czy Strapi.

Wspominałem o tym, że WordPress czy Drupal także mogą być tego typu CMS-ami. W jaki sposób? Cóż, bardzo prosty — używamy ich jako nośnik do przechowywania treści. Treści te mogą być dostępne dla JavaScriptu, który za pomocą API (takiego CMS-a) implementuje te dane do naszego markupu, czyli szablonu. Dzięki takiemu rozwiązaniu, osoby, które są przyzwyczajone do dodawania treści w WordPressie, nie muszą z niego rezygnować, a właściciel strony może się cieszyć korzyściami płynącymi z korzystania z architektury Jamstack. Należy jednak pamiętać, że WordPress wymaga stale działającego, klasycznego serwera, który będzie hostował tę aplikację.

Wiele różnych źródeł jednocześnie

CMS-y wydają się najpopularniejszym wyborem, jeśli chodzi o nasze źródło danych, lecz nie są wyborem jedynym. Takim miejscem mogą być takie serwisy jak Notion, Medium czy Airtable. Dane mogą pochodzić także z klasycznych baz danych lub z usług typu Google Docs. W przypadku sklepów e-commerce możemy pobierać produkty z WooCommerce, Shopify, BigCommerce, Stripe czy Snipcart.

Jedną z rzeczy, które najbardziej lubię w Jamstacku, jest to, że podejście to jest całkowicie obojętne co do źródła, z którego pochodzą treści. Jeżeli tylko jakaś usługa udostępnia swoje API, możemy wykorzystać ją jako nasz CMS i pobierać z niego dane. Nic nie stoi także na przeszkodzie, żeby tych źródeł było jednocześnie kilka. Im więcej ich jednak będzie, tym dłuższy będzie czas potrzebny na skomunikowanie się tych API z projektem, który tworzymy.

Oczywiście nic nie stoi na przeszkodzie, aby teksty i obrazki były po prostu częścią kodu źródłowego strony, tak jak jest to w przypadku strony, na której czytasz te słowa. Źródłem treści tego artykułu są pliki Markdown, które posiadają rozszerzenie .md i są niesamowicie uniwersalnym typem plików — jest on łatwy w interpretowaniu zarówno dla ludzi, jak i dla przeglądarek internetowych. Warto, moim zdaniem, chociaż wiedzieć o jego istnieniu.

Korzyści i przewagi Jamstacku

.

Szybkość

Połączenie wygenerowanych wcześniej plików statycznych z siecią CDN powoduje, że strony oraz aplikacje Jamstack są nieporównywalnie szybsze, od ich tradycyjnych odpowiedników. A wiesz, kto lubi szybkie strony? Tak, Google. Okazuje się, że szybkość witryny jest drugim, po samej treści strony rzecz jasna, elementem determinującym indeksowanie stron w tej wyszukiwarce.

CDN-y (Content Delivery Network) to globalne sieci rozproszonych (często po całym świecie) serwerów, które pracują wspólnie, aby w szybki sposób dystrybuować treści w internecie. Dla przykładu wszystkie portale społecznościowe korzystają z sieci CDN do hostowania zdjęć i filmów. Jeżeli próbowałeś kiedyś wysłać bezpośredni link do jakiegoś zdjęcia (poprzez kliknięcie prawym przyciskiem myszy i wybór opcji "kopiuj adres zdjęcia" lub "otwórz zdjęcie w nowej karcie") mogłeś zauważyć, że fragment takiego linku zawiera skrót "CDN".

Może się wydawać, że 3 sekundy w tę, czy 3 sekundy w tamtą nie mają żadnego znaczenia, ale analizy firm, które zdecydowały się zwiększyć wydajność swoich stron internetowych czy aplikacji, ukazują, że nie tylko Google lubi szybkie strony — lubią je także użytkownicy. Są oni o wiele bardziej skłonni pozostać na stronie internetowej lub korzystać z aplikacji, jeżeli ta będzie działała w szybki sposób. Długie czasy ładowania odstraszają użytkowników, zmniejszając tym samym szanse na to, że zobaczą to, co chciałbyś, żeby zobaczyli.

Stabilność

Jeżeli utrzymywałeś przez dłuższy czas stronę na WordPressie, jest duża szansa, że natknąłeś się na problem ze stabilnością. Logujesz się do panelu, dostrzegasz czerwoną ikonkę informującą o dostępnej aktualizacji jakiejś wtyczki, klikasz "Aktualizuj" i nagle okazuje się, że cała strona przestała działać.

Najbardziej podatnymi częściami infrastruktury stron internetowych oraz aplikacji są serwery, wtyczki oraz bazy danych, a Jamstack pozwala pozbyć się tych elementów i skupić się na samym projekcie, a nie na rzeczach dookoła niego.

Bezpieczeństwo

Skoro nie mamy serwera ani bazy danych, to eliminujemy także w dużym stopniu kwestię bezpieczeństwa.

Zdecydowana ilość ataków hakerskich, których celem jest kradzież informacji o użytkownikach, jest przeprowadzana właśnie poprzez bazy danych.

Nie musimy także martwić się o sam serwer, który w przypadku hostingu współdzielonego, jest o wiele bardziej narażony na awarie, niż hosting dedykowany.

Skalowalność

CDN gwarantuje niemalże nieograniczoną skalowalność, w praktyce więc, przy podejściu Jamstackowym można zapomnieć o problemach z nadmiernym ruchem na naszej witrynie.

Z uwagi na to, że pliki statyczne nie wymagają tradycyjnego serwera, koszty utrzymania projektów opartych o Jamstack będą o wiele, wiele tańsze niż tradycyjny hosting lub VPS. Zazwyczaj jest tak, że w przypadku małych i średnich projektów, utrzymanie strony internetowej lub aplikacji nie kosztuje nas zupełnie nic.

Koszty

Start small and go big, czyli zacznij mały i zostań duży. W dzisiejszych czasach wrzucenie swojej strony bądź też aplikacji do internetu nie wymaga żadnych nakładów finansowych. Dzięki sieciom CDN możemy zacząć całkowicie za darmo, bez generowania dodatkowych kosztów, a wraz z rozrostem naszego przedsięwzięcia i zwiększonymi przychodami, możemy myśleć o przejściu na płatne plany poszczególnych usług.

Wersjonowanie

Ważnym aspektem każdego projektu są kopie zapasowe, na wypadek, gdyby coś poszło nie tak lub, gdybyśmy po prostu chcieli cofnąć się do poprzedniej wersji projektu. W programistycznym świecie istnieje oprogramowanie o nazwie Git, które jest opisywane jako "rozproszony system kontroli wersji". Jest to podstawowe narzędzie pracy każdego programisty. Dzięki niemu jesteśmy w stanie zapisywać wszystkie nasze zmiany w kodzie i w razie potrzeby, za pomocą prostej komendy, przywrócić poprzednią wersję projektu.

W Jamstacku Git odgrywa rolę nośnika kopii zapasowej. Niezależnie od tego, czy chcemy zmienić hosting naszej aplikacji lub przywrócić jej poprzednią wersję — mamy taką możliwość w bardzo prosty i wygodny sposób.

Czy jest to rozwiązanie bez wad?

Nie, absolutnie takie nie jest. Nie ma rozwiązań idealnych.

  • Wadą może być to, że do stworzenia i ewentualnej rozbudowy lub wprowadzenia fundamentalnych zmian przy tego typu projekcie, potrzeba będzie wyspecjalizowanej osoby lub zespołu.
  • Dodatkowo nie każdy projekt będzie możliwy do zrealizowania w ten sposób. Niektóre strony internetowe lub aplikacje po prostu nie będą mogły być wygenerowane jako pliki statyczne. Jeżeli treści w takim projekcie będą wyświetlały się w zależności od tego, który użytkownik jest obecnie zalogowany oraz będą one w ciągłym ruchu (tak jak ma to miejsce np. na portalach społecznościowych czy giełdach), to korzystanie z Jamstacku nie będzie najlepszym pomysłem.
  • Jeżeli planujesz stworzyć naprawdę potężny serwis, który będzie zawierał tysiące różnych podstron, musisz liczyć się z tym, że proces budowy będzie mógł zająć od kilku, niekiedy nawet do kilkunastu minut. Na całe szczęście pojawią się rozwiązania na ten problem, które przebudowują tylko tę część projektu, która została zmieniona lub dodana. Są także Generatory Stron Statycznych zaprojektowane specjalnie do radzenia sobie z ogromnymi ilościami podstron i treści, takie jak Hugo.

Przyszłość Jamstack

Przyszłość tego podejścia rysuje się w jasnych barwach, a to za sprawą coraz większej przystępności narzędzi, które umożliwiają tworzenie w tej konwencji. Niech za przykład posłużą tutaj tacy giganci jak Microsoft czy Cloudflare, którzy od niedawna zaczęli oferować swoje narzędzia do darmowego hostowania stron statycznych.

Kolejnym trendem, który przemawia za Jamstackiem, jest tzw. Serverless, czyli podejście, które zdejmuje z developerów brzemię konfiguracji i utrzymywania serwerów na rzecz Usług w Chmurze (ang. Cloud Computing), takich jak Amazon Web Services, Microsoft Azure czy Google Cloud Platform.

Ilość firm, które specjalizują się w rozwiązywaniu problemów za pomocą API, także rośnie. Są to problemy typu — przetwarzanie płatności, autoryzacja użytkowników, powiadomienia Push, wysyłanie wiadomości e-mail, obsługa formularzy kontaktowych czy wprowadzanie wyszukiwarek bezpośrednio do strony internetowej, czy sklepu e-commerce. I jeżeli spojrzeć na to od strony bezpieczeństwa, to ma to wiele sensu. Przykładowo, zamiast samemu zajmować się wysyłką e-maili, można powierzyć to firmie, która się w tym specjalizuje, ma produkt dostępny na rynku od lat, oraz dedykowany zespół wraz z supportem, który czuwa nad całością przez cały czas. Szansa na awarie jest wtedy znacząco niższa.

Podsumowanie

Jamstack to stos technologiczny oparty o JavaScript po stronie klienta (przeglądarki internetowej), API wielokrotnego użytku oraz wcześniej wygenerowany lub własnoręcznie stworzony Markup. Nie wymusza na developerach korzystania z konkretnych technologii, w podejściu tym jest niemalże całkowita dowolność co do wykorzystywanych narzędzi. Dzięki temu projekty można jeszcze lepiej dostosowywać pod potrzeby i wymagania klienta.

Dzięki wykorzystaniu plików statycznych pozwala tworzyć projekty szybkie i tanie w utrzymaniu, które pozwalają na skalowanie w przypadku zwiększonego ruchu ze strony użytkowników, a brak serwera oraz bazy danych w dużym stopniu wykluczają problemy z bezpieczeństwem. Wykorzystywanie zewnętrznych API natomiast, pozwala na dodawanie nowych funkcjonalności niskim kosztem i w krótkim czasie.


Dziękuję za dotarcie do końca. Jeżeli spodobał Ci się ten artykuł, może rozważysz udostępnienie go swoim znajomym?

udostępnij

Komentarze

panodstrony.pl © 2022