

Working Draft
Vanessa Otto, Peter Kröner, Hans Christian Reinl, Stefan Baumgartner, Christian »Schepp« Schaefer
Working Draft ist der deutschsprachige Podcast für Frontend-Entwicklung, Webdesign und UI Engineering.
Bei uns geht’s um HTML, CSS, JavaScript, Frameworks wie React, Vue und Angular, Responsive Webdesign, User-Interfaces, moderne UI-Patterns, Barrierefreiheit, Tooling, Design-Systeme, Webstandards und mehr.
Unser Team besteht aus erfahrenen Frontend-Entwickler:innen aus Deutschland und Österreich – mit Gästen aus der Praxis, die regelmäßig Einblicke in aktuelle Tech-Themen geben. Ob neue CSS-Features, die Zukunft von JavaScript, KI im Frontend-Workflow oder einfach gute UI-Erfahrungen: Wir reden drüber – jede Woche neu.
Bei uns geht’s um HTML, CSS, JavaScript, Frameworks wie React, Vue und Angular, Responsive Webdesign, User-Interfaces, moderne UI-Patterns, Barrierefreiheit, Tooling, Design-Systeme, Webstandards und mehr.
Unser Team besteht aus erfahrenen Frontend-Entwickler:innen aus Deutschland und Österreich – mit Gästen aus der Praxis, die regelmäßig Einblicke in aktuelle Tech-Themen geben. Ob neue CSS-Features, die Zukunft von JavaScript, KI im Frontend-Workflow oder einfach gute UI-Erfahrungen: Wir reden drüber – jede Woche neu.
Episodes
Mentioned books

Sep 1, 2021 • 1h 22min
Revision 492: Der aktueller Status von Webpack
Was gibt es eigentlich Neues bei Webpack 5? Das erzählt uns Tobias Koppers (@wSokra), der Gründer von Webpack, und gibt uns Einblicke in seine Zukunftspläne.
Schaunotizen
[00:00:59] Der aktueller Status von Webpack
In Revision 289: Tiefe Einblicke in die Webpack Entwicklung aus dem Jahr 2017 sprachen wir bereits mit Tobias über Webpack. Gestartet als ein sog. Module Bundler. Damals sprachen wir über Updates bzgl. Version 2. Seitdem hat sich einiges getan. Heutzutage bezeichnet Tobias Webpack als „Frontend Web App Optimizer“. Er vergleicht den heutigen Stand von Webpack mit ähnlichen Tools, den „Bundlern“ Rollup und Parcel und den „No-Bundlern“ Snowpack und Vite.
Im Anschluss besprechen Hans, Vanessa und Tobias die Neuerungen von Webpack 5, wie Persistent und Long Term Caching, Module Federation, HMR Verbesserungen, TypeScript Typings, WebAssembly Support, und noch viele mehr.
Ein endloser Support für Webpack 4 ist nicht geplant. Um nun all diese neuen Features nutzen zu können, heißt es also: migrieren! Wie Tobias im Podcast erzählt, ist die Anzahl der „Breaking Changes“ gering. Dank des Migration Guides sollte dies kein Problem sein.

Aug 24, 2021 • 1h 20min
Revision 491: Dezentrale Architekturen
Als wir vor fünf Wochen mit Bianca Kastl (@bkastl) unsere Folge zur Luca-App aufgenommen haben, da haben wir ein Thema gestreift, dem wir eine eigene Folge widmen wollten, um es dort nochmal tiefergehender zu betrachten: Dezentrale Architekturen. Und genau das tun wir hiermit!
Schaunotizen
[00:01:01] Dezentrale Architekturen
Wir beginnen zunächst mit einer Gegenüberstellung zentraler, dezentraler und hybrider Architekturen: Wie sie funktionieren, wo ihre Vorteile und Nachteile liegen. Anschließend reden wir über Thin und Fat Clients, die mal mehr und mal weniger „Denkprozess“ und Verwaltung an die Gegenseite weg-delegieren. Wir sprechen bezogen auf Dezentralität auch kurz über die Vor- und Nachteile von Web-basierten Clients. Und schließlich betrachten wir ganz dediziert die Frage der Datensicherheit und Datenhoheit im Kontext der verschiedenen Architekturen. Bianca ist da nicht nur aufgrund ihrer (erfolgreichen) Versuche, die Sicherheitskonzepte der Luca-App auszuhebeln, sehr bewandert, denn sie ist als Beraterin oder Co-Entwicklerin in ähnlichen Projekten involviert: IRIS connect und sofort-impfen.de

