Skip to main content

Blog

Über Webentwicklung, Performance, Tools — und hin und wieder etwas Größeres.

JavaScriptAnalyticsEvent DelegationServer ComponentsPerformance

Ein Listener statt einer Client-Komponente pro Button

In dem Moment, in dem du einer Komponente Klick-Analytics hinzufügst, wird sie zu einer Client-Komponente, die JavaScript ausliefert. Mach das über eine ganze Website hinweg, und allein das Tracking bläht dein Bundle auf. Hier ist die Alternative, die seit jeher in der Plattform steckt: ein einziger delegierter Listener, deklarative Data-Attribute und Komponenten, die reines serverseitig gerendertes HTML bleiben.

28. Juli 202610 Min. Lesezeit
Artikel lesen
CSSHTMLAccordionFrontendPerformance

Ein flüssiges Akkordeon mit null JavaScript

Alle greifen zu React-State und einem höhenmessenden Hook, um ein Akkordeon zu bauen. Der Browser liefert seit Jahren ein natives — und seit 2024 animiert es das Öffnen und Schließen mit reinem CSS. Hier die vollständige Technik: details[name], ::details-content, interpolate-size und die eine Eigenschaft, die auch das Schließen animiert.

28. Juli 20269 Min. Lesezeit
Artikel lesen
JavaScriptWebThird-Party ScriptsFrontendPatterns

Einen Drittanbieter-Wert im selben Moment abfangen, in dem er auf window landet

Ein Skript, das du nicht kontrollierst, schreibt sein Ergebnis zu einem unvorhersehbaren Zeitpunkt in eine globale Variable auf window. Der meiste Code liefert sich dabei ein Wettrennen mit einem Timeout oder verschwendet den main thread mit Polling. Hier ist der Accessor-Property-Trick, der das Schreiben in ein Event verwandelt — plus der getter, den du nicht vergessen darfst, und wie du den Wert komplett ersetzen kannst.

27. Juli 20269 Min. Lesezeit
Artikel lesen
CSSContainer QueriesTypographyFrontendPerformance

Text mit reinem CSS an seinen Container anpassen — ohne JavaScript

Jeder schreibt einen JavaScript-Hook, der die font-size verkleinert, bis der Text in einen Container passt. Hier ist eine voll funktionsfähige Alternative ganz ohne JS — mit Container-Query-Einheiten, clamp() und sprachabhängiger Silbentrennung, samt der Kaskaden-Falle, an der viele aufgeben.

24. Juli 202611 Min. Lesezeit
Artikel lesen
Next.jsPerformanceCode SplittingTurbopackReact Server Components

next/dynamic wird dich nicht retten: Warum CMS-gesteuerte Next.js-Seiten jeden Chunk ausliefern

Unsere CMS-gesteuerten Next.js-Seiten lieferten auf jeder Route alle ~100 Section-Komponenten aus – trotz lehrbuchmäßigem Einsatz von next/dynamic. Wir haben jede Lösung auf Bundler-Ebene ausgereizt (direktes import(), Datei-Splitting, Turbopack-Konfiguration, webpack splitChunks), bevor wir die wahre Ursache fanden: Erreichbarkeit, nicht Chunking. Codegen zur Build-Zeit plus rewrites senkten das First-Load-JS um 53%.

18. Juli 202614 Min. Lesezeit
Artikel lesen
obsidianmiroautomationtoolsopen-source

Ich hole meine Boards aus Miro nach Obsidian

Der Export-Button in Miro liefert dir ein PNG oder PDF — ein Foto der Daten, nicht die Daten selbst. Wenn deine Boards load-bearing Denkkarten aus jahrelanger Arbeit sind, gehören sie in Obsidian: editierbar, durchsuchbar, im lokalen Vault. Wie ich Boards per REST API aus Miro gezogen und nach Excalidraw bzw. Obsidian Canvas konvertiert habe — mit Positionen, Farben, Fonts, Curved Connectors, Mindmap Nodes — und die Lehre reicht weiter als Miro: jedes SaaS gehört mit einem Exit Plan betrachtet, BEVOR du es zum ersten Mal öffnest.

30. Juni 20266 Min. Lesezeit
Artikel lesen
ailearningcareermethodology

CRAFT: eine Methode, um AI zu nutzen, ohne das eigene Können zu verlieren

Eine Diagnose ohne Heilmittel ist nur Angst. Nach dem Beitrag über AI-bedingte Kompetenzaushöhlung folgt jetzt das Rezept: CRAFT – fünf Prinzipien (Challenge First, Review Adversarially, Ask Why Not What, Friction on Purpose, Test Your Understanding) unter einem einzigen Axiom: AI erledigt, was du bereits beherrschst; du übernimmst, was du noch lernst. Eine praktische, einprägsame Methode, um AI täglich einzusetzen, ohne dabei still und leise Fähigkeiten einzubüßen.

23. Juni 20266 Min. Lesezeit
Artikel lesen
ailearningcareerengineering

Die Stille, die AI ausgeschaltet hat

