CBD-SUPERMARKT
Verzeichnis-Plattform, die regionale Anbieter auffindbar macht – in einem Markt, in dem bezahlte Werbung praktisch ausfällt.
MEINE ROLLE
Konzept, Datenmodell, Entwicklung, Datenpipeline und Betrieb – als Ein-Personen-Projekt
ART
Eigenentwicklung – Konzept, Umsetzung und Betrieb in Eigenregie.
// AUSGANGSLAGE
Das Problem
In diesem Marktsegment sind die bezahlten Kanäle weitgehend geschlossen: Suchmaschinenwerbung ist für die Branche gesperrt, und die üblichen Keyword-Werkzeuge liefern zu den relevanten Begriffen schlicht keine Daten. Reichweite gibt es hier nur organisch – und die muss in die Seite hineingebaut werden, statt später als Marketing obendrauf zu kommen. Dazu kommt ein rechtlich enges Umfeld: Ein eigener Shop hätte Produkt- und Werbeaussagen bedeutet, die streng reguliert sind. Und die Anbieterseite ist zersplittert – viele kleine, regionale Betriebe, die nirgends vergleichbar gelistet sind.
// LÖSUNG
Der Ansatz
Statt eines Shops eine Verzeichnis-Plattform, die selbst nichts verkauft, sondern Anbieter auffindbar und vergleichbar macht. Die öffentlichen Seiten entstehen programmatisch aus dem Bestand – je Stadt, je Kategorie und als Kombination aus beidem –, aber ausschließlich dort, wo tatsächlich Anbieter hinterlegt sind; leere Kombinationen werden gar nicht erst erzeugt. Anbieter beanspruchen ihren bereits vorhandenen Eintrag, pflegen ihn im eigenen Dashboard und sehen dort, wie oft er aufgerufen und angeklickt wurde. Abos und bezahlte Top-Platzierungen laufen über Stripe; Zahlungsstatus und Platzierung fließen über Webhooks zurück in die Datenbank. Die Zugriffsregeln liegen bewusst nicht in der Anwendungsschicht, sondern in Postgres selbst: 35 Row-Level-Security-Policies plus PL/pgSQL-Trigger, die unter anderem verhindern, dass sich ein Nutzer beim Bearbeiten des eigenen Profils selbst zum Administrator macht.
// ERGEBNIS
Was dabei herauskam
Die Plattform ist live: 12 Tabellen über 11 Migrationen, rund 1.300 Seiten in der Sitemap und ein redaktionelles Lexikon mit 84 Begriffen als inhaltliches Fundament. Der Kern ist branchenunabhängig gebaut – Marke, Theme, Kategorien und Texte stecken in zwei Konfigurationsdateien, der restliche Code kennt die Branche nicht. Das CBD-Verzeichnis ist damit der Pilot, nicht das Endprodukt. Ein anschließendes systematisches SEO-Audit über acht Prüfbereiche hat die verbliebenen Schwachstellen – Caching-Strategie, strukturierte Daten, Security-Header – in einen priorisierten Maßnahmenplan überführt, statt sie im Bauchgefühl zu lassen.
// FUNKTIONEN
Was drin steckt
Landingpages nur mit echter Datenbasis
Stadt-, Kategorie- und Kombiseiten werden aus dem Bestand erzeugt – aber nur, wenn dahinter tatsächlich Anbieter stehen; Vergleichsseiten erst ab drei. Das volle Kreuzprodukt aus Städten und Kategorien wäre einfacher zu bauen und würde die Seite mit tausenden leeren Seiten fluten.
Rechte liegen in der Datenbank
35 Row-Level-Security-Policies regeln, wer welche Zeile lesen und schreiben darf: öffentlich nur veröffentlichte Einträge, Bearbeiten nur der eigene. Ein vergessener Filter in einer Abfrage kann so keine fremden Daten freilegen.
Trigger gegen Rechte-Eskalation
Nutzer dürfen ihr eigenes Profil bearbeiten – die Spalten für Rolle und Admin-Befugnisse friert ein PL/pgSQL-Trigger für alle außer Administratoren auf den alten Wert ein. Ohne diesen Trigger hätte die Selbstbearbeitung eine Hintertür zum Admin-Konto geöffnet.
Eintrag beanspruchen statt neu anlegen
Ein Anbieter findet seinen bereits gelisteten Eintrag vor und beansprucht ihn. Bearbeiten lässt er sich erst nach abgeschlossener Zahlung – die Zahlung dient gleichzeitig als Identitätsnachweis, weil niemand für einen fremden Eintrag zahlt.
Bezahlte Platzierungen mit festen Slots
Top-Plätze sind einzeln gebuchte Positionen je Geltungsbereich – global, pro Kategorie oder pro Stadt –, per Datenbank-Constraint eindeutig vergeben. Sie tragen sichtbar den Hinweis „Anzeige"; abgelaufene Plätze räumt ein täglicher Cron-Job selbst wieder frei.
Nachvollziehbares Ranking der freien Plätze
Die Reihung nutzt einen bayesianischen Durchschnitt: eine 5,0 aus einer Bewertung schlägt keine 4,9 aus über tausend. Ein reiner Sternedurchschnitt wäre über die kleinste Zahl an Bewertungen manipulierbar.
Statistiken für den Anbieter
Aufrufe und Klicks – Website, Shop, Telefon, Karte, einzelne Produkte – werden serverseitig erfasst und im Dashboard als Zeitreihe gezeigt. Geschrieben wird ausschließlich über einen serverseitigen Endpunkt ohne personenbezogene Merkmale; direktes Schreiben aus dem Browser ist unterbunden.
Lexikon mit automatischer Verlinkung
Ein redaktionelles Nachschlagewerk aus 84 markdownbasierten Einträgen. Beim Rendern wird die erste Erwähnung jedes anderen Begriffs automatisch verlinkt – ausschließlich in Textknoten außerhalb von Links, Überschriften und Code, mit Obergrenze gegen Überverlinkung.
Rechtlicher Rahmen von Anfang an mitgebaut
Altersabfrage mit Fokusfalle nach WCAG, Cookie-Einwilligung als echtes Opt-in (ohne Zustimmung läuft kein Analyse-Tracking), Kennzeichnung bezahlter Platzierungen, Impressum und Rechtstexte. In einem regulierten Umfeld ist das keine Politur am Ende, sondern Voraussetzung für den Betrieb.
Branchenunabhängiger Kern
Marke, Farbwelt, Kategorien und Startseitentexte stecken in zwei Konfigurationsdateien; der übrige Code enthält keine Branchenlogik. Für ein Verzeichnis in einer anderen Branche werden diese Dateien ersetzt, nicht die Anwendung umgeschrieben.
Eigene Datenpipeline mit Rückfahrkarte
Der Bestand wird über eine Import-Strecke gefüllt und anschließend durch einen Qualitätsfilter geschickt, der branchenfremde Treffer zur Prüfung vorlegt statt sie selbst zu löschen. Aussortierte Einträge wandern nur in den Entwurfsstatus und sind jederzeit zurückholbar.
// TECHNIK
Eingesetzter Stack
Anwendung
Daten & Auth
Zahlung
Betrieb
Datenpipeline
// WEITERE PROJEKTE
> STATUS_CHECK...
Ähnliches Vorhaben? Schreib mir.
Ob SaaS-Plattform, KI-Integration oder ein internes Werkzeug, das jemandem den Tag zurückgibt – ich bringe Ideen schnell und professionell zum Laufen.