<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>webX’s Blog</title><description>webX</description><link>https://www.web-x.dev</link><item><title>Frontend gesund machen wenn der nginx Healthcheck an localhost scheitert</title><link>https://www.web-x.dev/blog/frontend-healthcheck-nginx-localhost-ipv6</link><guid isPermaLink="true">https://www.web-x.dev/blog/frontend-healthcheck-nginx-localhost-ipv6</guid><description>Der Frontend Container war gebaut, lief und war trotzdem unhealthy. Die Ursache war eine kleine Alpine Falle: BusyBox Wget suchte localhost zuerst über IPv6 und nginx lauschte nur auf IPv4.</description><pubDate>Thu, 18 Jun 2026 12:00:00 GMT</pubDate></item><item><title>Zitadel hinter Traefik richtig verdrahten mit Issuer, JWKS und Login V2</title><link>https://www.web-x.dev/blog/zitadel-hinter-traefik-issuer-jwks-login-v2</link><guid isPermaLink="true">https://www.web-x.dev/blog/zitadel-hinter-traefik-issuer-jwks-login-v2</guid><description>Der 401 Fehler beim Ingest kam nicht vom JWT selbst, sondern von einem kleinen Architekturbruch. Issuer, JWKS und Host Header mussten dieselbe öffentliche Sicht auf Zitadel haben.</description><pubDate>Wed, 17 Jun 2026 11:00:00 GMT</pubDate></item><item><title>Traefik als einziger Einstiegspunkt im Docker Compose Stack</title><link>https://www.web-x.dev/blog/traefik-einzelner-einstiegspunkt-docker-compose-stack</link><guid isPermaLink="true">https://www.web-x.dev/blog/traefik-einzelner-einstiegspunkt-docker-compose-stack</guid><description>Ich habe den Stack so umgebaut, dass Browser und Extension nur noch Traefik sehen. Der Rest läuft über zwei Docker Netze, klare Labels und keine direkten Host-Ports mehr.</description><pubDate>Tue, 16 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Redis ohne Auth und Qdrant mit offenem Admin-Port vor dem Launch</title><link>https://www.web-x.dev/blog/redis-auth-qdrant-port-security-hardening</link><guid isPermaLink="true">https://www.web-x.dev/blog/redis-auth-qdrant-port-security-hardening</guid><description>Vor dem Launch habe ich meine Architektur nicht nur auf Skalierung geprüft, sondern auch auf stillschweigende Sicherheitsannahmen. Dabei sind mir zwei kleine Lücken aufgefallen, die in Produktion sehr schnell teuer werden können.</description><pubDate>Mon, 15 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Docker Volumes in Produktion mit Named Volumes, Bind Mounts und der Hetzner-Volume-Trick</title><link>https://www.web-x.dev/blog/docker-volumes-produktion-named-volumes-bind-mounts-hetzner</link><guid isPermaLink="true">https://www.web-x.dev/blog/docker-volumes-produktion-named-volumes-bind-mounts-hetzner</guid><description>Ich habe gelernt, dass ein Docker Named Volume in Produktion nicht automatisch auf einem Hetzner Volume landet. Erst wenn ich den Pfad bewusst steuere, weiß ich wirklich, wo Qdrant, Redis und Zertifikate geschrieben werden.</description><pubDate>Sun, 14 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Embedding-Modell-Lock-in mit mxbai-embed-large als permanente Produktionsentscheidung</title><link>https://www.web-x.dev/blog/embedding-modell-lock-in-mxbai-embed-large-vektorgroesse</link><guid isPermaLink="true">https://www.web-x.dev/blog/embedding-modell-lock-in-mxbai-embed-large-vektorgroesse</guid><description>Ich behandle die Wahl des Embedding-Modells nicht als austauschbare Umgebungsvariable. In Qdrant schreibt sie sich direkt in jede Collection ein. Wer lokal und in Produktion auf unterschiedliche Vektorräume setzt, baut sich eine teure Migration in die Zukunft ein.</description><pubDate>Sat, 13 Jun 2026 10:00:00 GMT</pubDate></item><item><title>DSGVO Art. 17 korrekt implementieren mit Promise.allSettled und Export-Batching</title><link>https://www.web-x.dev/blog/dsgvo-art17-promise-allsettled-export-batching</link><guid isPermaLink="true">https://www.web-x.dev/blog/dsgvo-art17-promise-allsettled-export-batching</guid><description>Ein sequenzielles await-chain im DELETE-Account-Endpoint bedeutet: wenn Qdrant fehlschlägt, bleiben S3-Daten und die Zitadel-Identität erhalten. Das ist ein DSGVO-Art.-17-Risiko. Die Lösung ist Promise.allSettled mit strukturierter Fehlerrückgabe. Gleichzeitig: wie ein OOM-Crash im Export-Endpoint durch Batching verhindert wird.</description><pubDate>Fri, 12 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Zweischichtiges Rate Limiting mit Traefik und express-rate-limit mit Redis</title><link>https://www.web-x.dev/blog/rate-limiting-traefik-express-redis-zweischichtig</link><guid isPermaLink="true">https://www.web-x.dev/blog/rate-limiting-traefik-express-redis-zweischichtig</guid><description>Ohne Rate Limiting kann ein einzelnes Skript den AI-Provider-Key innerhalb von Minuten leerlaufen lassen. Die Lösung sind zwei unabhängige Schichten: Traefik begrenzt auf IP-Ebene, express-rate-limit mit Redis-Backing begrenzt pro authentifiziertem Nutzer. Warum beide Schichten nötig sind und wie der TypeScript-Tücke beim Redis-Adapter umgangen wird.</description><pubDate>Thu, 11 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Traefik statt NGINX für einen wachsenden Docker-Compose-Stack</title><link>https://www.web-x.dev/blog/traefik-reverse-proxy-docker-compose-multi-service</link><guid isPermaLink="true">https://www.web-x.dev/blog/traefik-reverse-proxy-docker-compose-multi-service</guid><description>Ab acht Services im Docker-Compose-Stack wird nginx.conf zur Wartungslast. Traefik liest Service-Konfiguration direkt aus Docker-Labels, terminiert TLS automatisch über ACME und braucht keine separate Konfigurationsdatei. Warum ich gewechselt habe und wie die Konfiguration aussieht.</description><pubDate>Wed, 10 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Backend Code Review vor dem Launch mit sechs behobenen Problemen</title><link>https://www.web-x.dev/blog/backend-code-review-vor-dem-launch</link><guid isPermaLink="true">https://www.web-x.dev/blog/backend-code-review-vor-dem-launch</guid><description>Vor dem Go-Live habe ich das Backend noch einmal vollständig durchgelesen. Sechs konkrete Probleme gefunden, alle behoben. Hier ist, was ich wo gefunden habe und warum es jeweils wichtig war.</description><pubDate>Tue, 09 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Warum ich den Zitadel Bootstrap entfernt habe wegen Host-Header-Validierung in Docker</title><link>https://www.web-x.dev/blog/zitadel-bootstrap-host-header-bug-manuelles-setup</link><guid isPermaLink="true">https://www.web-x.dev/blog/zitadel-bootstrap-host-header-bug-manuelles-setup</guid><description>Der Bootstrap-Container beendete sich mit Exit Code 22. Die Ursache war keine falsche API-URL, sondern Zitadels Host-Header-Validierung innerhalb des Docker-Netzwerks.</description><pubDate>Mon, 08 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Wenn Backend und Frontend unterschiedliche Typen kennen</title><link>https://www.web-x.dev/blog/frontend-api-typen-health-response-breaking-change</link><guid isPermaLink="true">https://www.web-x.dev/blog/frontend-api-typen-health-response-breaking-change</guid><description>Ein TypeError im Browser nach einem Backend-Refactoring. Die Ursache ist kein Bug im Code, sondern ein veralteter Typ im Frontend, der die neue API-Response-Shape nicht kannte.</description><pubDate>Sun, 07 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Qdrant Multi-Tenancy mit eigener Collection pro Nutzer</title><link>https://www.web-x.dev/blog/qdrant-multi-tenancy-per-user-collections-dsgvo</link><guid isPermaLink="true">https://www.web-x.dev/blog/qdrant-multi-tenancy-per-user-collections-dsgvo</guid><description>Phase 3 bringt echte Datenisolierung. Jeder Nutzer bekommt eine eigene Qdrant-Collection, einen eigenen S3-Pfad und drei neue Endpunkte für DSGVO-Rechte.</description><pubDate>Sat, 06 Jun 2026 10:00:00 GMT</pubDate></item><item><title>access_token, id_token und der Userinfo-Endpoint</title><link>https://www.web-x.dev/blog/access-token-id-token-userinfo-oidc</link><guid isPermaLink="true">https://www.web-x.dev/blog/access-token-id-token-userinfo-oidc</guid><description>OAuth 2.0 und OIDC liefern bei einem Login zwei Tokens, und fast jede Implementierung liest die E-Mail-Adresse aus dem falschen. Warum access_token und id_token grundlegend verschiedene Zwecke haben und wieso der Userinfo-Endpoint die zuverlässigere Quelle für Nutzerprofildaten ist.</description><pubDate>Fri, 05 Jun 2026 10:00:00 GMT</pubDate></item><item><title>MinIO statt Azurite für S3-kompatible Objektspeicherung lokal und auf Hetzner</title><link>https://www.web-x.dev/blog/minio-s3-kompatibler-objektspeicher-lokal-hetzner</link><guid isPermaLink="true">https://www.web-x.dev/blog/minio-s3-kompatibler-objektspeicher-lokal-hetzner</guid><description>Azurite bindet das Projekt an Azure Blob Storage. MinIO spricht dieselbe S3-API wie Hetzner Object Storage. Ein Env-Var-Tausch genügt für den Wechsel in die Produktion. Gleichzeitig: wie der Zitadel-Bootstrap-Container OIDC-Apps automatisch anlegt.</description><pubDate>Thu, 04 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Event-Driven Ingestion mit BullMQ und Redis</title><link>https://www.web-x.dev/blog/bullmq-event-driven-ingestion-queue</link><guid isPermaLink="true">https://www.web-x.dev/blog/bullmq-event-driven-ingestion-queue</guid><description>POST /ingest blockierte die Extension, bis Embedding und Qdrant-Upsert fertig waren. Mit BullMQ und Redis wird der Ingest asynchron: 202 sofort, Verarbeitung im Hintergrund, Statusabfrage über GET /captures/:id/status.</description><pubDate>Wed, 03 Jun 2026 10:00:00 GMT</pubDate></item><item><title>Vite Build-Time-Umgebungsvariablen in Docker: warum kein ARG nötig ist</title><link>https://www.web-x.dev/blog/vite-env-vars-docker-build-context</link><guid isPermaLink="true">https://www.web-x.dev/blog/vite-env-vars-docker-build-context</guid><description>import.meta.env-Variablen werden von Vite beim Build eingebettet, nicht zur Laufzeit gelesen. In Docker funktioniert das über den Build Context, nicht über ARG/ENV. Ein häufiger Fehler und die überraschend einfache Lösung.</description><pubDate>Tue, 02 Jun 2026 18:00:00 GMT</pubDate></item><item><title>React-Frontend mit react-oidc-context und Zitadel: sechs Auth-Zustände sauber verwalten</title><link>https://www.web-x.dev/blog/react-oidc-context-zitadel-frontend</link><guid isPermaLink="true">https://www.web-x.dev/blog/react-oidc-context-zitadel-frontend</guid><description>react-oidc-context übernimmt den PKCE-Flow im Browser. Die eigentliche Herausforderung ist nicht der Login-Button, sondern die korrekte Behandlung aller sechs Auth-Zustände in App.tsx und eine JWT-Middleware im Backend, die Zitadels JWKS-Endpoint nutzt.</description><pubDate>Mon, 01 Jun 2026 18:00:00 GMT</pubDate></item><item><title>PKCE OAuth in einer Chrome MV3 Extension mit chrome.identity.launchWebAuthFlow</title><link>https://www.web-x.dev/blog/pkce-chrome-extension-zitadel</link><guid isPermaLink="true">https://www.web-x.dev/blog/pkce-chrome-extension-zitadel</guid><description>chrome.identity.launchWebAuthFlow ist der richtige Einstiegspunkt für PKCE OAuth in Chrome Extensions. Wie Token-Speicherung in chrome.storage.sync, automatische Erneuerung und die Extension-spezifische Redirect-URI zusammenspielen.</description><pubDate>Sun, 31 May 2026 18:00:00 GMT</pubDate></item><item><title>Zitadel Login V2 in Docker Compose einrichten: drei versteckte Fehler und ihre Lösung</title><link>https://www.web-x.dev/blog/zitadel-login-v2-docker-compose</link><guid isPermaLink="true">https://www.web-x.dev/blog/zitadel-login-v2-docker-compose</guid><description>Zitadel v4 bringt eine eigene Next.js Login-UI mit. Die Einrichtung in Docker Compose scheitert an drei nicht offensichtlichen Problemen: Postgres 18 Volume-Layout, fehlende PAT-Dateiberechtigung und falsche BaseURI-Konfiguration.</description><pubDate>Sat, 30 May 2026 18:00:00 GMT</pubDate></item><item><title>Lowercase-Normalisierung und Duplikat-Erkennung im Tag-Input mit Chip-Animation</title><link>https://www.web-x.dev/blog/tag-input-lowercase-duplikat-animation</link><guid isPermaLink="true">https://www.web-x.dev/blog/tag-input-lowercase-duplikat-animation</guid><description>Tags in einer Vektordatenbank müssen konsistent sein. &quot;Rolex&quot; und &quot;rolex&quot; sind zwei verschiedene Token, beide landen im Embedding. Ein toLowerCase() und eine animierte Chip-Reaktion auf Duplikate lösen das Problem ohne UI-Reibung.</description><pubDate>Fri, 29 May 2026 17:00:00 GMT</pubDate></item><item><title>Instagram Tastatur-Shortcuts blockieren Chrome Extension Eingaben</title><link>https://www.web-x.dev/blog/instagram-tastatur-shortcuts-keydown-propagation</link><guid isPermaLink="true">https://www.web-x.dev/blog/instagram-tastatur-shortcuts-keydown-propagation</guid><description>Wer &quot;n&quot; in einem Textfeld einer Chrome Extension tippt und Instagram öffnet plötzlich ein Panel. Das ist kein Zufall. Ein Blick auf Event-Bubbling, document-level Listener und warum stopPropagation() am richtigen Ort alles löst.</description><pubDate>Thu, 28 May 2026 16:00:00 GMT</pubDate></item><item><title>Notiz und Tags beim Screenshot-Speichern im Shadow DOM Overlay</title><link>https://www.web-x.dev/blog/chrome-extension-notiz-tags-capture-overlay</link><guid isPermaLink="true">https://www.web-x.dev/blog/chrome-extension-notiz-tags-capture-overlay</guid><description>Notiz und Tags werden direkt im Capture-Overlay eingegeben, in Qdrant persistiert und ins Embedding eingebettet. Wie Typen, Shadow DOM und ein Chip-Input das umsetzen.</description><pubDate>Wed, 27 May 2026 15:00:00 GMT</pubDate></item><item><title>Instagram Karussell vollständig erfassen mit MutationObserver</title><link>https://www.web-x.dev/blog/instagram-karussell-alle-slides-mutationobserver</link><guid isPermaLink="true">https://www.web-x.dev/blog/instagram-karussell-alle-slides-mutationobserver</guid><description>Instagram lädt Karussell-Slides lazy. Nur die ersten zwei sind beim Öffnen im DOM. Ein MutationObserver und eine while-Schleife lesen alle Slides automatisch aus, ohne einen einzigen Classnamen anzufassen.</description><pubDate>Tue, 26 May 2026 14:00:00 GMT</pubDate></item><item><title>Instagram PostId aus Feed und Kanal-Grid korrekt extrahieren</title><link>https://www.web-x.dev/blog/instagram-dom-traversal-postid-extraktion</link><guid isPermaLink="true">https://www.web-x.dev/blog/instagram-dom-traversal-postid-extraktion</guid><description>Instagram nutzt im Feed article-Tags, im Kanal-Grid nicht. ancestor traversal löst falsche PostIds, eine Promise-Map verhindert doppelte Backend-Requests.</description><pubDate>Mon, 25 May 2026 14:00:00 GMT</pubDate></item><item><title>Race Condition in Chrome Extensions debuggen und vermeiden</title><link>https://www.web-x.dev/blog/chrome-extension-race-condition-plattformerkennung</link><guid isPermaLink="true">https://www.web-x.dev/blog/chrome-extension-race-condition-plattformerkennung</guid><description>Das Shadow DOM Overlay löste eine Race Condition aus. Instagram wurde als generic erkannt, alle Metadaten fehlten. Ursache und Fix mit capturedElement und einem previewOpen Flag.</description><pubDate>Sun, 24 May 2026 12:00:00 GMT</pubDate></item><item><title>Chrome Extension mit Shadow DOM Preview und Tailwind CSS v4</title><link>https://www.web-x.dev/blog/chrome-extension-phase2-shadow-dom-tailwind-duplicate-detection</link><guid isPermaLink="true">https://www.web-x.dev/blog/chrome-extension-phase2-shadow-dom-tailwind-duplicate-detection</guid><description>Phase 2 bringt drei Features: ein Shadow DOM Preview-Overlay vor dem Speichern, farbkodierte Duplikatserkennung beim Hover und ein Popup mit Tailwind CSS v4.</description><pubDate>Sat, 23 May 2026 10:00:00 GMT</pubDate></item><item><title>Chrome Extension Foundation mit Health-Dot und Retry-Queue</title><link>https://www.web-x.dev/blog/chrome-extension-phase1-foundation-trust</link><guid isPermaLink="true">https://www.web-x.dev/blog/chrome-extension-phase1-foundation-trust</guid><description>Phase 1 legt das Fundament: Health-Dot, Retry-Queue und Capture History machen die Chrome Extension im täglichen Einsatz zuverlässig und nachvollziehbar.</description><pubDate>Fri, 22 May 2026 12:00:00 GMT</pubDate></item><item><title>Instagram Caption mit MutationObserver vollständig laden</title><link>https://www.web-x.dev/blog/instagram-caption-mehr-button-mutationobserver</link><guid isPermaLink="true">https://www.web-x.dev/blog/instagram-caption-mehr-button-mutationobserver</guid><description>Instagram kürzt Captions ab und Klassennamen wechseln bei jedem Deploy. Semantische DOM-Suche und ein MutationObserver laden den vollständigen Text trotzdem zuverlässig.</description><pubDate>Thu, 21 May 2026 10:00:00 GMT</pubDate></item><item><title>Warum module Node16 die Vite-Extension kaputt macht und wie es zu beheben ist</title><link>https://www.web-x.dev/blog/tsconfig-moduleresolution-vite-fehler-beheben</link><guid isPermaLink="true">https://www.web-x.dev/blog/tsconfig-moduleresolution-vite-fehler-beheben</guid><description>Neun TypeScript-Fehler auf einmal, alle über fehlende .js-Extensions in Importen. Der Grund: Ein tsconfig.json-Setting, das für Node.js korrekt ist, aber mit Vite als Bundler inkompatibel ist. Ich erkläre warum und zeige die richtige Konfiguration.</description><pubDate>Wed, 20 May 2026 10:00:00 GMT</pubDate></item><item><title>Warum ein manueller docker exec zum automatisierten Ollama Entrypoint-Setup führte</title><link>https://www.web-x.dev/blog/ollama-auto-pull-entrypoint</link><guid isPermaLink="true">https://www.web-x.dev/blog/ollama-auto-pull-entrypoint</guid><description>Nach dem ersten erfolgreichen Start meines RAG-Systems dachte ich: fertig. Dann habe ich einen docker exec-Schritt im Quick Start gesehen und nicht schlafen können. Hier ist wie ein kleines Reibungsmoment zu einer besseren Architektur geführt hat.</description><pubDate>Tue, 19 May 2026 10:00:00 GMT</pubDate></item><item><title>Docker Compose Override-Pattern für lokale Entwicklung und Azure-Deployment</title><link>https://www.web-x.dev/blog/docker-compose-local-zu-azure-deployment-strategie</link><guid isPermaLink="true">https://www.web-x.dev/blog/docker-compose-local-zu-azure-deployment-strategie</guid><description>Die meisten Projekte haben ein docker-compose.yml für lokal und ein völlig anderes für die Cloud. Das führt zu Drift, Fehlern und &quot;works on my machine&quot;-Problemen. Ich zeige, wie das Docker Compose Override-Pattern beide Welten mit denselben Basis-Dateien verwaltet.</description><pubDate>Mon, 18 May 2026 12:00:00 GMT</pubDate></item><item><title>Ollama lokal oder in Docker? Warum diese Entscheidung die gesamte Architektur beeinflusst</title><link>https://www.web-x.dev/blog/ollama-lokal-vs-docker-entscheidung</link><guid isPermaLink="true">https://www.web-x.dev/blog/ollama-lokal-vs-docker-entscheidung</guid><description>Als ich den Fehler &quot;Ollama is not reachable&quot; bekam, stand ich vor einer echten Architekturentscheidung: Ollama auf dem Host installieren oder als Docker-Container? Die Antwort hat meine gesamte Deployment-Strategie verändert.</description><pubDate>Sun, 17 May 2026 10:00:00 GMT</pubDate></item><item><title>Chrome Extension MV3 mit drei isolierten Kontexten und typsicherem Message-Passing</title><link>https://www.web-x.dev/blog/chrome-extension-mv3-drei-kontexte</link><guid isPermaLink="true">https://www.web-x.dev/blog/chrome-extension-mv3-drei-kontexte</guid><description>Eine Chrome Extension hat kein &quot;main.js&quot;. Sie hat drei vollständig isolierte Laufzeitkontexte, die nur über ein striktes Message-Protokoll kommunizieren dürfen. Wer das nicht versteht, baut fragile Extensions. Wer es versteht, baut robuste Systeme.</description><pubDate>Sat, 16 May 2026 10:00:00 GMT</pubDate></item><item><title>AI Provider Abstraktion für ein flexibles RAG-System mit Ollama und OpenAI</title><link>https://www.web-x.dev/blog/ki-provider-abstraktion-ollama-openai-strategie</link><guid isPermaLink="true">https://www.web-x.dev/blog/ki-provider-abstraktion-ollama-openai-strategie</guid><description>Ich hätte Ollama direkt ins Backend einbauen können. Ich hätte OpenAI direkt einbauen können. Ich habe stattdessen eine Abstraktionsschicht gebaut, die beide erlaubt, und dabei verstanden, warum das keine Überentwicklung ist, sondern die einzig strategisch richtige Entscheidung.</description><pubDate>Fri, 15 May 2026 10:00:00 GMT</pubDate></item><item><title>RAG-System mit Qdrant, Embeddings und Node.js aufbauen</title><link>https://www.web-x.dev/blog/vektordatenbank-embeddings-rag-system-aufbau</link><guid isPermaLink="true">https://www.web-x.dev/blog/vektordatenbank-embeddings-rag-system-aufbau</guid><description>Retrieval-Augmented Generation ist keine Theorie. Es ist eine konkrete Architektur aus drei Schritten: Einbetten, Suchen, Generieren. Ich zeige, wie ich das mit Qdrant, nomic-embed-text und llama3.2 komplett lokal und ohne Cloud-Kosten umgesetzt habe.</description><pubDate>Thu, 14 May 2026 11:00:00 GMT</pubDate></item><item><title>Von der Screenshot-Extension zur KI-Memory-Engine mit RAG, Qdrant und Ollama</title><link>https://www.web-x.dev/blog/rag-ki-memory-engine-vision</link><guid isPermaLink="true">https://www.web-x.dev/blog/rag-ki-memory-engine-vision</guid><description>Eine Chrome Extension für Instagram-Metadaten war der Ausgangspunkt. Was folgte, war ein vollständiges RAG-System auf Basis von Qdrant, Ollama und TypeScript, das lokal läuft, cloud-ready ist und semantische Suche über erfasste Social-Media-Daten ermöglicht.</description><pubDate>Wed, 13 May 2026 10:00:00 GMT</pubDate></item><item><title>Power Pages Architektur: Weg vom jQuery-Monolithen</title><link>https://www.web-x.dev/blog/power-pages-architektur-jquery-monolith-react</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-architektur-jquery-monolith-react</guid><description>Warum klassische Power Pages Frontends mit globalem jQuery-Kontext langfristig an ihre Grenzen stoßen und wie eine hybride React-Architektur Zuverlässigkeit ermöglicht.</description><pubDate>Tue, 12 May 2026 10:00:00 GMT</pubDate></item><item><title>React in Power Pages: Frontend-Architektur für Enterprise-Portale</title><link>https://www.web-x.dev/blog/power-pages-react-frontend-integration</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-react-frontend-integration</guid><description>Warum sich zwischen Low-Code und React entscheiden? Erfahren Sie, wie Sie React-Komponenten nahtlos in Power Pages einbinden und moderne User-Experience realisieren.</description><pubDate>Mon, 11 May 2026 10:00:00 GMT</pubDate></item><item><title>React-Anwendungen automatisiert bereitstellen in Power Pages</title><link>https://www.web-x.dev/blog/power-pages-pac-cli-react-automatisiert-bereitstellen</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-pac-cli-react-automatisiert-bereitstellen</guid><description>Erfahren Sie, wie Sie den ineffizienten manuellen Upload-Prozess in Power Pages durch ein automatisiertes Deployment-Skript und eine Side-by-Side Architektur ersetzen.</description><pubDate>Sat, 09 May 2026 09:00:00 GMT</pubDate></item><item><title>Lokale Ressourcen sicher laden in Power Pages</title><link>https://www.web-x.dev/blog/power-pages-ressourcen-management</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-ressourcen-management</guid><description>Externe CDNs scheitern in Power Pages oft an strengen CSP-Richtlinien. Wir zeigen alle Möglichkeiten, wie Sie Skripte und Stylesheets nativ als Web Files bereitstellen und synchron im Browser laden.</description><pubDate>Fri, 08 May 2026 08:00:00 GMT</pubDate></item><item><title>Volltextsuche mit Astro und Pagefind</title><link>https://www.web-x.dev/blog/astro-pagefind-search-architektur</link><guid isPermaLink="true">https://www.web-x.dev/blog/astro-pagefind-search-architektur</guid><description>Erfahren Sie, wie wir mit Pagefind und Astro eine performante, statische Volltextsuche ohne teure Backend-Infrastruktur umsetzen.</description><pubDate>Thu, 07 May 2026 12:00:00 GMT</pubDate></item><item><title>Power Pages Supply Chain Attack</title><link>https://www.web-x.dev/blog/power-pages-supply-chain-attack</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-supply-chain-attack</guid><description>Ein manipuliertes Skript im Header reicht aus, um die Identität deiner Portalnutzer zu stehlen. Erfahre, wie eine Supply Chain Attack auf Microsoft Power Pages zielt und wie du dich durch strikte Architektur schützt.</description><pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate></item><item><title>DSGVO-konformes Webtracking in Power Pages mit Application Insights</title><link>https://www.web-x.dev/blog/power-pages-application-insights-dsgvo-fallstudie</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-application-insights-dsgvo-fallstudie</guid><description>Wie Unternehmen durch die nahtlose Integration von Application Insights und Consent Managern fundierte Nutzeranalysen in Power Pages aufbauen, ohne den Datenschutz zu verletzen.</description><pubDate>Tue, 05 May 2026 08:00:00 GMT</pubDate></item><item><title>Enterprise Payment-Integration: Sichere Stripe-Checkouts via Power Automate in Power Pages</title><link>https://www.web-x.dev/blog/power-pages-stripe-payment-integration</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-stripe-payment-integration</guid><description>Wie Sie PCI-konforme Zahlungsprozesse in Low-Code-Plattformen abbilden. Eine architektonische Deep-Dive-Analyse zur serverseitigen Orchestrierung von Stripe via Power Automate.</description><pubDate>Mon, 04 May 2026 10:00:00 GMT</pubDate></item><item><title>Actionable Analytics: Application Insights Architektur in Power Pages</title><link>https://www.web-x.dev/blog/power-pages-analytics-application-insights</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-analytics-application-insights</guid><description>Warum herkömmliche Logging-Verfahren in Low-Code-Portalen oft fehlschlagen und wie Sie durch asynchrone Azure Functions und Dataverse DSGVO-konforme User-Dashboards generieren.</description><pubDate>Sun, 03 May 2026 08:00:00 GMT</pubDate></item><item><title>Power Pages E-Commerce Modernisierung</title><link>https://www.web-x.dev/blog/power-pages-ecommerce-modernisierung</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-ecommerce-modernisierung</guid><description>Erfahren Sie, wie Sie massive Investitionen in Microsoft Power Pages schützen und durch eine hybride Architektur eine Performance auf Enterprise-Niveau erreichen.</description><pubDate>Fri, 01 May 2026 10:00:00 GMT</pubDate></item><item><title>Power Pages mit neuem Design-Stack: TailwindCSS &amp; DaisyUI nativ integrieren</title><link>https://www.web-x.dev/blog/power-pages-tailwindcss-daisyui</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-tailwindcss-daisyui</guid><description>Standard-Portalanwendungen stoßen visuell oft an ihre Grenzen und wie Sie durch die native Integration von TailwindCSS und DaisyUI eine moderne User Experience schaffen, ohne die Kernarchitektur zu beeinträchtigen.</description><pubDate>Thu, 30 Apr 2026 08:00:00 GMT</pubDate></item><item><title>Architekturmuster für Echtzeit-Warenkörbe in Power Pages: Caching-Limitierungen umgehen</title><link>https://www.web-x.dev/blog/power-pages-caching-echtzeit-warenkorb</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-caching-echtzeit-warenkorb</guid><description>Wie Sie Performance und dynamische Datensynchronisation in Power Pages vereinen. Eine architektonische Analyse zur Umgehung von serverseitigem Caching mittels Power Pages Web API.</description><pubDate>Wed, 29 Apr 2026 08:00:00 GMT</pubDate></item><item><title>Power Pages neu gedacht: Hybride Architektur mit React für skalierbare Portale</title><link>https://www.web-x.dev/blog/power-pages-react-architektur</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-react-architektur</guid><description>Erfahren Sie, warum Power Pages Portale an ihre Grenzen stoßen und wie Sie durch professionelle Webentwicklung mit React eine skalierbare &quot;Low-Code Backend, High-End Frontend&quot; Hybride Architektur aufbauen.</description><pubDate>Tue, 28 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Entwicklung eines Designsystems für Power Pages</title><link>https://www.web-x.dev/blog/power-pages-design-system-isolation</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-design-system-isolation</guid><description>Kollidieren globale Styles in Power Pages mit deinem Design-System? Lerne die 3-Schichten-Strategie zur CSS-Isolation kennen und vermeide Konflikte.</description><pubDate>Mon, 27 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Power Pages Design-System: CSS sauber überschreiben</title><link>https://www.web-x.dev/blog/power-pages-design-system</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-design-system</guid><description>Das Entfernen von Bootstrap und System-CSS in Microsoft Power Pages führt zu Fehlern. Ein eigenes Design-System gelingt sicher durch das gezielte Überschreiben der Standard-Styles.</description><pubDate>Sun, 26 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Power Pages Design: Warum Standard-Dateien immer geladen werden</title><link>https://www.web-x.dev/blog/power-pages-design-standarddateien</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-design-standarddateien</guid><description>Erfahre, warum Microsoft Power Pages automatisch Standard-CSS- und JavaScript-Dateien lädt, selbst wenn du sie deaktivierst oder löschst, wie diese das Design deines Portals beeinflussen und wie du mit einem einfachen JavaScript-Code die Kontrolle über die geladenen Ressourcen zurückgewinnst.</description><pubDate>Sat, 25 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Power Pages Web API: Response-Verhalten bei POST-Requests</title><link>https://www.web-x.dev/blog/power-pages-web-api-response</link><guid isPermaLink="true">https://www.web-x.dev/blog/power-pages-web-api-response</guid><description>Ein Überblick über das Response-Verhalten der Power Pages Web API bei POST-Requests. Warum erhält man einen 204 No Content Status und wie extrahiert man die ID des erstellten Datensatzes aus dem Header?</description><pubDate>Fri, 24 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Produktionsreife Carousel-Komponente mit Astro und TypeScript</title><link>https://www.web-x.dev/blog/astro-carousel-component-typescript-no-dependencies</link><guid isPermaLink="true">https://www.web-x.dev/blog/astro-carousel-component-typescript-no-dependencies</guid><description>Lerne, wie du eine voll ausgestattete, responsive Carousel-Komponente von Grund auf mit Astro und TypeScript entwickelst, ohne externe Abhängigkeiten</description><pubDate>Sat, 24 Jan 2026 10:00:00 GMT</pubDate></item><item><title>Azure Monitor Kosten senken: Strategien zur effizienten Datenerfassung</title><link>https://www.web-x.dev/blog/azure-monitor-kosten-reduzieren-datenerfassung</link><guid isPermaLink="true">https://www.web-x.dev/blog/azure-monitor-kosten-reduzieren-datenerfassung</guid><description>In diesem Leitfaden gehe ich darauf ein, wie in Azure Monitor Kosten entstehen und mit welchen strategischen Maßnahmen diese gezielt gesenkt werden können</description><pubDate>Thu, 01 Jan 2026 10:00:00 GMT</pubDate></item><item><title>Kostenoptimierung in Azure Log Analytics und Azure Application Insights</title><link>https://www.web-x.dev/blog/kostenoptimierung-in-azure-log-analytics-und-azure-application-insights-case-study</link><guid isPermaLink="true">https://www.web-x.dev/blog/kostenoptimierung-in-azure-log-analytics-und-azure-application-insights-case-study</guid><description>Wie eine fundierte Analyse und gezielte Maßnahmen in Azure Log Analytics und Application Insights zu messbaren Kosteneinsparungen von rund 70% beim Kunden geführt haben</description><pubDate>Wed, 10 Sep 2025 09:00:00 GMT</pubDate></item><item><title>Azure Monitor Kosten senken mit Data Collection Rules und Tabellentransformation</title><link>https://www.web-x.dev/blog/data-collection-rule</link><guid isPermaLink="true">https://www.web-x.dev/blog/data-collection-rule</guid><description>In diesem Blog erfährst du, wie du mit Data Collection Rules (DCRs) und Tabellentransformationen die Kosten von Azure Monitor und Log Analytics Workspace deutlich senken kannst</description><pubDate>Mon, 01 Sep 2025 08:00:00 GMT</pubDate></item><item><title>Angular Debugging in VSCode unter Ubuntu</title><link>https://www.web-x.dev/blog/angular-debugging-vscode-ubuntu</link><guid isPermaLink="true">https://www.web-x.dev/blog/angular-debugging-vscode-ubuntu</guid><description>Wie du Angular-Projekte unter Ubuntu in VSCode wieder debuggen kannst, wenn der Standard-Debugger nicht mehr funktioniert. Schritt-für-Schritt-Anleitung mit Tipps aus der Praxis</description><pubDate>Thu, 21 Aug 2025 16:00:00 GMT</pubDate></item></channel></rss>