Content-Plattform für eingebettete Produktkomponenten
Eine Komponente, die in einer Seite läuft, die ihr nicht gehört, muss alles mitbringen und darf nichts voraussetzen. Über mehrere Jahre entstanden im Umfeld eines internationalen Finanzdienstleisters mehrere davon — und mit ihnen ein Pflegeaufwand, den keine allein hatte. Die Antwort war, den Inhalt aus den Dateien zu lösen und die Komponente zum Auslieferungsartefakt zu machen.
Der Fall in einer Minute.
- Rolle
- Entwicklung und mehrjährige Pflege mehrerer eingebetteter Produktkomponenten sowie technische Umsetzung der späteren zentralen Verwaltung und Auslieferung.
- Systemklasse
- Eigenständige, in fremde Seiten einbettbare Komponenten im Umfeld eines Finanzdienstleisters, später ergänzt um eine serverseitige Verwaltungs- und Auslieferungsanwendung.
- Zeitraum
- Ende 2022 bis Anfang 2026 — durchgehende Entwicklungs- und Pflegearbeit, keine einmalige Erstellung.
- Komponentenarten
- Interaktiver Produktvergleich, personalisierter Rechner mit Diagramm, tabellarische Produktübersicht, Sticky-Navigation, Carousel-Ansicht und Hinweis- und Aktionsmodule.
- Vergleichslogik
- Nutzergesetzte Gewichte über mehrere Kriterien, daraus ein Punktwert je Produkt, Normalisierung auf Prozent gegen das bestplatzierte Produkt, zusätzliche kategoriale Filterung und definierte Sortierung.
- Zentrale Verwaltung
- Datenmodell aus Produktdatensätzen und komponentenbezogenen Feldwerten, deklarative Feldsätze je Komponententyp, Redaktionsoberfläche mit Rollenbeschränkung, Vorschau- und Auslieferungsendpunkte.
- Abgrenzung
- Produktinhalte, Bilder und Markenassets stammen nicht von uns. Eingesetzte Fremdbibliotheken für Diagramme, Karussell und Eingabemaskierung sind als solche kenntlich und keine Eigenentwicklung.
Eine Komponente, die in einer fremden Seite lebt.
Wer eine Anwendung baut, besitzt die Seite, in der sie läuft. Hier war das nicht so. Die Komponenten waren dafür gedacht, in eine bestehende Webpräsenz eingesetzt zu werden, deren Aufbau, Stylesheets und Ladeverhalten von woanders kamen und sich ändern konnten, ohne zu fragen.
Das dreht die üblichen Annahmen um. Eine Komponente darf keine globalen Stile setzen und sich auf keine verlassen. Sie muss ihre eigenen Zustände mitbringen, weil es keinen Anwendungsrahmen gibt, der sie hält. Sie muss auf einem Gerät funktionieren, dessen Breite sie nicht kennt, in einem Dokument, dessen Rest ihr nicht gehört.
Was hier also gebaut wurde, sind keine Seiten und keine Anwendung, sondern in sich geschlossene Bausteine mit eigener Logik, eigener Darstellung und eigener Datenhaltung — jeder für sich lauffähig, ohne Voraussetzungen an seine Umgebung.
Vergleichen heißt gewichten.
Ein Produktvergleich, der eine feste Rangfolge zeigt, beantwortet die Frage des Anbieters und nicht die des Nutzers. Interessant wird er erst, wenn die Gewichtung beim Nutzer liegt: Wer Wert auf das eine legt, bekommt eine andere Reihenfolge als jemand, dem das andere wichtig ist.
Umgesetzt ist das als gewichtete Bewertung. Über mehrere Kriterien lässt sich einstellen, wie schwer jedes wiegen soll; daraus entsteht je Produkt ein Punktwert. Zwei Kriterien tragen dabei einen festen Korrekturfaktor, weil ihre Rohwerte in anderen Größenordnungen liegen als die übrigen — ohne diesen Ausgleich würde ein einzelnes Kriterium das Ergebnis dominieren, sobald es überhaupt gewichtet wird.
Der Punktwert selbst sagt niemandem etwas. Angezeigt wird deshalb ein Prozentwert gegen das bestplatzierte Produkt — der Vergleich ist relativ, nicht absolut. Und für den Fall, dass gar nichts gewichtet ist, greift eine definierte Ausgangsreihenfolge statt einer zufälligen: Eine Ergebnisliste, deren Reihenfolge sich ohne Zutun ändert, wäre die schlechtere Antwort auf eine leere Eingabe.
- Eingabe
- Gewichtung je Kriterium, Kategoriale Filterung, Zurücksetzen in den Ausgangszustand
- Berechnung
- Punktwert je Produkt aus Gewicht und Merkmalswert, Feste Korrekturfaktoren für abweichende Größenordnungen, Normalisierung gegen das bestplatzierte Produkt
- Ergebnis
- Sortierte Liste mit Prozentwert, Definierte Reihenfolge ohne Gewichtung, Detailansicht je Produkt
- Darstellung
- Responsive Kartenansicht, Schmale Viewports über eine Karussellansicht, Trennung gefilterter und ungefilterter Treffer
Der Weg einer Komponente.
Zwischen einem fertigen Baustein und einem Baustein, der in einer fremden Seite erscheint, liegt ein eigener Weg. Er entscheidet darüber, was eine Inhaltsänderung kostet — und genau dieser Weg hat sich über die Jahre am stärksten verändert.
Am Anfang war er kurz und vollständig manuell: Wer den Inhalt ändern wollte, änderte die Datei. Am Ende steht derselbe Weg, aber ohne Handarbeit im mittleren Teil — der Inhalt liegt in einem Datenbestand, die Auslieferung entsteht daraus.
Wichtig ist dabei, was sich nicht geändert hat. Aus Sicht der einbettenden Seite bleibt es ein einziger Einbindungspunkt. Die Zentralisierung verändert die Pflege, nicht die Schnittstelle nach außen — sonst würde jeder Schritt eine Abstimmung mit fremden Seiten erfordern.

