React 19: neue Features und Optimierungen im Überblick

React 19: neue Features und Optimierungen im Überblick

Actions, useActionState, useOptimistic, use, Server Components und ref als Prop: was die Version bringt und was beim Umstieg zu beachten ist

Aktualisiert:

Abstract

React 19 im Überblick: Lesen Sie, wie Actions, neue Hooks, Server Components und ref als Prop funktionieren und was beim Umstieg von React 18 zu tun ist.
  • #React 19
  • #Web-Entwicklung
  • #Frontend
  • #JavaScript
  • #React Compiler
  • #Server Components
  • #Form Actions
  • #use Hook
  • #Suspense

Weniger Eigenbau bei Formularen und Datenladen: Wie React 19 den Alltag von Frontend-Teams verändert

Ein Kontaktformular in React zu bauen, war lange mehr Arbeit, als es sein müsste. Ein State für die Eingaben, einer für den Ladezustand, einer für Fehlermeldungen, dazu ein Handler, der das Absenden abfängt, die Anfrage schickt und am Ende alles zurücksetzt. Jedes Team hatte dafür sein eigenes Muster oder eine zusätzliche Bibliothek. React 19 nimmt sich genau solcher Alltagsaufgaben an.

Die Version erschien im Dezember 2024 und ist heute in der Reihe 19.x die aktuelle Hauptversion. Sie bringt keine neue Denkweise wie einst die Hooks, sondern füllt Lücken: beim Absenden von Formularen, beim Laden von Daten, beim Umgang mit Refs und Metadaten. Dazu werden Server Components offiziell Teil von React. Was React 18 vorbereitet hat, also Concurrent Rendering, Transitions und Suspense, beschreibt der Rückblick React 18: die wichtigsten Neuerungen im Überblick.

Actions: asynchrone Abläufe ohne eigenen Ladezustand

Der zentrale Begriff von React 19 heißt Action. Gemeint ist eine Funktion, die React innerhalb einer Transition ausführt und die auch asynchron sein darf. React kümmert sich dann selbst um den Ladezustand, um Fehler und um das Zurücksetzen. Transitions, also Updates, die nicht sofort sichtbar sein müssen, kennt React seit Version 18. Neu ist, dass startTransition jetzt eine asynchrone Funktion annimmt.

Am sichtbarsten wird das bei Formularen. Das form-Element akzeptiert in React 19 eine Funktion als action-Prop. Beim Absenden ruft React sie mit den Formulardaten auf und setzt nicht kontrollierte Formularfelder nach erfolgreichem Absenden automatisch zurück.

useActionState: Ergebnis und Ladezustand in einem Hook

Für den typischen Fall, dass eine Action ein Ergebnis zurückgibt, etwa eine Fehlermeldung, gibt es useActionState. Der Hook hieß in frühen Vorabversionen noch useFormState. Er nimmt die eigentliche Funktion und einen Startwert und liefert den aktuellen Zustand, eine Action für das Formular und ein Flag, ob sie gerade läuft:

import { useActionState } from 'react';
import { useFormStatus } from 'react-dom';

type State = { error: string | null; sent: boolean };

async function sendMessage(_prev: State, formData: FormData): Promise<State> {
  const response = await fetch('/api/kontakt', {
    method: 'POST',
    body: formData,
  });
  if (!response.ok) {
    return {
      error: 'Die Nachricht konnte nicht gesendet werden.',
      sent: false,
    };
  }
  return { error: null, sent: true };
}

// useFormStatus liest den Zustand des umgebenden Formulars,
// deshalb muss der Button eine eigene Komponente innerhalb von form sein
function SubmitButton() {
  const { pending } = useFormStatus();
  return (
    <button type="submit" disabled={pending}>
      {pending ? 'Wird gesendet …' : 'Absenden'}
    </button>
  );
}

