Kategorien
Allgemein Projekte

IN-LIVE Cocktail-Schule – mein erstes Projekt mit Astro

Ich hatte ja schon lange vor, mal ein realistisches Projekt mit Astro umzusetzen. Mein langjähriger Freund und Trauzeuge hat, nachdem wir schon länger darüber gesprochen hatten, seine Seite mal zu verbessern, das ganze vertrauensvoll in meine Hände gelegt.

Seine Seite ist eigentlich eine reine Marketing-Seite, so dass der Inhalt zu 90% statisch ist und bleiben kann – ein fast perfektes Szenario für das Astro Content Layer.

Also erstmal überlegen, was man mit den restlichen 10 Prozent macht. Meine erste Idee war, dass ein CSV hochgeladen und geparst wird. Das hat sich in einem ersten Test als nicht sehr bedienerfreundlich entpuppt. Ein Google Sheet als API, wie ich es damals bei dem Gamingbooster gemacht habe, ist hier in diesem Kontext leider auch schwierig aufgrund der Startup-Zeiten bei der Google API.

Letztendlich sind wir dann bei Contentful gelandet, das Free Tier ist mehr als ausreichend für den Veranstaltungskalender. Und später dann vielleicht auch noch ein bisschen mehr.

Die Buchungen der Cocktailkurse etc. werden durch externe Bookingwidgets eines Anbieters dafür erledigt, diese sind als custom-elements umgesetzt und können ohne Probleme auch auf der neuen statischen Website eingebunden werden.

Astro 4 und Astro 5

Da ich aufgrund externer Umstände recht lange mit dem Projekt beschäftigt war, ergab sich der glückliche Umstand, dass ich bei ca. 50% der Fertigstellung auf Astro 5 Beta und bei ca. 90% auf Astro 5 ‘gold’ wechseln konnte.

Das war ein mega Boost für das Projekt, der Change im Content Layer hat weniger Probleme gemacht als gedacht, alle MDX-Files sind sauber typisiert und durch die neuen Relations ist der Content auch besser in sich aufgebaut (und queryable).

Dazu die neuen Responsive-Images und das Image-Cropping in den astro:asset Features – Ein Traum und bezahlt gleich 2 der 4 grünen 100er Ringe bei Lighthouse.

Screenshot der Lighthouse-Untersuchung

SEO

Natürlich darf eine Optimierung für eine solche Seite nicht fehlen:

  1. Sauber strukturierte Überschriften / Listen und Navigationen – was man seit den 90ern schon als “semantisches HTML” kennt.
  2. Title, Descriptions, alt-Attribute und Co.
  3. Korrekte Statuscodes

Accessibility

Wer mich kennt, weiß, dass ich da sehr nervig sein kann. Das BFSG steht vor der Tür, also haben wir das gleich mit berücksichtigt: Das Design ist nicht nur responsive, es ist auch tastatur-navigierbar. Kontraste etc. wurden alle mit WebAIM dauerhaft geprüft und angepasst. Die Bilder haben alle alt-Texte, wenn notwendig oder explizit keinen, wenn es nur Design-Bilder sind.

Komponenenten, die eigene Überschriften enthalten können die korrekten Heading-Level von außen mitgegeben bekommen, so dass sie universeller einsetzbar sind. Sinnvolle Überschriften sind schließlich auch ein Thema beim BFSG, ebenso wie die anderen semantischen Themen.

Die FAQ-Akkordeons z.B. sind per custom-element erweiterte Definition Lists, die diese Frage-Antwort-Hierarchie schon abbilden.

Deployment

Mittlerweile gibt es 2 Versionen der Seite, eine Version die bei Netlify auf Basis des Develop-Branches gebaut wird, eine Version die per Gitlab Runner gebaut und dann auf dem finalen System deployed wird. So haben wir Gitlab als generelles Preview und Feature-Branches und ein sauberes Deployment auf einem komplett anderen Host.

Die Zukunft

Spannend wird es, wenn man sich überlegt, dass man die Content-Pflege in Zukunft auf ein Headless-CMS übernehmen kann und mit der Content-Struktur weiterarbeiten kann oder dann ggf. irgendwann mehr Interaktion in die Seite kommt. Ich bin gespannt, was da noch kommt.

Kategorien
Linklove

Full-breadth Developers

Kategorien
Projekte Webentwicklung

Astro, Netlify und falsche Annahmen

Gestern habe ich endlich herausgefunden, warum Netlify in meinem Preview-Build keine Bilder in bestimmten Seiten anzeigt. In meinem Fall war das eine Gallery, die einen Ordner übergeben bekommt.

Danach habe ich alle Bilder, die in Astro gefunden werden über diesen Filter gejagt. Lokal und im statischen Build war alles wunderbar.

Erster Gedanke war, dass bei Netlify die Bilder-Ausgabe einen Timeout hat, da ich am Anfang noch recht große Bilder verwendet habe. Allerdings hat der Resize der Bilder nichts bewirkt. Das war’s dann nicht.