Aug 17, 2021 • 1h
Revision 490: Alpine JS & Petit Vue mit Jon Uhlmann
Diesmal geht es wieder rein in die moderne Welt der Frontend Entwicklung. Mit Jon Uhlmann, Neos-Core Team Members, sprechen Hans und Vanessa über alpine.js und Petite Vue.
Schaunotizen
[00:00:59] AlpineJS & Petite Vue
AlpineJS und Petite Vue sind beides ähnliche, sehr leichtgewichtige Frontend Frameworks. Um eine Vorstellung davon zu bekommen, bezeichnet Jon sie als das jQuery des modernern Webs oder TailwindCSS des JavaScripts. Mögliche Use Cases sind Formvalidierung, Modals, Nachladen von Content, MixItUp Filters und mehr. Die Frameworks benötigen keinen virtuellen DOM. Dadurch sind die Pakete der Frameworks vergleichsweise klein. Petite Vue kommt mit 5kB. Dennoch steht Entwickler:innen die komplette Reaktivität auf Basis von Vue.js zur Verfügung, was den Kern beider Frameworks bildet. Auch globales State Management kann z.B. mit $store betrieben werden. Wie so oft sind beide der Frameworks trotz ihrer geringen Größe daher auch für größere Projekte geeignet. Neben der kleinen Größe des Builds, was vor allem Vorteile für die User Experience bringt, nennt Jon die schnelle Lernkurve und das damit verbundene schnell erreichte Ziel auf Seiten der Developer Experience als Pluspunkt. Außerdem untersützen die Frameworks Entwickler:innen beim Thema Barrierefreiheit. Als einzigen Nachteil sieht er das fehlende Tree-Shaking. Unterscheiden kann man AlpineJS und Petite Vue aktuell quasi nur in der Größe der vorhandenen Features. Petite Vue ist 3 Jahre jünger als AlpineJS. Dadurch fehlen hier (noch) Features wie Transitions. Aber natürlich sind wir hier guter Dinge! Weitere gute Nachrichten sind, dass Testing wie gewohnt zum Beispiel mit Jest und Cypress, durchgeführt werden kann. Wir wünschen viel Spaß beim Ausprobieren der beiden verlinkten Codepens!
Links
AlpineJS Todo MVC Codepen
Petite-Vue Todo MVC Codepen
Verwandte Revisionen
Neos CMS Revision 441
Barrierefreiheit in Single Page Applications Revision 474
Vue 3, taugts? Revision 473
Jest 27 Revision 462

Aug 11, 2021 • 1h 53min
Revision 489: (Über-)Leben mit Open Source, feat. Marvin Hagemeister und Martin Donath
Vanessa und Peter hatten zwei Open-Source-Schwergewichte zu Gast, mit denen sie über das (Über)-Leben als OSS-Entwickler plauderten. Martin Donath (Twitter, Github) war zuletzt in Revision 484 zu CSS und stylezen zu Gast und entwickelt Material for MkDocs. Marvin Hagemeister (Webseite, Twitter, Github) ist für seine Arbeit an Preact bekannt und war genau zu diesem Thema zuletzt in Revision 397 zu Gast.
Schaunotizen
[00:01:00] (Über)-Leben mit Open Source
Nachdem wir kurz OSS und FOSS gegeneinander abgrenzen, geht’s um den OSS-Alltag. Zunächst geht’s um Projekt-Management: wie werden Maintainance und Support geregelt, wie können Komplexität und Feature-Requests im Rahmen gehalten werden, wie fängt man überhaupt an (z.B. via Frontend Foxes) und wie sieht ein Open-Source-Projekt-Lifecycle aus? Wie besprechen im Anschlss Funding-Fragen (Github Sponsors, das Sponsorware-Konzept) und wie das Funding bei MkDocs und Preact genau abläuft, Funding-Fails bei Babel sowie Martins Projekt-Umfrage für MkDocs. Am Ende geht’s um Lizenzen, Amazon, Influx DB und Redis, ethische Lizenzklauseln und Creative Commons.

