Entwicklung & Code
RxDB 17: Sync ohne Server, Zugang für KI-Agenten
Die JavaScript-Datenbank RxDB kann ab Version 17.0.0 Daten ohne eigenes Backend synchronisieren. Außerdem führt das Projekt eine Schnittstelle für KI-Agenten ein und bringt ein schnelleres Storage-Backend für React-Native-Apps.
Weiterlesen nach der Anzeige
RxDB ist eine Open-Source-Datenbank für JavaScript und TypeScript. Sie setzt auf Storage-Backends wie IndexedDB oder SQLite auf und ist für Offline-First-Anwendungen gedacht: Apps, die lokal arbeiten und Daten bei Bedarf synchronisieren. Typische Einsatzgebiete sind Progressive Web Apps, React-Native-Apps und Electron-Anwendungen.
Synchronisation ohne Server
Das zentrale neue Feature in RxDB 17 sind zwei neue Replikations-Plugins für Google Drive und Microsoft OneDrive. Sie synchronisieren Daten direkt in den Cloud-Speicher des Nutzers, statt sie auf einem zentralen Server abzulegen. Entwickler können ihre App als statische Website auf GitHub Pages, Vercel oder Cloudflare hosten und brauchen kein eigenes Backend mehr. Die Synchronisation läuft nahezu in Echtzeit und geräteübergreifend. Mehrere Apps können auf denselben Cloud-Ordner zugreifen und so Daten teilen.
Allerdings bringt dieser Ansatz Einschränkungen mit sich. Cloud-Speicher bieten keine ACID-Garantien, und die Synchronisation unterliegt den Ratenlimits der jeweiligen Cloud-API. Nutzer müssen zudem per OAuth den Zugriff auf ihr Konto erlauben.
KI-Agenten greifen direkt auf die Datenbank zu
Mit dem neuen WebMCP-Plugin können KI-Agenten über das Web Model Context Protocol direkt auf RxDB-Collections zugreifen. Bisher mussten Agenten im Browser entweder die gerenderte Seite analysieren oder die HTML-Struktur erraten – beides ist aufwendig und fehleranfällig. WebMCP stellt stattdessen eine maschinenlesbare API-Beschreibung bereit. Agenten erfahren darüber, welche Operationen verfügbar sind, und können beliebige Abfragen oder Änderungen ausführen, ohne dass Entwickler für jede Aktion ein eigenes Tool definieren müssen.
Weiterlesen nach der Anzeige
Für React-Native- und Expo-Apps bringt RxDB 17 das Expo Filesystem RxStorage mit. Es basiert auf expo-opfs und nutzt die aktuelle Expo-Filesystem-API. Laut den Entwicklern arbeitet es bei vielen Zugriffsmustern deutlich schneller als SQLite. Das Backend ist speziell für das Expo-Ökosystem optimiert und greift direkt auf das Dateisystem zu, um die Performance zu steigern.
Besser für LLMs
Ferner wurde RxDB 17 gezielt für KI-gestützte Programmierung optimiert. Eine neue Datei llms.txt fasst die API in einer für Sprachmodelle geeigneten Form zusammen. ERROR-MESSAGES.md listet alle Fehlercodes mit Ursache, Lösung und Link zur Dokumentation auf. Fehlerobjekte enthalten nun die Eigenschaften cause, fix und docs, sodass ein Sprachmodell beim Debugging nicht in Sackgassen gerät. Dateien wie .aiexclude und .claudeignore reduzieren den Kontext, den KI-Tools verarbeiten müssen. TypeScript-Kommentare enthalten jetzt @example-Tags, damit Agenten die API auch ohne Dokumentation nutzen können.
Auf der Framework-Seite gibt es ein neues React-Plugin mit Hooks und Signals sowie ein Paket reactivity-angular für Angular Signals. Die bisherigen Premium-Pakete für Vue und Preact Signals wandern in den frei verfügbaren Kern. Signals tragen jetzt den konkreten Datentyp des Dokuments – also etwa Signal statt Signal.
Performance und Stabilität
Die Entwickler haben den Bulk-Insert-Pfad, das Query-Routing und interne Datenstrukturen überarbeitet. IndexedDB speichert Anhänge jetzt binär statt als JSON, was Speicherplatz spart. Mehrere Speicherlecks in OPFS und im Migrationscode wurden ebenfalls behoben.
Neun Plugins verlassen die Beta-Phase und gelten ab sofort als produktionsreif. Dazu gehören die Replikations-Plugins für Appwrite, Supabase und MongoDB, die Storage-Backends für MongoDB, das Node.js-Dateisystem und DenoKV sowie die Attachment-Replikation, das CRDT-Plugin und RxPipeline.
Breaking Changes und Migration
Die meisten Anwendungen lassen sich ohne größere Anpassungen aktualisieren. Wer allerdings OPFS RxStorage, Filesystem RxStorage unter Node.js oder IndexedDB mit Anhängen nutzt, muss seine Daten mit dem Storage Migrator migrieren. Pull-Only-Replikationen speichern keine Server-Metadaten mehr auf dem Client. Primärschlüssel und Indizes sind auf maximal 2048 Zeichen begrenzt, da zu lange Schlüssel die Performance beeinträchtigen. Einige Integrationen wie Firebase, MongoDB und NATS sind jetzt optionale Peer Dependencies und müssen manuell installiert werden. Vorgebaute dist-Dateien liefert das GitHub-Repository nicht mehr mit – Entwickler installieren RxDB über npm oder bauen lokal selbst.
Die vollständigen Release Notes stehen auf der Projektseite bereit.
(fo)
Entwicklung & Code
Neu in .NET 10.0 [17]: NuGet-Pakete und Einstellungen für File-based Apps
Das direkte Übersetzen und Starten von C#-Dateien nennt Microsoft File-based Apps. Für Informationen, die üblicherweise in der .csproj-Projektdatei liegen, hat Microsoft für File-based Apps eine eigene Syntax eingeführt.
Weiterlesen nach der Anzeige

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.
Die Syntax beginnt mit der Raute # (eine Präprozessor-Direktive in C#) gefolgt von einem Doppelpunkt (aus der Sicht des C#-Compilers eine zu ignorierende Direktive):
- Festlegung des SDKs:
#:sdk Microsoft.NET.Sdk.Web. Bei der Angabe des SDK kann man ab Preview 6 auch die Versionsnummer nach @ angeben, beispielsweise#:sdk Aspire.AppHost.Sdk@9.3.1 - Referenz auf ein NuGet-Paket:
#:package Console@0.48.* - Referenz auf Projekte:
#:project ./ClassLib/ClassLib.csproj - Build-Eigenschaften, z. B. Versionsnummer:
#:property Version=1.1.2(vor Preview 6 noch ohne Gleichheitszeichen, sondern mit Leerzeichen als Trennung) - File-based Apps verwenden im Standard den NativeAOT-Compiler. Wenn man ihn mit
#:property PublishAot=falsedeaktiviert, wird der Just-in-Time-Compiler verwendet.

