Ein kurzer Meinungsbeitrag von Kev Quirk: Warum ich keinen statischen Website-Generator verwende. Kev nutzt WordPress
Möchten Sie auf meinem iPad bloggen? Kann ich. Möchten Sie es auf meinem Handy tun? Kein Problem. Auf einer Maschine, die ich normalerweise nicht benutze? Kein Problem, solange sie einen Browser hat.
Zunächst einmal ist es wichtig zu verstehen, dass die Nutzung von WordPress Sie nicht von der Nutzung eines statischen Website-Generators ausschließt. WordPress hat eine API, und das öffnet die Tür, diese API während eines Build-Prozesses anzusprechen und Ihre Website auf diese Weise zu erstellen. Genau das macht Gatsby, es gibt ein Plugin, das eine statische Website exportiert, und Projekte wie Frontity verwischen die Grenzen.
Aber ich stimme Kev hier bei seiner Begründung zu. Aus all seinen Gründen und 1.000 weiteren ist es eine vollkommen akzeptable und oft kluge Wahl, eine WordPress-Website zu betreiben. Ich denke dabei an Robustheit und Funktionsbereitschaft. Benötigen Sie E-Commerce? Es ist da. Benötigen Sie Formulare? Es gibt großartige Plugins. Müssen Sie die Funktionsweise des CMS erweitern? Sie haben die Kontrolle über die Arten von Inhalten und deren Inhalt. Benötigen Sie Authentifizierung? Das ist eine Kernfunktion. Wünschen Sie sich eine großartige Bearbeitungserfahrung? Gutenberg ist glorreich.
Immer wieder baue ich schnell und effizient das, was ich mit WordPress bauen möchte, und das gibt mir das Gefühl, produktiv und leistungsfähig zu sein. Aber ich möchte das nicht speziell auf WordPress beziehen; das kann für jedes "klassische" CMS gelten. Craft CMS hat standardmäßig eine GraphQL-API. Wir haben gerade über ein Drupal + Jamstack-Webinar gepostet.
In der relativ neuen Welt der statischen Websites kann eine Kleinigkeit zu einer Reise der Forschung und Implementierung werden, als ob man die dritte Person auf der Erde wäre, die das jemals tut.
Nun, alles gesagt...
Was halte ich von statischen Website-Generatoren und der Jamstack-Welt? Sie sind großartig.
Ich denke, es gibt vieles, was für die Erstellung von Websites auf diese Weise spricht. Die Entkopplung von Daten und Frontend ist clever. Die Sicherheit ist großartig. Die DX, mit den Deploy-Previews und allem Git-basierten, ist großartig. Die Geschwindigkeit, die Sie von Anfang an erhalten, ist erstaunlich (HTML von einem CDN zu servieren ist eine Leistung).
So wie ein klassisches serverseitiges CMS Sie nicht davon abhält, eine statische Website zu erstellen, hindert Sie die Erstellung mit einem statischen Ansatz nicht daran, dynamische Dinge zu tun – sogar super-duper-fancy dynamische Dinge. Josh Comeau hat einen großartigen neuen Beitrag dazu. Er hat eine schicke kleine App erstellt, die in React eine Menge im Browser tut, aber das bedeutet nicht, dass er immer noch einen guten Teil davon statisch liefern kann. Er nennt es einen "Mindset-Shift", was sich auf die Idee bezieht, dass Sie vielleicht denken, Sie brauchen einen Datenbankaufruf, aber brauchen Sie das wirklich? Könnte dieser Datenbankaufruf bereits stattgefunden und eine statische Datei generiert haben? Und wenn nicht, könnte immerhin ein Teil davon mit den letzten dynamisch übermittelten Teilen generiert worden sein.
Ich kann es kaum erwarten, eine Welt zu sehen, in der wir anfangen, wirklich das Beste aus beiden Welten zu vereinen. Wir machen so viel wie möglich statisch, holen uns alles, was wir nicht statisch machen können, über APIs, und machen dabei keine Kompromisse bei den besten Werkzeugen.
Wann Sie sich für eine statische Website entscheiden sollten...
- Wenn Sie können, sollten Sie es in Erwägung ziehen, da Geschwindigkeit und Sicherheit unschlagbar sind.
- Wenn Sie an einem Greenfield-Projekt arbeiten.
- Wenn Ihr Projekt auf zugänglichen APIs basiert und diese nutzt, können Sie diese API während des Build-Prozesses abfragen und sie auch nach dem ersten Laden der HTML-Datei verwenden.
- Wenn ein statischer Website-Generator perfekt zu dem passt, was Sie tun.
- Wenn eine Kostenanalyse besagt, dass es günstiger wäre.
- Wenn Funktionalitäten (wie Build-Previews) für einen Workflow äußerst hilfreich wären.
Wann Sie sich für serverseitige Software entscheiden sollten...
- Wenn Sie die Funktionen eines klassischen CMS (z. B. WordPress) benötigen und der technische Aufwand, von dort aus statisch zu werden, zu hoch ist.
- Wenn Sie bereits tief in einem serverseitig gerenderten Projekt stecken (Ruby on Rails, Python usw.) und keine bestehenden Probleme haben.
- Wenn dort die meiste Expertise Ihres Teams liegt.
- Wenn eine Kostenanalyse besagt, dass es günstiger wäre.
- Wenn es keine guten statischen Lösungen für das gibt, was Sie bauen möchten (z. B. Forensoftware).
- Wenn Sie eine extreme Situation haben, wie z. B. Millionen von URLs, und die Build-Zeit für statische Seiten zu hoch ist.
Schlechte Gründe, eine statische Website zu vermeiden...
- Sie müssen Dinge mit Servern tun. (Warum? Sie können immer noch APIs auf Servern abrufen, entweder beim Build oder zur Laufzeit.)
- Sie benötigen Authentifizierung. (Warum? Jamstack ist mit JWTs und ähnlichem perfekt für Authentifizierung geeignet.)
- Sie haben sich noch nicht einmal damit beschäftigt, Dinge im Jamstack-Stil zu tun.
Schlechte Gründe, sich für serverseitige Software zu entscheiden...
- Sie haben sich noch nicht einmal damit beschäftigt, Dinge im Jamstack-Stil zu tun.
- Weil Sie denken, dass die Nutzung bequemer / bestehender / klassischer / etablierter / gut unterstützter Tools Sie davon abhält, etwas statisch zu erstellen.
- Irgendetwas mit SEO. (Wenn überhaupt, sollte statisch gerenderter Inhalt besser performen. Aber es ist verständlich, wenn ein Umstieg auf statisch bedeutet, für Produktdaten etc. zu clientseitigen Aufrufen zu wechseln.)
Ich denke, es lohnt sich, dieses Thema etwas genauer zu beleuchten. Was ist zum Beispiel mit der Leistung? Ich bin zwar nicht der Richtige, um darüber zu sprechen (meine Websites sind alle sehr JS-lastig), aber man könnte argumentieren, dass der Jamstack-Ansatz zu langsameren und schwereren Websites führt, da er so viel Logik auf den Client verlagert (siehe https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/).
Das ist paradox, da Jamstack aus traditionellen statischen Websites entstanden ist. Aber wenn man über Authentifizierung, APIs usw. spricht, muss man zugeben, dass Ihr Anwendungsfall wenig mit dem zu tun hat, was Jekyll oder Middleman vor ein paar Jahren getan haben.
Sie können in einigen Fällen das Beste aus beiden Welten nutzen. Für selten aktualisierte Inhaltsseiten und Nachrichten, die von normalen Leuten genutzt werden, können Dinge wie Laravel Export nützlich sein: Sie können ein schönes CMS dafür erstellen, aber jede Aktualisierung führt zu einer statischen Website. Aber Sie benötigen immer noch ein richtiges Hosting, um die Build-Kette am Laufen zu halten, offensichtlich
Ich stimme voll und ganz zu, dass die Wahl von WordPress oder der Erstellung einer serverseitigen Anwendung legitime Optionen sind. Mein einziger Kritikpunkt an seinem Artikel war, dass er eine veraltete Fehlvorstellung verbreitete, dass die Bearbeitung von Inhalten auf einer Jamstack-Website das SSHen auf einen Server und das manuelle Bearbeiten von Textdateien mit Vim beinhaltet.
Als Front-End-Entwickler (CSS-Liebhaber) habe ich meine letzte App komplett clientseitig erstellt, aber eine Sache fehlte, und da die Website viele Seiten hat, gab es keine Lösung dafür außer serverseitiger Technik: Vorschauen in sozialen Netzwerken, die Open Graph und SSR nutzen...