Aug 4, 2021 • 1h 6min
Revision 488: Glücksrad 2.1 Transitional
Nach dem großen Erfolg des neuen Glücksrads in der letzten Revision ließe es Schepp, Vanessa und Peter nochmal drehen – diesmal verstärkt um Gücksrad-Veteran Stefan Judis (Twitter, Newsletter) der auch Autor des Random-MDN-Bots auf Twitter ist.
[00:01:02] Glücksrad
XRPermissionDescriptor
Ein unspannendes, von keinem Browser unterstütztes Objekt-Interface für WebXR.
position-Value
Wir amüsieren uns kurz über vertikale Zentrierung in CSS, dann legt Schepp dar, wie %-Positionierung für background-position funktioniert. Am Ende finden wir trotz großer Mühen nicht viele Use Cases für background-position in der Gegenwart.
inputmode-Attribut
Während es einfach ist zu klären, was inputmode an sich macht, suchen wir länger nach Use Cases für inputmode="none". Gedacht ist dieser für indirekt kontrollierte Inputs, wobei Peter vorübergehend der Fehlannahme aufsitzt, dass das auch (besser?) per <output> gemacht werden könnte (stimmt nicht, <output> wird von Formularen nicht submitted).
Web Locks API
Allgemeinem Unverständnis zum Trotz hält Peter eine Brandrede für eine einebaute Web Locks API.
direction
Wo direction ist, sind das HTML-Attribut dir sowie writing-mode und text-orientation nicht fern. Außerdem stellen wir fest, dass Text-Rendering extrem knifflig ist.
start_url in Web App Manifests
Wir sinnieren über den Umstand, dass so gut wie alles in Web App Manifests eine optonale Kann-Angabe ist und fragen uns, was Opera eigentlich so macht.
deltaMode auf WheelEvents
Mühsam arbeiten wir heraus, was der deltaMode auf Wheel-Events wohl soll und was alles als Mausrad durchgeht.
itemscope-Attribut
Schepp legt dar, was HTML5-Mirodata für SEO zu leisten imstande ist, erklärt schema.org und empfiehlt JSON-LD als Alternative.
@namespace
XML, Baby! Und wo wir schon mal in der Vergangenheit sind, sprechen wir auch über ICQ und das Release von Chrome 1 irgendwann 2009.

Jul 28, 2021 • 1h 6min
Revision 487: Glücksrad 2.0
Vanessa, Schepp und Peter ließen das Glückrad kreiseln. Aber es ist ein neues Glücksrad! Die offizielle Workingdraft-Glücksrad-Webapp, die auf MDN-Daten basiert, setzt uns nicht mehr nur HTML-Elemente vor, sondern spuckt auch DOM-APIs, JS-Features und CSS-Gedöns aus.
[00:01:02] Glücksrad
pre-Element
Wer hätte das gedacht? Das pre-Element hat ein width-Attribut (das wir nicht benutzen sollten)! Sonstige Erkenntnisse zum Element: es kann kein Shadow-Host sein (das können nur ausgewählte Elemente sein) und xmp-Elemente sind unter der Haube auch nur pre-Elemente (zumindest näherungsweise).
Icons im Web Manifest
Wir sinnieren über Manifest-Icons, apple-touch-icon, theme-color, die allgemeine Meta-Tag-Inflation, Icon- und Webfont-Generatoren sowie die bulletproof @font-face syntax.
text-orientation
Wir setzen die CSS-Eigenschaft text-orientation in den Kontext zu z.B. Ruby-Annotationen und schaffen es am Ende auf wundersame Weise, bei Pi-hole zu landen.
blend-mode
Wir versuchen zu erahnen, wie viel blend-mode (nicht zu verwechseln mit background-blend-mode, mix-blend-mode und color-mix()) tatsächlich verwendet wird und landen bei der einzigen Quelle, die dererlei Fragen zu beantworten vermag: dem State of the Web Report.
DOMPointReadOnly
Brauchen wir einen Constructor für ein einfaches Objekt mit vier Feldern? Wir suchen nach Pro-Argumenten.
CSS-Typ ratio
Der ratio-Typ (nicht zu verwechseln mit aspect-ratio oder aspect-ratio) führt uns in eine Diskussion höherer CSS-Mathematik.
scroll-margin-block-end
Eine der Logical CSS Properties lässt uns mental zu Scroll-Snapping, der Anwendung von Scroll-Snapping und den Kollegen von WWSIV scrollen.
i-Element
Wir grenzen i gegen em ab und sinnieren über Boostrap und Accessibility