export function ContactForm() {
  const [state, formAction] = useActionState(sendMessage, {
    error: null,
    sent: false,
  });

  if (state.sent) return <p>Vielen Dank, Ihre Nachricht ist angekommen.</p>;

  return (
    <form action={formAction}>
      <label>
        E-Mail
        <input name="email" type="email" required />
      </label>
      <label>
        Nachricht
        <textarea name="message" required />
      </label>
      {state.error && <p role="alert">{state.error}</p>}
      <SubmitButton />
    </form>
  );
}

Ein Detail sorgt in der Praxis oft für Verwirrung: useFormStatus stammt aus react-dom und funktioniert nur in einer Komponente, die innerhalb des Formulars gerendert wird. Im Formular selbst aufgerufen, liefert der Hook keinen Ladezustand. Das Beispiel trennt den Button deshalb ab.

useOptimistic: sofort anzeigen, später bestätigen

Optimistische Updates zeigen das erwartete Ergebnis an, bevor der Server geantwortet hat. Angenommen, jemand markiert in einer Aufgabenliste einen Eintrag als erledigt: Der Haken erscheint sofort, die Anfrage läuft im Hintergrund. Mit useOptimistic übernimmt React die Buchhaltung. Solange die Action läuft, gilt der optimistische Wert; danach fällt die Anzeige auf den echten Zustand zurück, auch wenn die Anfrage scheitert. Das spart eigene Logik zum Zurückrollen.

use: Promises und Kontext beim Rendern lesen

Die neue API use liest den Wert eines Promise oder eines Kontexts direkt beim Rendern. Ist das Promise noch nicht erfüllt, unterbricht React die Komponente und zeigt die nächste Suspense-Grenze an, also einen Platzhalter wie einen Ladeindikator. Anders als Hooks darf use auch in Bedingungen oder Schleifen stehen.

Wichtig ist, woher das Promise kommt. Erzeugt eine Komponente es bei jedem Rendern neu, etwa mit use(fetchData()) direkt im Komponentenkörper, beginnt das Laden jedes Mal von vorn. React warnt in diesem Fall. Das Promise sollte deshalb außerhalb entstehen, zum Beispiel in einer Server Component, in einem Router-Loader oder in einer Datenbibliothek mit Cache, und als Prop hereinkommen:

import { Suspense, use } from 'react';

type User = { name: string };

function Profile({ userPromise }: { userPromise: Promise<User> }) {
  const user = use(userPromise);
  return <h2>{user.name}</h2>;
}

export function ProfilePage({ userPromise }: { userPromise: Promise<User> }) {
  return (
    <Suspense fallback={<p>Profil wird geladen …</p>}>
      <Profile userPromise={userPromise} />
    </Suspense>
  );
}

Für die meisten Anwendungen bedeutet das: use ist ein Baustein für Frameworks und Datenbibliotheken. Bibliotheken wie TanStack Query oder die Datenfunktionen von Next.js bleiben für das Laden selbst sinnvoll.

Server Components und Server Functions

Server Components sind Komponenten, die nur auf dem Server laufen, etwa beim Build oder bei jeder Anfrage. Sie können direkt auf Datenbanken oder Dateien zugreifen, und ihr Code gelangt nicht in das JavaScript, das der Browser lädt. Mit React 19 sind sie Teil der stabilen Version. Ergänzend gibt es Server Functions, früher Server Actions genannt: Funktionen mit der Direktive 'use server', die auf dem Server laufen, sich aber aus Client-Komponenten aufrufen lassen, etwa als action eines Formulars.

// Server Component: läuft nur auf dem Server
import { db } from '@/lib/db';

export default async function ProductCatalog() {
  const products = await db.product.findMany();
  return (
    <ul>
      {products.map((product) => (
        <li key={product.id}>{product.name}</li>
      ))}
    </ul>
  );
}