Auf NuGet.org gibt es inzwischen zu jedem Paket eine Registerkarte „File-based Apps“ mit der passenden Syntax zur Einbindung des Pakets in eine eigenständige C#-Datei (Abb. 1).
Weitere Features von Files-based Apps sind:
- Man kann eine Datei .settings.json im gleichen Ordner mit den Settings für die File-based App anlegen.
- Man kann in der Datei .run.json im gleichen Ordner ein Launch-Profil für die File-based App anlegen.
- Man kann
dotnet build Dateiname.csoderdotnet restore Dateiname.csausführen. - Man kann solche File-based Apps mit
dotnet publish cszu einer ausführbaren Datei (.EXE) übersetzen. - Innerhalb einer File-based App können Entwicklerinnen und Entwickler seit Preview 6 den Standort der Datei mit
AppContext.GetData("EntryPointFileDirectoryPath")und den ganzen Pfad zur ausgeführten C#-Datei mitGetData("EntryPointFilePath")bestimmen. Das funktioniert allerdings nur mit File-based Apps, nicht in normalen, projektbasierten C#-Anwendungen.
Weiterlesen nach der Anzeige
Es gibt aber in .NET 10.0 noch keine Möglichkeit, in einer File-based App eine andere .cs-Datei direkt einzubinden. Das ist für .NET 11.0 geplant.
Folgender Code zeigt ein Beispiel einer File-based App mit zwei referenzierten NuGet-Paketen:
#!/usr/bin/env dotnet
#region Einstellungen für File-based App
//
#:package Humanizer@2.14.1
//
#:package Spectre.Console@0.*
#:property LangVersion=preview
#:property Version=1.2.0
#:project ./ClassLibrary/ClassLibrary.csproj
#endregion
using Spectre.Console;
using Humanizer;
var title = "C# Script v" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version +
" mit " + System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription + "\n" +
AppContext.GetData("EntryPointFilePath");
// Header
AnsiConsole.Write(
new Panel(title)
.Header("[yellow]File-based App[/]", Justify.Center)
.Border(BoxBorder.Rounded)
.BorderStyle(new Style(foreground: Color.Green))
.Padding(1, 1, 1, 1)
);
// Parameter auflisten
foreach (var arg in args)
{
Console.WriteLine($"Argument: {arg}");
}
Console.WriteLine();
// Daten
(Data net80, Data net90, Data net10) = GetData();
// Textausgabe in Wochen
var dotNet8Released = DateTimeOffset.Parse(net80.Release);
TimeSpan dotNet8Since = DateTimeOffset.Now - dotNet8Released;
Console.WriteLine($"It has been {dotNet8Since.Humanize()} since .NET {net80.Version} was released.");
var dotNet9Released = DateTimeOffset.Parse(net90.Release);
TimeSpan dotNet9Since = DateTimeOffset.Now - dotNet9Released;
Console.WriteLine($"It has been {dotNet9Since.Humanize()} since .NET {net90.Version} was released.");
var dotNet10Released = DateTimeOffset.Parse(net10.Release);
TimeSpan dotNet10Since = DateTimeOffset.Now - dotNet10Released;
Console.WriteLine($"{dotNet10Since.Humanize()} since .NET {net10.Version} release.");
Console.WriteLine();
// Zeichne Balken für die Anzahl der Tage seit der Veröffentlichung
var bar = new BarChart()
.Width(100)
.AddItem("Days since .NET 8.0 release", dotNet8Since.TotalDays, Color.Red)
.AddItem("Days since .NET 9.0 release", dotNet9Since.TotalDays, Color.Blue)
.AddItem("Days since .NET 10.0 release", dotNet10Since.TotalDays, Color.Purple);
AnsiConsole.Write(bar);
Console.WriteLine();
// Lokale Funktion
static (Data, Data, Data) GetData()
{
var net80 = new Data
{
Version = "8.0",
Release = "2023-11-14"
};
var net90 = new Data
{
Version = "9.0",
Release = "2024-11-12"
};
var net10 = new Data
{
Version = "10.0",
Release = "2025-11-11"
};
return (net80, net90, net10);
}
// Datenklasse
class Data
{
public required string Version { get; set; }
public string Release { get; set; }
}