Jul 21, 2021 • 1h 12min
Revision 486: Corona-Apps: Vorteile und Probleme am Beispiel der Luca App
Es ist Zeit sich auch mal den aktuellen Software-Produkten rund um die allgegenwärtige Corona-Pandemie zu beschäftigen.
Wir sind sehr froh, dass wir Bianca Kastl (Twitter) dafür gewinnen konnten. Sie beschäftigt sich seit geraumer Zeit mit der Integration von Corona-Daten für die Gesundheitsämter und Applikationen, die in diesem Kontext auch für die Bevölkerung zur Verfügung stehen. Dabei sprechen wir vollem über die Vorteile und Probleme der Luca-App.
Schaunotizen
[00:03:10] Corona App – Wirkungsweise, Vorteile und Nachteile
Um eine gute Grundlage für unsere Diskussion zu legen, sprechen wir darüber warum es Apps wie die Luca-App oder die Corona-Warn-App gibt und wie sie funktionieren. Gerade auf technischer Seite gibt es einige Unterschiede, die wir erläutern und erklären, was dabei zu beachten ist.
[00:17:08] Probleme der Luca-App
Die Luca-App unterstützt Geschäfte und Restaurants Gästelisten und Check-ins nachzuhalten und tritt dabei als zentraler Datentreuhänder auf. Wir gehen auf das technischen Setup der App ein, sprechen über Verschlüsselung der Daten und die Datenübermittlung an Gesundheitsämter.
Darüber kommen wir dann auf die Probleme der App zu sprechen.
Offene und erratbare URLs – Related
Offene Keys / Schlüsselanhänger
Input- und Output-Sanitation
DoS mit Contextwechseln
Mehr „Fails“ der Luca-App finden sich auf der entsprechenden Website dazu.
Keine Schaunotizen
CSV Injection über die Luca-App
Der erste Zeit Artikel und das Follow-up.
Bianca als Gast beim NDR Podcast

Jul 13, 2021 • 1h 14min
Revision 485: ES2021 & Beyond
Anlässlich der offiziellen Verkündung von ECMAScript 2021 fanden sich Hans, Schepp und Peter zusammen, um nicht nur die Feature-Liste des neuesten JavaScript-Standards zu rekapitulieren, sondern dabei auch etwas in Zukunft und Vergangenheit von ECMAScript zu blicken.
Schaunotizen
[00:00:29] Habemus ES2021
Wir scheitern in gewohnter Manier daran, die Feature-Liste von ECMAScript ohne allzugroße Abschweifer durchzugehen. Vorweg: der Browsersupport ist gar nicht schlecht! Zum neuen String.prototype.replaceAll() haben wir nur zu ergänzen, dass es genau wie String.prototype.replace() eine Falle enthält, in die zumindest Peter schon mal getappt ist. Die besprechung der neuen Logical Assignment Operators führt uns zu den fehlenden throw-Expressions (die Peter in seiner Toolsammlung durch eine fail()-Funktion halbgar ersetzt). Numeric Separators nehmen wir einfach zur Kenntnis, während Promise.any() zu einer länglichen Debatte rund um das Wesen von Promises und Observables (eingeschlafenes Proposal, lebendige Implementierung RxJS) führt. Klassen haben mehr private-Features (in Firefox originell implementiert) und die neuen Memory-Manangement-Helper WeakRef und FinalizationRegistry werden die meisten Entwickler:innen sehr selten brauchen. Zum Abschluss wünscht sich Peter noch do-Expressions in gut (d.h. nicht wie im Proposal) sowie tmp-Variablen.