Eine Einschränkung bleibt: React liefert die Grundlagen, nutzbar werden Server Components erst durch ein Framework oder einen Bundler, der sie unterstützt. Am weitesten verbreitet ist der App Router von Next.js. Wie Next.js 15 im Herbst 2024 React 19 eingebunden hat, beschreibt der Beitrag Next.js 15 und React 19: Was das Update brachte. Daneben arbeiten weitere Frameworks und Bundler an eigener Unterstützung.

Server Functions sind öffentlich erreichbare Endpunkte, auch wenn sie im Code wie normale Funktionen aussehen. Sie brauchen dieselbe Prüfung von Berechtigungen und Eingaben wie jede andere Schnittstelle. Wie ernst das ist, zeigte sich im Dezember 2025: Das React-Team veröffentlichte Sicherheitsupdates für eine kritische Lücke in den Server-Components-Paketen, über die Angreifer Code auf dem Server ausführen konnten. Wer Server Components einsetzt, sollte React und das Framework deshalb zügig aktualisieren.

Kleinere Änderungen mit großer Wirkung im Alltag

ref als normale Prop

Bisher brauchte eine Komponente forwardRef, um eine Ref an ein inneres Element weiterzugeben, etwa an ein Eingabefeld, das den Fokus erhalten soll. In React 19 ist ref für Funktionskomponenten eine gewöhnliche Prop. forwardRef funktioniert weiterhin, soll aber in einer späteren Version abgekündigt werden. Neu ist außerdem, dass Ref-Callbacks eine Aufräumfunktion zurückgeben dürfen, ähnlich wie Effekte.

Context direkt als Provider

Statt <ThemeContext.Provider value={theme}> genügt nun <ThemeContext value={theme}>. Das ist kein großer Schritt, macht Komponentenbäume aber lesbarer.

Metadaten und Ressourcen

Komponenten dürfen title, meta und link direkt rendern; React verschiebt diese Elemente automatisch in den Kopf des Dokuments. Für eine kleine Single-Page-Anwendung erspart das eine zusätzliche Bibliothek. Frameworks wie Next.js bieten mit ihren Metadaten-APIs aber meist mehr Komfort. Dazu kommen Funktionen wie preload und preconnect, mit denen eine Anwendung dem Browser früh mitteilt, welche Schriften, Skripte oder Server er bald braucht.

Bessere Fehlermeldungen

Hydrierungsfehler, also Abweichungen zwischen Server-HTML und dem, was der Browser rendert, meldet React 19 als einen zusammengefassten Unterschied statt als Kette verwirrender Warnungen. Außerdem lassen sich Fehler zentral über neue Optionen von createRoot abfangen und etwa an ein Monitoring weiterreichen.

Der React Compiler: eigenständig und unabhängig von React 19

Rund um die Veröffentlichung von React 19 bekam der React Compiler viel Aufmerksamkeit, und zunächst wurde er oft als Teil der neuen Version beschrieben. Tatsächlich ist er ein eigenständiges Werkzeug, das als Babel-Plugin in den Build-Prozess eingebunden wird. Er analysiert Komponenten und fügt die Memoisierung automatisch ein, die Entwickler:innen bisher von Hand mit useMemo, useCallback oder React.memo schrieben. Memoisierung heißt: Ein Ergebnis wird zwischengespeichert und nur neu berechnet, wenn sich die Eingaben ändern.

Im Dezember 2024 war der Compiler noch in der Erprobung. Seit Oktober 2025 liegt er in stabiler Version 1.0 vor. Er setzt React 19 nicht zwingend voraus, ältere Versionen ab React 17 lassen sich mit einem Zusatzpaket einbinden. Wie viel er bringt, hängt von der Anwendung ab; pauschale Prozentangaben sind wenig aussagekräftig. Am meisten profitieren Oberflächen mit vielen Komponenten, die unnötig neu rendern. Voraussetzung ist Code, der die Regeln von React einhält, etwa keine Änderung von Props während des Renderns. Die zugehörigen Lint-Regeln zeigen solche Stellen schon vorher an.