Der Screenshot zeigt die Ausgabe beim Starten des Beispielcodes (Abb. 2).
(rme)
Entwicklung & Code
Open-Source-CMS von Cloudflare: EmDash fordert WordPress heraus
Cloudflare hat EmDash als Preview veröffentlicht, ein Open-Source-CMS mit einem Fokus auf Sicherheit. Das Unternehmen schickt es als den „geistigen Nachfolger“ des seit über 20 Jahren bestehenden WordPress ins Rennen. EmDash zeichnet sich dadurch aus, dass es Plug-ins in einer eigenen Sandbox ausführt, um die Sicherheit zu erhöhen. Integrierte KI-Funktionen dürfen ebenfalls nicht fehlen.
Weiterlesen nach der Anzeige
EmDash ist serverlos, lässt sich jedoch auf eigener Hardware oder einer Plattform nach Wahl ausführen. Das Fullstack-Content-Management-System (CMS) ist in TypeScript geschrieben und nutzt unter der Haube das Open-Source-Webframework Astro, dessen Hersteller Astro Technology Company erst Anfang des Jahres von Cloudflare übernommen wurde. Benannt ist das CMS nach dem Geviertstrich (—), der unter anderem in der englischen Typografie als Gedankenstrich verwendet wird.
(Bild: jaboy/123rf.com)