Jul 7, 2021 • 1h 31min
Revision 484: CSS Tücken und Tooling
Schepp und Peter erfreuten sich in dieser Revision an der Anwesenheit von Martin Donath (Twitter, Github), der nicht nur Maintainer von Material for MkDocs ist, sondern auch daran arbeitet, mit Stylezen das beste CSS-Intellisense diesseits der Baikal-Amur-Magistrale zu erschaffen.
Schaunotizen
[00:00:59] CSS Tücken und Tooling
In einem exzentrischen Orbit kreisen wir um das Thema Tools für CSS und die mit diesen Tools und/oder CSS einhergehenden Herausforderungen. Das Tool-Thema enthält neben Prä/Postprozessoren wie PostCSS, Less und Sass auch Konzepte wie BEM/ITCSS/OOCSS, konkrete Frameworks a la Tailwind und Addons wie CSS Modules. Diesen Erstellungs-Tools gegenüber stehen Analyse- und QA-Ansätze wie Visual Regression Testing (mit Varianten wie Warhol und SiteEffect) und relativ simplen Lintern. Martins Stylezen ist da etwas anders: aufbauend auf der Idee, dass CSS eigentlich eine statisch typisierte Sprache istund inspriert von Adam Argyle, wird Stylezen eine Art TypeScript für CSS (Stylezen-Extension für VS Code in Aktion). Am Rande geht es außerdem um Custom Properties, Container Queries, CSS Containment, warum niemand CSS ernst nimmt, die kognitive Komplexität von CSS, Web Components (v.a. Revision 480), Shadow DOM, Scoped CSS, Cloud Flare Workers, csstype, die absurde Komplexität von CSS Grid, Mootools und die Freuden der Webstandards-Spezifikations-Exegese.

Jun 29, 2021 • 1h 21min
Revision 483: Safari 15 und Browser-Extensions aller Art
Hans, Vanessa, Peter und Schepp trafen sich unter dem Vorwand, die „Neuerungen“ von Safari 15 zu diskutieren, kamen dabei aber über Umwege auch auf Browser Extensions sowie das Pro und Contra von Bookmarks zu sprechen
Schaunotizen
[00:01:01] Safari 15
Die Jünger des heiligen Steve haben anlässlich der letzten WWDC (Video) eine neue neue Safari-Version in Petto. Enthalten sind null PWA-Features, diverse UI-Updates (v.A. Tab Groups), Unterstützug für <meta name="theme-color"> (was wir hinsichtlich der Browserunterstützung und des Dark-Pattern-Patenzials gründlich besprechen) und aspect-ratio für Iframes – ein Hack weniger!
[00:00:00] Bookmarks und Browser-Synchronisierung
In einem kurzen Exkurs predigt Hans mit Verve die Vorzüge vereinheitlichter Browser-Synchronisierung, speziell für Bookmarks. Peter vetritt halbherzig das Team Hirnsieb. Als Tools für Bookmarking und Wissens-Orga empfehlen wir Chrome und seine Einbauten (Hans) Pocket (Schepp) Abyss (Vanessa) und Obsidian (Peter).
[00:00:00] Browser-Extensions und Webseiten-Eingriffe
Außerdem neu in Safari: Unterstützung für Web Extensions, (fast) ganz wie in Chrome und Firefox! Anlässlich dessen berichtet Schepp von seinen Erfahrungen mit Chrome-Extensions-Entwicklung und schimpft besonders auf die extrem nutzlose Dokumentation. Über Extensions kommen wir zum Über-Thema „Elemente, die in Webseiten eingreifen“ (Extensions wie Grammarly, PW-Manager), die zusammen mit der allgemeinen Komplexitätszunahme (Responsive Design, Dark/Light Mode, bizarren Bugs auf allen Ebenen Entwickler:innen in den Wahnsinn treiben. Kann man dem Wahnsinn mit Tools wie Sentry, Sizzy und Polypane begegnen, oder sollten wir alle doch lieber was mit Holz machen? Hans hat die ultimative Antwort auf diese Frage …
Keine Schaunotizen
DOM Treemap
Schepps in der Revision angesprochene Browser-Erweiterung, mit der man in die Tiefen seines DOM Baums auf der Suche nach den verloren DOM-Knoten hinabsteigen kann. Gibt es für Chrome und für Firefox.


