Bye Ghost, bye WordPress, hi Strapi, hi Gatsby

calendar_month 20. Dezember 2019 24 Wörter

Dieser Artikel ist das Vorwort zu einer neuen Serie. In der kommenden Serie werde ich eine Umgebung mit Strapi aufsetzen, Daten aus meinem Blog importieren, Gatsby.js in Azure betreiben, per DevOps meine Projekte pflegen und deployen. In diesem Artikel stelle ich dieses Vorhaben dar.

Warum bye bye?

Ich finde beide Systeme eigentlich sehr gut zum Bloggen. So wie beide Systeme aufgebaut sind, kann damit ziemlich schnell ein Blog, Internetauftritt, News-Portal o.ä. aufgebaut werden.

Ich möchte mehr Kontrolle über das Datenmodell, ich möchte mehr als nur Pages und Posts anlegen, ich möchte mehr Entwickler/Bastler sein, ich möchte mehr Frust aber auch mehr Erfolgsmomente.

Ok, eine große Portion “ich mache das weil ich es kann” ist natürlich auch mit dabei :)

Das Vorhaben

Ich werde meine zwei Blogs – aytac.kirmizi.online und ak8s – weiter ausbauen und in verschiedene Domains aufteilen. Das führt dazu, dass ich Content in verschiedene Richtungen spiegeln muss.

Dann wären da noch die bereits erwähnten Projekte – das Portfolio von dem, was ich so gemacht habe. Das ist schon einiges. Mit den aktuellen Systemen müsste ich mühselig “Text” schreiben, oder irgendwo eine txt mit Bulletpoints für die Tasks pflegen – als ein Datenmodell-bewusster Mensch würde das alles irgendwie nicht zu mir passen.

JAMStack

Ich tauche in die glamouröse Welt der JAMStack, Headless CMS, DevOps und Static Site Generators ein. So viele Buzzwords auf einmal – das muss man zuerst einmal verdauen.

What is the Jamstack? It’s not about specific technologies. It’s a new way of building websites and apps that delivers better performance, higher security, lower cost of scaling, and a better developer experience. — jamstack.org

Headless CMS

Ich habe mich für Strapi entschieden. Prismic ist ein PaaS – also sehr eingeschränkt. Squidex bietet einen managed Service und auch die Option zum Self-Hosting an, das Ganze ist in .NET Core geschrieben, however fand ich die Oberfläche nicht sehr ansprechend. Deshalb Strapi – in Node.js geschrieben.

Hosten werde ich das als Docker Container, entweder bei mir irgendwo oder als Container in einem Azure App Service (Free Plan). Für die Media-Library werde ich Backblaze (S3-kompatibel, bis inkl. 10 GB free) verwenden.

Static Site Generator

Static Site Generators sind Tools, die auf Basis von weiteren Technologien – z.B. Markdown, JavaScript (React, Angular, Vue) und XHTML – statische HTML-Seiten erstellen. Da statische Seiten keine Datenbanken etc. benötigen, sind diese in der Regel sicherer und günstiger zu hosten.

Ich habe mich ohne die anderen genannten SSRs getestet zu haben, für Gatsby entschieden. Die Lernkurve kam mir einfacher vor und es gibt zahlreiche Beispiele für Strapi.

Das Resultat wird dann höchstwahrscheinlich in einem Azure Storage Account mit davor geschaltetem CDN gehostet.

DevOps

Die Entscheidung viel schnell – wegen Gewohnheit, OOTB und Vorhandensein – auf Azure DevOps. In meinem Fall steht DevOps für die Source-Code-Verwaltung, automatisierte Builds und automatisierte Bereitstellung.

Was kommt als nächstes?

Schritt für Schritt: Als erstes das Datenmodell, dann die Seiten und guter Letzt das automatisierte Bereitstellen.

Ich habe noch eine Vision von einem Search Center (Azure Search, Elasticsearch, Lucene/Solr – steht noch nicht fest), wo Inhalte aus allen 4 Seiten gesucht werden können. Dann ein Kommentarsystem, welches bei jedem Artikel auf jeder Seite immer den gleichen Content liefert.