Tools und Trends in der JavaScript-Welt: Die enterJS 2026 wird am 16. und 17. Juni in Mannheim stattfinden. Das Programm dreht sich rund um JavaScript und TypeScript, Frameworks, Tools und Bibliotheken, Security, UX und mehr. Frühbuchertickets sind im Online-Ticketshop erhältlich.
Plug-ins in eigener Sandbox
Wie Cloudflare in seinem Blog beschreibt, haben 96 Prozent aller Security-Probleme in WordPress ihren Ursprung in Plug-ins. In EmDash läuft daher jedes Plug-in innerhalb seiner eigenen, isolierten Sandbox. Dazu kommt die Cloudflare-Technologie Dynamic Workers zum Einsatz. Ein Plug-in erhält seine Fähigkeiten in EmDash via Bindings und kann ausschließlich die im Manifest des Plug-ins explizit deklarierten Aktionen durchführen. Das soll Entwicklerinnen und Entwicklern bereits vor der Installation die Gewissheit geben, welche Befugnisse eine Erweiterung haben wird.
Plug-ins für EmDash können zudem eine beliebige Lizenz haben, da sie von EmDash unabhängig sind. Das soll einen Marketplace-Lock-in verhindern. WordPress-Erweiterungen unterliefen dagegen aus Sicherheitsgründen einer manuellen Review und seien eng mit WordPress-Code verwoben. Daher würde teils argumentiert, dass die WordPress-GPL-Lizenz genutzt werden müsse, so Cloudflare.
Integrierte KI-Features
Weiterlesen nach der Anzeige
Als „KI-natives CMS“ angepriesen, bietet EmDash einige Features für die Nutzung künstlicher Intelligenz. EmDash-Instanzen enthalten Agent Skills und bieten einen integrierten Remote-MCP-Server (Model Context Protocol). Auch befähigt das EmDash-CLI KI-Agenten dazu, mit lokalen oder Remote-Instanzen von EmDash zu interagieren. Darüber lassen sich beispielsweise Medien hochladen, Inhalte durchsuchen oder Schemas erstellen und verwalten.
Auf verschiedene Arten können Entwicklerinnen und Entwickler ihre WordPress-Seiten in EmDash importieren. Um mit EmDash loszulegen, sind drei Starter-Templates enthalten: Blog, Marketing und Portfolio. Das Admin-Interface von EmDash können Interessierte in einem Playground ausprobieren.

EmDash liefert drei Templates zum Einstieg.
(Bild: EmDash-Repository auf GitHub (Screenshot))
Im GitHub-Repository ist der Quellcode des MIT-lizenzierten Projekts zu finden, das sich derzeit in der Beta-Preview-Version 0.1.0 befindet. Weitere Informationen zu EmDash teilt der Hersteller Cloudflare in seinem Blog mit.
(mai)
Entwicklung & Code
Wie funktioniert eigentlich ein Open-Source-Projekt – ein Blick in Kubernetes
Mit über 90.000 Contributors und rund 4,4 Millionen Contributions ist Kubernetes nach Linux das zweitgrößte Open-Source-Projekt weltweit. Hierzulande stuft mittlerweile auch das Bundesamt für Sicherheit in der Informationstechnik (BSI) Kubernetes als De-facto-Standard für Container-Orchestrierung ein. Doch wie funktioniert ein Projekt dieser Größenordnung eigentlich von innen? Im Rahmen des Cloud-Native-Festivals CloudLand 2025 hat Mario Fahlandt, der im Kubernetes-Projekt unter anderem in den Special Interest Groups (SIG) Contributor Experience und K8s Infra aktiv ist, einen detaillierten Einblick in die Strukturen, Einstiegsmöglichkeiten und Karrierepfade der Kubernetes-Community gegeben.
Weiterlesen nach der Anzeige
Fahlandt, der selbst als Host für die EMEA/APAC-Region bei der Kubernetes New Contributor Orientation (NCO) fungiert, machte in seinem Vortrag deutlich: Beiträge zum Projekt beschränken sich keineswegs auf Code. Meeting-Notizen anfertigen, Fragen im Slack-Channel beantworten, Dokumentationen korrigieren oder Blog-Posts verfassen – all das zählt als Contribution.
(Bild: cloudland.org)