Migration von React 18 auf React 19

Der Umstieg ist für die meisten Anwendungen überschaubar, aber kein reines Versions-Update. React 19 entfernt APIs, die schon länger als veraltet galten:

  • ReactDOM.render und ReactDOM.hydrate, ersetzt durch createRoot und hydrateRoot
  • propTypes und defaultProps bei Funktionskomponenten, stattdessen TypeScript und Standardwerte in der Parameterliste
  • String-Refs und der alte Context-Mechanismus von Klassenkomponenten
  • findDOMNode und die UMD-Builds für das Einbinden per Script-Tag

Das React-Team hat dafür einen sinnvollen Weg vorgegeben. Zuerst auf React 18.3 aktualisieren, das Warnungen für alle betroffenen Stellen ausgibt. Diese beheben, dann auf 19 wechseln. Für viele Änderungen gibt es Codemods, also Skripte, die Quelltext automatisch umschreiben. In TypeScript-Projekten kommen geänderte Typen hinzu, etwa verlangt useRef nun immer einen Startwert.

Der häufigste Stolperstein liegt außerhalb des eigenen Codes: Bibliotheken für Komponenten, Formulare oder Tests müssen React 19 unterstützen. Ein Blick in deren Versionshinweise gehört vor jedes Update. Ältere Testwerkzeuge auf Basis von react-test-renderer sind abgekündigt; die React Testing Library ist der gängige Ersatz.

Was React 19 für Ihr Team bedeutet

React 19 ist ein solides, eher unspektakuläres Update im besten Sinn. Es nimmt Teams Arbeit ab, die bisher jede Anwendung neu erfand, vor allem bei Formularen und Ladezuständen. Die meisten Neuerungen lassen sich schrittweise einführen, alter Code läuft weitgehend weiter.

Unsere Einschätzung: Für Anwendungen auf React 18 lohnt sich der Umstieg auf die aktuelle 19er-Version, schon wegen der Sicherheitsupdates und der Unterstützung durch Bibliotheken. Actions und useOptimistic sind sofort nützlich, ganz ohne Framework. Server Components dagegen sind eine Architekturentscheidung, kein Feature zum Nachrüsten. Sie lohnen sich vor allem, wenn ohnehin ein Framework wie Next.js im Einsatz ist oder geplant wird. Überschätzt wird oft der React Compiler als Allheilmittel für Performance: Er ersetzt manuelle Memoisierung, nicht aber eine durchdachte Datenhaltung oder zu große Komponenten.

Wer ein Projekt auf React 19 heben, den Compiler einführen oder ein Team in Actions und Server Components einarbeiten möchte, findet auf der Seite zu React: Beratung, Coaching und Seminare unsere Angebote dazu.

Häufige Fragen zu React 19

Muss für React 19 die gesamte Codebasis überarbeitet werden?

Nein. Die meisten Komponenten laufen unverändert. Anpassungen sind dort nötig, wo entfernte APIs wie ReactDOM.render, String-Refs oder defaultProps bei Funktionskomponenten genutzt werden. Der Zwischenschritt über React 18.3 zeigt diese Stellen als Warnungen an, Codemods übernehmen einen Teil der Umstellung.

Ist der React Compiler Teil von React 19?

Nein, er ist ein eigenständiges Werkzeug, das in den Build eingebunden wird. Er passt gut zu React 19, funktioniert aber auch mit älteren Versionen ab React 17. Seit Oktober 2025 ist er als Version 1.0 stabil.

Lassen sich Server Components ohne Next.js nutzen?

Grundsätzlich ja, denn sie sind Teil von React und nicht von Next.js. Nötig ist aber ein Framework oder Bundler, der sie unterstützt. Next.js ist dabei am weitesten verbreitet und am längsten erprobt; andere Frameworks bieten eigene, teils noch junge Umsetzungen.

Brauchen Formulare in React 19 keine Formular-Bibliothek mehr?