Dann war die nächste Vermutung es läge an der fehlenden Netlify Integration, aber die ist für den static Build völlig unerheblich, wichtig ist die hauptsächlich für den Betrieb einer SSR Anwendung. Das Image-CDN und die Bearbeitung der Bilder ist davon (im static Build) nicht betroffen.

Am Ende habe ich in meiner Verzweiflung angefangen, in der Anwendung an verschiedenen Stellen zu debuggen, unter anderem an dem Mechanismus, mit dem ich die Bilder zusammensuche. Tatsächlich war das nur als Übergang gedacht, da ich damit ja den Bildern auch keine alt-Texte und Co. übergeben konnte, aber die Galeriemodule funktional schon mal testen konnte.

Spannenderweise hat die obige Debug-Ausgabe lokal das erwartete Ergebnis gezeigt.

Im Netlify-Build-Log war allerdings trotz gefundenen Images das filteredImages-Log leer, bzw. ein leeres Array:

Und wie man sieht: Netlify findet Bilder scheinbar nur – in schon bearbeiteter Form – in dem _astro-Ordner, wenn die Components gebaut werden. Blöd, aber genau der Grund, warum der Filter nicht funktioniert und damit keine Bilder zurückgegeben werden. Leider unterscheided sich das von der Lokalen Bauweise, wo die Bilder noch in den korrekten Ordnern liegen.

Verlinkt man die Bilder normal, z.B. aus der Content-Collection, dann geht natürlich alles korrekt und auch der Preview Build bei Netlify funktioniert korrekt. Jetzt sogar schon mit Alt-Texten, zumindest bei den Contents, in denen ich das ganze schon gepflegt habe. Wird der nächste Schritt mit SEO-und Accessibility-Screening halt schon etwas schneller möglich.

Kategorien
Wochenbericht

Wochenbericht 2023.03

Ein verspätetes “Frohes Neues”. Das Jahr fing aus privaten Gründen schon mal spannend an, mal schauen wie die Schlagzahl hier dieses Jahr funktioniert.

  1. Freebie: Atlas Icons mit > 2300 Icons unter MIT Lizenz
  2. How to animate an element’s height with CSS grid – Sehr geiler Trick der auch mit Tailwind gut funktioniert – arbitrary values sei Dank.
  3. Bitwarden schluckt Open-Source-Start-up Passwordless.dev
  4. Endpunkte-Doku bei Astro
  5. Ureinwohner bitten Apache Foundation um Namenswechsel
Kategorien
Allgemein

Ein Experiment: EurKEY

Manchmal möchte man Dinge ändern, in der Hoffnung, etwas zu verbessern. Nachdem der Kollege neben mir sich eine neue Tastatur gekauft hat, war ich einigermaßen fasziniert, was die Welt der mechanischen Tastaturen so offenbart.

Allerdings ist da meiner Ansicht nach ähnlich viel Glaube und Vorliebe darin, wie bei den Stereonerds der 80er und 90er. Ab einem gewissen Punkt und Preis wirds halt esotherisch.

Allerdings habe ich dann von einer sehr interessanten Möglichkeit erfahren, mein Game ein bisschen aufzupeppen: EurKEY. Das ist doch mal ein guter Grund, ein neues Keyboard zu kaufen.

Parallel zur Recherche nach einem Keyboard für meine Bedürfnisse habe ich das Layout auch schon mit meiner ISO-Tastatur getestet. Da ich momentan wenig programmiert habe, ist das noch ein bisschen in der Schwebe und fertig dran gewöhnen muss man sich ja auch noch.

Dieser Artikel entsteht bereits auf meinem neuen Keyboard und das meiste geht tatsächlich sehr reibungslos von statten. Mal schauen wie das weitergeht.

Spannende Punkte bei mir sind:

  1. Ich nutze das Keyboard an Mac und Linux. Hier kommt zur Umstellung auf EurKEY auch dazu, dass ich die Tastenkombis im Prinzip doppelt lernen muss (bzw. das Unterscheiden der Modifier-Taste, wenn ich zwischen den Systemen wechsle)
  2. Umgang mit der Tatsache, wenn ich im Büro ein anderes Keyboad als zuhause nutze.
  3. Werde ich es schaffen, nicht in ein neues Sammelhobby abzurutschen?
  4. Wird sich das Entwicklen durch die bessere Erreichbarkeit der entsprechenden Steuersymbole wirklich beschleunigen?
  5. Ein “finales” Keyboard wird auf jeden Fall eines mit QMK/VIA Support, da ich das ganze ja unter Mac und Linux nutze und damit nicht auf Win/Mac-Software alleine bauen kann (I’m looking at you, Steelseries & Co.!)

Wenn euch das interessiert werde ich versuchen in einem und 3 Monaten ein Zwischen- und ein Fazit zu schreiben. Und dann ggf. nach einem etwas dauerhafterem Keyboard zu suchen. Ich hab da schon Ideen, die über das RK84 hier hinausgehen. Mal schauen.

Aktuell tue ich mich besonders bei y/z schwer und den Umlauten die unter Mac auf dem Winkey (als AltGr) liegen, unter Linux mit aber mit dem (richtigen) Alt bzw. AltGr-Key geschrieben werden. Aber es wird von Tag zu Tag einfacher…