Lohnt es sich noch, Programmieren zu lernen, wenn es AI gibt? Die laute Antwort ist auf beiden Seiten falsch. Mit der Evidenzbasis 2025–2026 (Nature, Anthropic, AI & Society) lautet die Frage nicht "AI oder nicht", sondern welche Skills du an AI abgibst und welche du bei dir behältst — und eine Sache hat sich wirklich geändert: Früher hat dich die Realität durch Reibung zum Lernen gezwungen, AI hat diesen Druck leise ausgeschaltet.

22. Juni 20268 Min. Lesezeit
Artikel lesen
claude-codeproductivityclidevtools

Claude Code Multi-Profile, v2: eine saubere XDG-Architektur

Nach einem Monat mit dem alten Alias-Ansatz habe ich mein Claude-Code-Multi-Profile-Setup auf eine XDG-konforme Struktur unter ~/.config/claude-profiles/ umgebaut. Der eigentliche Grund war keine Ordnungsliebe — ich habe entdeckt, dass ~/.claude.json eine separate Datei im Home-Root ist, in der die per --scope user hinzugefügten MCP-Server still vor sich hin lebten.

13. Juni 20269 Min. Lesezeit
Artikel lesen
claude-codeagentsaiprompt-engineeringautomation

Claude Code Agents schreiben, die dich nicht anlügen

Zwei Regeln für zuverlässige Claude Code Agent-Pipelines: ein Agent pro Spezialisierung, und Shell-Befehle statt Prompts überall dort, wo quantitative Antworten gefragt sind.

29. Mai 20266 Min. Lesezeit
Artikel lesen
claude-codeproductivityclidevtools

Mehrere Claude Code Accounts auf einem Gerät

Wie man zwei (oder mehr) Claude Code Accounts parallel nutzt — persönlich und geschäftlich — mit vollständiger Isolation durch eine einzige Umgebungsvariable.

5. Mai 20264 Min. Lesezeit
Artikel lesen
ObsidianClaudeMCPAutomationAI

Wie man Claude Desktop mit Obsidian verbindet — Eine Reise durch 4 MCP-Server

Eine echte Geschichte über die Suche nach einem stabilen Weg, das Obsidian-Vault-Refactoring über Claude zu automatisieren. Was kaputt ging, was funktionierte, und warum VaultForge die einzige funktionierende Option war.

3. Mai 20269 Min. Lesezeit
Artikel lesen
physicsphilosophyconsciousnessblack-holescosmology

Schwarze Löcher als rekursive Universen: Von der Physik zum Sinn der Existenz

Was wäre, wenn jedes Schwarze Loch ein Urknall eines neuen Universums ist? Eine Untersuchung rekursiver Kosmologie, Hawking-Strahlung und kognitiver Schließung.

17. April 202610 Min. Lesezeit
Artikel lesen
aicmsweb-developmentopinionworkflow

KI hat das CMS getötet — zumindest für einfache Websites

Warum traditionelle Content-Management-Systeme für Portfolios, Blogs und Landing Pages unnötig werden — und wie KI-Tools die gesamte CMS-Schicht ersetzen.

17. April 20268 Min. Lesezeit
Artikel lesen
ObsidianPerplexityMCPAIProductivity

Perplexity AI mit Obsidian über MCP verbinden — Notizen direkt aus dem Chat

Richten Sie Perplexity Desktop ein, um Ihren Obsidian Vault über den MCP Filesystem Server zu lesen und zu beschreiben. Recherchieren Sie im Web und speichern Sie in Ihren Notizen — in einem Gespräch.

12. April 20265 Min. Lesezeit
Artikel lesen
Claude CodeAIObsidianAutomationProductivity

Täglicher AI News Digest mit Claude Code CLI und Obsidian — Null Abhängigkeiten

Wie ich einen täglichen Nachrichtenrecherche-Agenten mit einem 6-Zeilen Bash-Skript, Claude Code Headless-Modus und macOS launchd gebaut habe.

12. April 20267 Min. Lesezeit
Artikel lesen
next.jsreact-19dark-modezustandperformance

Next.js Dark Mode ohne Flackern oder React 19 Warnungen

Wie man next-themes durch Zustand + useServerInsertedHTML ersetzt, für flackerfreien Dark Mode in Next.js 15+ ohne React 19 Script-Warnungen.

11. April 20268 Min. Lesezeit
Artikel lesen
Next.jsCSSPerformanceTurbopackSCSS

Wie ich 94 Render-blockierende CSS-Dateien in Next.js 16 mit einem kaum dokumentierten Turbopack-Feature eliminiert habe

Nach Tagen des Ausprobierens jedes Ansatzes — von experimental.inlineCss bis MutationObserver-Hacks — entdeckte ich Turbopack Import Attributes, die das Render-blockierende CSS-Problem im Next.js App Router lösen.

8. April 202612 Min. Lesezeit
Artikel lesen
Next.jsMemory LeakDockerAWS LambdaNode.js

Next.js Memory Leak: Fetch + Standalone-Modus — 2 Jahre ohne Fix

Next.js patcht den globalen fetch und fügt eine Cache-Schicht hinzu, die bei jeder Anfrage Speicher verliert. In Docker/K8s führt dies alle paar Stunden zu OOM-Crashes. Der Bug existiert seit Next.js 14 und ist in 16.2.x noch ungelöst.

19. März 202610 Min. Lesezeit
Artikel lesen