Für einfache Formulare oft nicht. Actions, useActionState und useFormStatus decken Absenden, Ladezustand und Fehlermeldungen ab. Bei umfangreicher Validierung, vielen abhängigen Feldern oder mehrstufigen Formularen bleiben spezialisierte Bibliotheken eine sinnvolle Ergänzung.

Mehr aus „Frontend & UI“

Webentwicklung ohne SPA: Eine Web-App mit V, Veb, SQLite und htmx

Am Beispiel der Meetup-Plattform Clash zeigt sich, wie eine Web-App mit V, Veb, SQLite und htmx ohne SPA-Framework entsteht und wo der Ansatz an Grenzen stößt.

mehr erfahren

React-Performance: Warum weniger Optimierung mehr Tempo bringt

React-Performance heute: Wie Sie mit State am richtigen Ort, dem React Compiler, Transitions, Virtualisierung und Messung Ihre Anwendung spürbar beschleunigen.

mehr erfahren

React-Komponenten verbinden: Welcher Weg passt wann?

Props, Context, Zustand, TanStack Query, URL-Parameter oder Ereignisse: So wählen Sie den passenden Weg, damit zwei React-Komponenten Daten austauschen.

mehr erfahren

TanStack Start: Das React-Framework als Alternative zu Next.js

TanStack Start ist ein Fullstack-Framework für React auf Basis von TanStack Router und Vite. Was es kann und wann es eine Alternative zu Next.js ist.

mehr erfahren

HTMX: Moderne Webanwendungen ohne JavaScript-Framework bauen

HTMX lädt Inhalte nach, sendet Formulare und tauscht Seitenteile per HTML-Attribut aus. Die Anleitung zeigt Browser- und Serverseite und den Stand von HTMX 4.

mehr erfahren

Electron vs. Tauri: Desktop-Apps mit Webtechnik im Vergleich

Electron bringt Chromium und Node.js mit, Tauri nutzt den Webview des Systems und einen Kern in Rust. Der Vergleich zeigt, wann sich welches Framework eignet.

mehr erfahren

Weitere Blog-Artikel

Cross-Platform-Entwicklung: Frameworks im Vergleich und Trends

Cross-Platform-Apps im Überblick: Lesen Sie, wie React Native, Flutter, Kotlin Multiplatform, .NET MAUI und Ionic arbeiten und welches Framework passt.

mehr erfahren

Von Mozilla bis Linux: Wie Rust zur Systemsprache aufstieg

Rust begann 2006 als Freizeitprojekt und steckt heute im Linux-Kernel, in Android und in Windows. Wie es dazu kam und was den Aufstieg erklärt.

mehr erfahren

Digitalisierung im Mittelstand: Tools für mehr Effizienz

Digitalisierung im Mittelstand: welche Tools für Kommunikation, Projekte, Finanzen, CRM und Dateiablage taugen und worauf Sie bei der Einführung achten.

mehr erfahren

Serverless Architecture: Best Practices für den Betrieb in der Cloud

Serverless-Anwendungen stabil betreiben: wie Sie Funktionen zuschneiden, Kaltstarts und doppelte Ereignisse beherrschen, Limits setzen und Kosten überwachen.

mehr erfahren

Digital Consulting: Was digitale Berater leisten und können müssen

Digitale Berater verbinden Geschäftsstrategie und Technik. Welche Rollen sie übernehmen, was sie können müssen und wo die Grenzen externer Beratung liegen.

mehr erfahren

Datenabruf in Next.js: Laden, Caching und Revalidierung

Datenabruf in Next.js 16: fetch in Server Components, Caching mit use cache, Revalidierung, Server Actions, Streaming und Laden im Browser mit SWR.

mehr erfahren

Aktuelle Blog-Artikel

PHP-Migration nach PHP2Shell: Upgrade oder Sprachwechsel?