- 01
Produktdaten
Ein schlanker Datensatz je Produkt trägt die Angaben, die alle Komponenten gemeinsam brauchen.
- 02
Feldsatz
Je Komponententyp ist deklarativ festgelegt, welche Felder er kennt — Text, Bild, Verweis, Kennzahl.
- 03
Redaktion
Die Werte werden in einer rollenbeschränkten Oberfläche gepflegt, nicht im Quelltext.
- 04
Zusammenführung
Beim Rendern ersetzen Platzhalter die produktbezogenen Angaben aus dem Datensatz.
- 05
Vorschau
Ein eigener Endpunkt zeigt das Ergebnis, bevor es ausgeliefert wird.
- 06
Auslieferung
Ein zweiter Endpunkt gibt dieselbe Komponente als JavaScript aus, das die Zielseite einbindet.
Derselbe Index, ein anderer Warenkorb.
Die zweite größere Komponente ist ein Rechner, und sein Reiz liegt in einer Beobachtung: Eine amtliche Teuerungsrate beschreibt einen Durchschnittshaushalt. Fast niemand ist dieser Haushalt. Wer wenig fährt und viel heizt, erlebt eine andere Rate als die veröffentlichte — nicht weil die Zahl falsch wäre, sondern weil sie nach einem fremden Warenkorb gewichtet ist.
Der Rechner nimmt deshalb dieselben amtlichen Indexreihen, rund zwanzig an der Zahl, und gewichtet sie neu: nach den Ausgaben, die jemand selbst angibt. Für jeden Monat der Reihe entsteht so ein persönlicher Indexwert als gewichtetes Mittel über die Kategorien; die Jahresrate ergibt sich aus dem Vergleich mit dem Wert zwölf Monate zuvor. Dargestellt werden beide Verläufe nebeneinander — der eigene und der amtliche.
Der Aufwand steckt weniger in der Formel als in allem darum herum: Ausgabenwerte müssen in einer Form eingegeben werden können, in der Menschen über Geld denken, unvollständige Eingaben dürfen kein Ergebnis erzwingen, und die Kategorien brauchen eine Voreinstellung, damit der Rechner auch dann etwas zeigt, wenn jemand nur eine einzige Zahl eingetragen hat.
Was an einer eingebetteten Komponente altert.
Der Code dieser Komponenten ist über die Jahre erstaunlich stabil geblieben. Was sich fortlaufend änderte, war alles andere: Produktangaben, Konditionen, Bilder, Verweisziele, Textbausteine, Darstellungsdetails auf neuen Geräteklassen.
Das ist die eigentliche Erfahrung aus diesem Zeitraum, und sie widerspricht der üblichen Erwartung. Ein Baustein dieser Art ist nach der ersten Auslieferung nicht fertig, sondern beginnt dann erst zu leben. Über mehrere Jahre summierte sich diese Arbeit zu weit mehr Aufwand als die ursprüngliche Entwicklung — verteilt auf mehrere getrennte Komponenten mit jeweils eigener Ablage und jeweils eigenem Weg vom Wunsch bis zur Auslieferung.
Solange es eine Komponente ist, fällt das nicht auf. Mit jeder weiteren wächst der Aufwand nicht proportional, sondern schneller: Dieselbe Produktangabe steht plötzlich an mehreren Stellen, jede mit eigener Historie, und keine weiß von den anderen. Der Punkt, an dem das kippt, ist kein technischer Fehler. Er ist eine Mengenfrage.
Als aus Dateien Daten wurden.
Die Antwort darauf war keine weitere Komponente, sondern eine Ebene darunter: eine serverseitige Anwendung, in der Produktangaben und komponentenbezogene Inhalte als Daten liegen statt als Quelltext.
Das Modell ist bewusst klein gehalten. Es gibt einen schlanken Produktdatensatz mit den Angaben, die überall gebraucht werden. Es gibt je Komponente einen Satz benannter Feldwerte. Und es gibt eine deklarative Angabe darüber, welche Felder ein Komponententyp überhaupt kennt — damit ein neuer Typ eine Konfigurationsfrage bleibt und keine Modelländerung wird. Über all dem liegt eine Redaktionsoberfläche mit Anmeldung und Rollenbeschränkung.
Ausgeliefert wird serverseitig gerendert. Ein Endpunkt zeigt die Vorschau, ein zweiter gibt dieselbe Komponente als JavaScript aus. Damit ist die Trennung sauber: Inhalt ist Datenbestand, Darstellung ist Vorlage, Auslieferung ist ein Aufruf. Was vorher eine Änderung an einer Datei war, ist danach eine Änderung an einem Datensatz — und wirkt an allen Stellen, die diesen Datensatz verwenden.
Was einzelne Komponenten zu einem System macht.
Rückblickend ist der interessante Teil dieses Falls nicht die einzelne Komponente, sondern der Übergang.
Für eine Handvoll Bausteine ist eine eigene Verwaltungsebene überzogen — sie kostet mehr, als sie spart, und niemand hätte sie zu Beginn bauen sollen. Für mehrere Komponenten mit gemeinsamen Produktangaben und laufender inhaltlicher Pflege kippt diese Rechnung. Der richtige Zeitpunkt für die Zentralisierung war deshalb weder am Anfang noch, als es unerträglich wurde, sondern an der Stelle dazwischen, an der die Wiederholung sichtbar und der Umbau noch überschaubar war.
Was den Umbau möglich gemacht hat, war eine Eigenschaft der ersten Lösung: Jede Komponente war von Beginn an in sich geschlossen und hatte genau einen Einbindungspunkt nach außen. Genau diese Eigenschaft macht es möglich, hinter dem Einbindungspunkt die Herkunft des Inhalts auszutauschen, ohne die Schnittstelle nach außen zu ändern. Bausteine sauber zu schneiden zahlt sich selten sofort aus. Es zahlt sich an dem Tag aus, an dem man sie anders zusammensetzen will.
Eingesetzte Technologien
Zwei Generationen in einem Fall: eigenständige Frontend-Bausteine ohne Framework-Voraussetzungen, später eine serverseitige Anwendung für Verwaltung und Auslieferung. Diagramm-, Karussell- und Eingabebibliotheken sind Fremdcode und als solcher genannt.
Woran dieser Fall anschließt.
Fragen zu diesem Fall
Wie baut man eine Komponente, die in einer fremden Seite läuft?
In sich geschlossen und ohne Annahmen über die Umgebung. Sie bringt ihre eigene Darstellung, ihre eigenen Zustände und ihre eigenen Daten mit, setzt keine globalen Stile und verlässt sich auf keine. Nach außen hat sie genau einen Einbindungspunkt — das ist der Teil, den man später nicht mehr ändern kann, ohne fremde Seiten anzufassen.
Wie funktioniert ein Produktvergleich mit gewichteter Bewertung?
Die Gewichtung liegt beim Nutzer, nicht im Produkt. Über mehrere Kriterien lässt sich einstellen, wie schwer jedes wiegen soll; daraus entsteht je Produkt ein Punktwert, der gegen das bestplatzierte Produkt auf Prozent normalisiert wird. Kriterien mit abweichenden Größenordnungen brauchen dabei einen festen Ausgleich, sonst dominiert ein einzelnes das Ergebnis.
Ab wann lohnt sich eine zentrale Verwaltung für einzelne Komponenten?
An dem Punkt, an dem dieselbe inhaltliche Änderung an mehreren Stellen anfällt. Für ein oder zwei Bausteine ist eine eigene Verwaltungsebene überzogen. Mit jeder weiteren wächst der Pflegeaufwand schneller als die Anzahl, weil gemeinsame Angaben mehrfach geführt werden. Der richtige Zeitpunkt liegt zwischen der ersten sichtbaren Wiederholung und dem Punkt, an dem der Umbau selbst zum Projekt wird.
Was ändert sich, wenn Inhalte als Daten statt als Quelltext liegen?
Die Zuständigkeit. Eine Inhaltsänderung ist danach keine Entwicklungsaufgabe mehr, sondern ein Vorgang in einer Redaktionsoberfläche, und sie wirkt überall dort, wo derselbe Datensatz verwendet wird. Technisch tritt an die Stelle der bearbeiteten Datei ein serverseitiges Rendern aus Datenbestand und Vorlage, mit einer Vorschau vor der Auslieferung.
Warum nennen Sie hier weder ein Unternehmen noch eine Marke?
Weil dieser Fall die Engineering-Leistung beschreibt und nicht die Auftragskette. Bewertungslogik, Berechnung, Auslieferung und mehrjährige Pflege lassen sich vollständig darstellen, ohne die beteiligten Unternehmen zu benennen. Produktinhalte, Bilder und Markenassets stammen nicht von uns. Namentliche Referenzen besprechen wir im direkten Gespräch.
Setzen Sie Ihren Engineering-Weg fort.
Verwandte Konzepte, Entscheidungen, Playbooks und Standpunkte — als zusammenhängender Pfad, nicht als Linkliste.
Sprechen wir über Ihr Vorhaben.
Kein Vertrieb. Ein direktes Gespräch mit der Geschäftsführung.
