diff --git a/slides/datastar/slides.md b/slides/datastar/slides.md index 83f0c41..5f85fca 100644 --- a/slides/datastar/slides.md +++ b/slides/datastar/slides.md @@ -109,10 +109,62 @@ $$ class: text-center --- -# My name is +# My name is # Thomas Hedeler +## + + +

+In the spirit of the late and great Douglas Adams, I call myself +

+ +

+A holistic developer +

+
+ + +--- +class: default +--- + +# My Motivation: Build a Minimal Viable Web App +## + + +

+It is not a compromise — this is a fully functioning web application, including database, application code, and deployment, implemented with the minimal number of lines of code. +

+
+ + +

+To embrace the Creativity Paradox and stay within our Complexity Budget, we apply a few constraints: + +- Use as few third-party libraries as possible +- Avoid a front-end build step (no npm) +- Follow the principle of least power: “Favor simple, declarative solutions over complex code.” +

+
+ + +

+The benefits are clear: + +- Less code → faster performance and fewer bugs +- Reduced technical debt → easier long-term maintenance +- Lower cognitive load → simpler to understand and extend +- Fewer dependencies → more robust and secure +- Leverage browser specifications and built-in capabilities +

+
+ + +

+In short: minimal code, maximal clarity, and a fully functional web app. +

+
-# A holistic developer --- class: default @@ -445,42 +497,39 @@ class: default | Example | `{{.Title}}` → “Article” | `Edit` | --- -layout: center -class: text-center +class: default --- # Putting Everything Together +## ---- -clicks: 6 ---- + +

+At the core, the backend holds the application state — typically in a database. +All decisions about data, relationships, and transitions originate here. +

+
-# Smooth paragraph → circle flow + +

+The backend generates pages by combining data (state), presentation, and transitions (actions) using a templating engine. +This approach follows HATEOAS, a hypermedia-driven design where each page contains links and instructions describing valid next steps. +

+
-
-

- This is the first paragraph with an - - important phrase - . -

+ +

+The backend can also actively drive the frontend using Server-Sent Events (SSE). +SSE allows updates to be pushed to the client in real-time, keeping the application synchronized without full page reloads. +

+
-

- Here comes the second paragraph with - - key words - - to highlight. -

- -

- Finally, the third paragraph shows and then - - the spotlight - - appears. -

-
+ +

+On the frontend, Datastar enables fine-grained interactivity and incremental page updates. +Instead of replacing entire pages like simple hypermedia, Datastar updates only the elements affected by the state changes, keeping the interface responsive and dynamic. +

+
--- @@ -525,6 +574,7 @@ el.dataset.whatEver = "you've got it!"; --- class: default +clicks: 5 --- # Datastar and `data-*` Attributes @@ -553,7 +603,7 @@ Each expression describes what should happen when data or events change, turning

-By keeping logic inside the elements they affect, Datastar achieves locality of behavior — +By keeping logic inside the elements, Datastar achieves locality of behavior — where markup, data, and interactivity remain close together. This makes components easier to read, reason about, and maintain.