PHP2Shell und das Support-Ende von PHP 8.2: Was Sie jetzt patchen sollten, wie ein Upgrade auf 8.4 oder 8.5 gelingt und wann ein Sprachwechsel sinnvoll ist.

mehr erfahren

Jev: Was ein KI-Modell für schnelles Denken anders macht als ChatGPT

Das System-1-KI-Modell Jev schreibt keinen Text, sondern beantwortet Fragen mit kalibrierten Wahrscheinlichkeiten. Wie das funktioniert und wofür es taugt.

mehr erfahren

Node.js ohne Ballast: 12 Bordmittel, die npm-Pakete ersetzen

Von fetch() über node:test bis Type Stripping: zwölf Node.js-Funktionen, die axios, dotenv, Jest und Co. ersetzen, mit Status in Node 24 und 26 und Grenzen.

mehr erfahren

KI-Agenten verstehen: MCP, A2A, AG-UI und A2UI einfach erklärt

MCP, A2A, AG-UI und A2UI verständlich erklärt: Wie KI-Agenten Werkzeuge nutzen, miteinander arbeiten und Oberflächen erzeugen – und wer die Standards betreut.

mehr erfahren

Rusts Lieferkette unter Beschuss: Warum ein Angriff nur der Anfang war

Ein Angriff auf Rust-Pakete war im August 2026 schnell gestoppt, das Grundproblem bleibt. Wie crates.io angreifbar ist und was Sie heute dagegen tun können.

mehr erfahren

Webentwicklung ohne SPA: Eine Web-App mit V, Veb, SQLite und htmx

Am Beispiel der Meetup-Plattform Clash zeigt sich, wie eine Web-App mit V, Veb, SQLite und htmx ohne SPA-Framework entsteht und wo der Ansatz an Grenzen stößt.

mehr erfahren

React-Performance: Warum weniger Optimierung mehr Tempo bringt

React-Performance heute: Wie Sie mit State am richtigen Ort, dem React Compiler, Transitions, Virtualisierung und Messung Ihre Anwendung spürbar beschleunigen.

mehr erfahren

React-Komponenten verbinden: Welcher Weg passt wann?

Props, Context, Zustand, TanStack Query, URL-Parameter oder Ereignisse: So wählen Sie den passenden Weg, damit zwei React-Komponenten Daten austauschen.

mehr erfahren

KI-Agenten in der Schleife: Loops in Claude Code und Codex

Was ein Loop bei KI-Agenten ist, welche Auslöser es gibt und wie Sie geplante Aufgaben in Claude Code und Codex mit Kostenkontrolle einrichten.

mehr erfahren

JavaScript 2026: Bun, Deno und TypeScript 7 läuten eine neue Ära ein

Node.js, Bun und Deno im Wettbewerb, TypeScript 7 mit Compiler in Go, Build-Werkzeuge in Rust: Was sich 2026 bei JavaScript ändert und was Sie davon übernehmen.

mehr erfahren

npm-Pakete sicher prüfen: So bewerten Sie ein Paket vor dem Einbau

npm-Pakete sicher prüfen: wie Sie Name, Wartung, Provenance, Install-Skripte, bekannte Lücken und Lizenz bewerten, bevor ein Paket in Ihr Projekt kommt.

mehr erfahren

npm install unter der Lupe: Wie Angreifer die Lieferkette kapern

Was npm install technisch tut, welche Angriffsmuster von Typosquatting bis Dependency Confusion es ausnutzen und wie Sie das Installieren absichern.

mehr erfahren

Programmiersprachen und KI: Warum Rust für Code-Agenten so gut passt

KI-Agenten schreiben in Rust oft verlässlicheren Code, weil der Compiler viele Fehler sofort meldet. Was dahinter steckt und wo das Argument endet.

mehr erfahren

Pi Agent vs. Claude Code: minimaler Open-Source-Agent im Vergleich