Vom 19. bis 22. Mai 2026 finden Interessierte beim Cloud-Native-Festival CloudLand ein prall gefülltes Line-up mit mehr als 200 Highlights – darunter die beiden neuen Themenbereiche „Open Source“ und „Platform Engineering“ mit einer bunten Mischung überwiegend interaktiver Sessions, Hands-ons und Workshops.
Tickets für das Festival und Unterkünfte im Heide Park Soltau lassen sich über die Festival-Homepage buchen.
Drei Kategorien von Special Interest Groups
Die Community organisiert sich unter dem Dach der Cloud Native Computing Foundation (CNCF) in einer ausdifferenzierten Struktur. An der Spitze steht ein Steering Committee mit sieben gewählten Mitgliedern. Die eigentliche Arbeit findet in 24 Special Interest Groups (SIGs) statt, die sich in drei Kategorien gliedern: Project-SIGs wie Architecture, Docs oder Release unterstützen das Gesamtprojekt organisatorisch. Horizontal-SIGs – darunter API-Machinery, Auth oder Scalability – kümmern sich um querschnittliche Kernfunktionalität. Vertical-SIGs wie Network, Storage oder Node verantworten jeweils spezifische technische Komponenten. Ergänzt wird diese Struktur durch sieben Working Groups für temporäre Themen und drei Committees. Jeder Code- und Dokumentationsteil ist dabei einer konkreten SIG oder einem Subproject zugeordnet.
Wer sollte sich engagieren und wie gelingt der Einstieg?
Wer einsteigen möchte, findet über den Kubernetes-Slack (Kanal #kubernetes-new-contributors), die K-Dev-Mailingliste und den Community-Kalender Anschluss. Die monatliche NCO-Session findet jeweils am dritten Dienstag statt – für die EMEA/APAC-Region beispielsweise um 10:30 Uhr CET. Die Sessions laufen seit September 2024 und werden auch 2026 fortgesetzt.
Die Contributor Ladder als Karrierepfad
Weiterlesen nach der Anzeige
Fahlandt zufolge definiert die sogenannte Contributor Ladder einen transparenten Aufstiegspfad. Vom Non-member Contributor gelangt man über die Org-Membership – für die zwei bestehende Reviewer bürgen müssen – zum Reviewer, Approver und schließlich zum Subproject Owner oder SIG Chair. Fahlandt warnte allerdings vor einer typischen Einstiegsfalle: Wer sich isoliert ein „Good First Issue“ aus dem Repository schnappt und ohne Kontakt zur jeweiligen SIG daran arbeitet, scheitert häufig. Labels wie „good first issue“ oder „help wanted“ in Repositories wie kubernetes/kubernetes markieren zwar geeignete Aufgaben – etwa Dokumentationsverbesserungen, Link-Korrekturen oder Test-Ergänzungen. Doch der Schlüssel zum Erfolg liegt darin, zunächst einer SIG beizutreten, an deren Meetings teilzunehmen und sich dauerhaft einzubringen. Besonders niedrigschwellig sind sogenannte Evergreen-Aufgaben wie Meeting-Protokolle, SIG-Spotlight-Blogposts oder Reviews für die SIG Docs.
Lesen Sie auch
Wer den persönlichen Austausch sucht, findet im deutschsprachigen Raum zunehmend Gelegenheit, auf Konferenzen wie CloudLand 2026, den ContainerDays, den Cloud Native Days Austria oder der CLC 2026. Darüber hinaus plant die CNCF regelmäßig Kubernetes Community Days (KCDs), und über Meetup.com sind allein in Deutschland Tausende Mitglieder in Kubernetes-bezogenen Gruppen organisiert.
Fahlandts Fazit bringt die Philosophie der Community auf den Punkt: „Der Einstieg ist nicht immer leicht und das ist verständlicherweise frustrierend. Aber wenn man dranbleibt, lohnt es sich enorm. Wir würden euch gerne dabei helfen, dranzubleiben!“
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier eine Vimeo-Video (Vimeo LLC) geladen.
CloudLand 2025: Wie funktioniert eigentlich ein Open-Source-Projekt – ein Blick in Kubernetes (Mario Fahlandt)
Über den Speaker

Mario Fahlandt ist Customer Delivery Architect bei Kubermatic. Darüber hinaus engagiert er sich aktiv im Kubernetes-Projekt der CNCF – unter anderem als TAG Co Chair Operational Resilience, SIG Co Chair Contributor Experience, SIG K8s Infra und Comms Subproject Tech Lead.
(map)
-
Künstliche Intelligenzvor 1 Monat
Top 10: Die beste kabellose Überwachungskamera im Test – Akku, WLAN, LTE & Solar
-
Social Mediavor 1 MonatCommunity Management und Zielgruppen-Analyse: Die besten Insights aus Blog und Podcast
-
Social Mediavor 2 MonatenCommunity Management zwischen Reichweite und Verantwortung
-
UX/UI & Webdesignvor 2 MonatenEindrucksvolle neue Identity für White Ribbon › PAGE online
-
Künstliche Intelligenzvor 3 MonatenAumovio: neue Displaykonzepte und Zentralrechner mit NXP‑Prozessor
-
Künstliche Intelligenzvor 3 MonateneHealth: iOS‑App zeigt Störungen in der Telematikinfrastruktur
-
Apps & Mobile Entwicklungvor 3 MonatenX3D² bestätigt: Der AMD Ryzen 9 9950X3D2 mit doppeltem 3D V-Cache kommt!
-
Entwicklung & Codevor 3 WochenCommunity-Protest erfolgreich: Galera bleibt Open Source in MariaDB