Pi Agent und Claude Code im Vergleich: Architektur, Erweiterungen, Modellwahl, Lizenz, Kosten und Sicherheit. Für wen sich der Open-Source-Agent lohnt.

mehr erfahren

Agentic Engine Optimization: Websites für KI-Agenten lesbar machen

Agentic Engine Optimization: Wie KI-Assistenten Ihre Website abrufen, welche Rolle robots.txt, llms.txt und strukturierte Daten spielen – und was belegt ist.

mehr erfahren

Claude Skills für Einsteiger: eigene KI-Workflows aufbauen

Claude Skills bündeln wiederkehrende Anweisungen in einer SKILL.md-Datei. So bauen Sie Skills auf und installieren sie in Claude und Claude Code.

mehr erfahren

Claude Code richtig nutzen: 15 Funktionen, die Profis kennen sollten

Claude Code kann mehr als chatten: So setzen Sie CLAUDE.md, Subagenten, Hooks, Skills, MCP und den Headless-Modus gezielt im Entwickleralltag ein.

mehr erfahren

Claude Code für Einsteiger: vom Terminal zur fertigen Anwendung

Claude Code arbeitet im Terminal direkt mit Ihren Dateien. So gelingen Installation, erste Aufträge, Planmodus, Skills und MCP auch ohne Programmiererfahrung.

mehr erfahren

OpenClaw im Praxistest: vom Chatbot zum digitalen Assistenten

OpenClaw macht ein Sprachmodell zum selbst gehosteten Agenten mit Zugriff auf Rechner und Messenger. Aufbau, Einrichtung, Skills und Sicherheitsregeln.

mehr erfahren

Das Ende der Menüs: Wie KI die digitale Arbeitsumgebung verändert

Seit Jahrzehnten bedienen wir Computer über Fenster, Menüs und Ordner. KI-Agenten verschieben das zu Aufträgen in Alltagssprache. Was sich ändert und was nicht.

mehr erfahren

Microsoft und Rust: Was hinter dem Ziel „C und C++ bis 2030“ steckt

Microsoft nutzt Rust im Windows-Kernel, der Ersatz von C und C++ bis 2030 ist aber ein Forschungsziel. Was belegt ist und was es für Entwickler bedeutet.

mehr erfahren

TanStack Start: Das React-Framework als Alternative zu Next.js

TanStack Start ist ein Fullstack-Framework für React auf Basis von TanStack Router und Vite. Was es kann und wann es eine Alternative zu Next.js ist.

mehr erfahren

Die Ralph-Wiggum-Technik: KI-Coding-Agenten, die nicht aufgeben

Die Ralph-Wiggum-Technik lässt einen Coding-Agenten denselben Auftrag wiederholen, bis die Tests bestehen. Wie sie funktioniert und worauf Sie achten sollten.

mehr erfahren

Warum KI Entwickler nicht ersetzt, aber ihre Rolle verändert

KI-Assistenten schreiben heute viel Code. Warum Fachwissen trotzdem wichtiger wird und welche Fähigkeiten Entwickler:innen jetzt gezielt ausbauen sollten.

mehr erfahren

Von Node.js zu Bun: Next.js-Projekte schrittweise umstellen

Wie Sie Bun in Next.js einsetzen: von bun install über bun --bun next dev bis zum Deployment. Was dabei schneller wird, was nicht und was Sie vorher prüfen.

mehr erfahren

Bun erklärt: JavaScript-Laufzeit, Paketmanager und Bundler in einem

Bun ist Laufzeitumgebung, Paketmanager, Bundler und Testrunner in einem. Wie es funktioniert, wie kompatibel es zu Node.js ist und für wen es sich lohnt.

mehr erfahren

KI-Agenten richtig anleiten: Spezifikationen, die funktionieren

Spezifikationen für KI-Coding-Agenten wie Claude Code oder GitHub Copilot: welche Angaben hineingehören, wie Sie Aufgaben aufteilen und Grenzen setzen.

mehr erfahren

Was ist .NET? Die Microsoft-Plattform einfach erklärt

.NET ist Microsofts quelloffene Entwicklungsplattform für Web, Cloud, Desktop und Apps. Sie erfahren, wie Laufzeit, SDK und Versionen zusammenhängen.

mehr erfahren

Künstliche Intelligenz 2026: Vom Chatbot zum digitalen Kollegen

Rückblick auf den KI-Ausblick vom Januar 2026: acht erwartete Trends von Multi-Agenten-Systemen über physische KI und EU AI Act bis zu Quanten-Utility.

mehr erfahren

KI-Jahr 2025: Vier Erkenntnisse und ein Ausblick auf 2026

Rückblick vom Januar 2026 auf das KI-Jahr 2025: vier Entwicklungen von unauffälligen Agenten bis zum Chipmangel und was sie damals für 2026 erwarten ließen.

mehr erfahren

REST und Event-Streams: Wann sich ereignisbasierte Backends lohnen

REST oder Event-Streams? Wie sich Request/Response und Publish/Subscribe unterscheiden, wann Kafka, SSE oder WebSockets passen und wo REST richtig bleibt.

mehr erfahren

Shai-Hulud 2.0: Wie sich ein Wurm im November 2025 durch npm fraß

Shai-Hulud 2.0 einfach erklärt: Rückblick auf den npm-Wurm vom November 2025, wie er Zugangsdaten stahl, sich selbst verbreitete und wie Sie sich schützten.

mehr erfahren

HTMX: Moderne Webanwendungen ohne JavaScript-Framework bauen

HTMX lädt Inhalte nach, sendet Formulare und tauscht Seitenteile per HTML-Attribut aus. Die Anleitung zeigt Browser- und Serverseite und den Stand von HTMX 4.

mehr erfahren

Electron vs. Tauri: Desktop-Apps mit Webtechnik im Vergleich

Electron bringt Chromium und Node.js mit, Tauri nutzt den Webview des Systems und einen Kern in Rust. Der Vergleich zeigt, wann sich welches Framework eignet.

mehr erfahren

Architekturkompetenz im KI-Zeitalter: Was Full-Stack heute heißt

Wenn KI-Werkzeuge Code schreiben, verschiebt sich die Arbeit zu Architekturentscheidungen. Welche Fähigkeiten zählen und wie Sie sie gezielt aufbauen.

mehr erfahren

Omarchy im Test: So macht Linux endlich wieder Spaß

Unser Test von Omarchy aus dem November 2025: Das Linux auf Basis von Arch und Hyprland setzt auf Tastatur, Kachelfenster und abgestimmte Themes.

mehr erfahren

JWT-Probleme: Warum Entwickler vor JSON Web Tokens warnen

JWT-Probleme im Überblick: Warum sich Tokens schwer widerrufen lassen, welche Prüffehler gefährlich sind und wann klassische Sessions die bessere Wahl sind.

mehr erfahren

7 KI-Begriffe erklärt: Von KI-Agenten bis Superintelligenz

Sieben KI-Begriffe von KI-Agenten über RAG und MCP bis Superintelligenz: was sie bedeuten, wie sie zusammenhängen und was davon für Unternehmen zählt.

mehr erfahren

Machine Learning verstehen: von den Grundlagen bis zu moderner KI

Machine Learning verständlich erklärt: welche Lernverfahren es gibt, wie Training mit Daten abläuft und wie Sie prüfen, ob ein Modell wirklich etwas taugt.

mehr erfahren

Scrum-Master-Rolle auf dem Prüfstand: ein Blick aus Architektursicht

Lohnt sich ein Scrum Master noch? Wir betrachten die Rolle aus Sicht der Softwarearchitektur, gleichen sie mit dem Scrum Guide 2020 ab und zeigen Alternativen.

mehr erfahren

Was dürfen wir für Sie tun?

So sind wir zu erreichen: