Kein Tool-Wildwuchs.Ein Backbone.

Media, AI Studio, Approvals, Releases und Rechte in einem System. Shopify-nativ, variantenfähig, audit-bereit. Vom Asset bis zum Drop, ein Backbone.

Sechs Module. Ein zusammenhängender Vorgang.

01 · Catalog

Media Management

Workspace-zentrale Asset-Library. Eine kanonische Zeile in der assets-Tabelle, egal ob Upload, AI-Generierung, Shopify-Import oder Media-Tools-Derivat. Parallele State-Machines für Processing (Sharp probt EXIF, Dimensionen, DPI, ICC) und Approval. SHA-256-Dedup workspace-weit, system-erzeugte Ordner pro Origin.

  • ·SHA-256 Dedup auf Bytes-Ebene
  • ·System-Ordner pro Origin
  • ·altText, copyright, creator editierbar
  • ·Signed URLs für private Assets
02 · Generation

AI Studio + Recipes

BYOK über Runware, OpenRouter, OpenAI, Voyage und DeepL. Schlüssel libsodium-verschlüsselt, decrypt nur im Worker-Prozess. AI Studio für interaktive Einzel-Generierungen, Recipes als wiederverwendbare Templates über N Produkte. Vorschläge für Text und Kategorie gehen in ein Review, nie direkt in den Katalog.

  • ·Runware für Bild und Background Removal
  • ·OpenRouter für Text und ai-ask
  • ·maxAttempts=1 schützt eure Rechnung
  • ·Mood-Board-Items als Reference Images
03 · Sync

Shopify Catalog Sync

Two-way Sync über die Shopify GraphQL Admin API. Pull holt Produkte, Varianten, Metafields und Metaobjects in Phasen. Webhooks HMAC-verifiziert und idempotent über X-Shopify-Webhook-Id. Shopify-Sourced Rows sind read-only, der Escape-Hatch ist locallyEditedAt.

  • ·Phased Sync: metafields, products, metaobjects
  • ·Bulk-Ops und Webhooks
  • ·Metafield-Spiegel als Custom Fields
  • ·Snapshots vor riskanten Edits
04 · Compliance

Rechte & Lizenzen

Eigene Tabelle, joint sich an jedes Asset. Quelle (Fotograf, Stock, KI, In-House), Lizenz-PDF im Blob-Storage, Lizenzgeber, Vertragsreferenz, Geltungsbereich, gezahlter Betrag, ausgestellt am, läuft ab am. Der rights-expiry-Job mailt 30, 14, 7 und 1 Tag vor Ablauf, dedupliziert per Bucket.

  • ·Lizenz-PDF dauerhaft am Asset
  • ·Geltungsbereich: web, print, social, DE, AT, CH
  • ·Expiry-Buckets 30 / 14 / 7 / 1
  • ·Joins auf alle Produkt-Zuordnungen
05 · Workflow

Asset Approvals

Konfigurierbare Flows pro Workspace mit beliebig vielen Stages. Jede Stage trägt eine Regel any oder all sowie eine Liste von Approver-User-IDs. State-Machine: none → pending → in_review → approved oder rejected → published. Kanban-Board zeigt das Bottleneck pro Stage.

  • ·Stages frei definierbar
  • ·Regel any oder all pro Stage
  • ·Kommentar bei Reject
  • ·Approval-State sperrt Downstream
06 · Versioned

Releases & Drops

Releases als eigene Objekte mit Launch-Datum. Produkte und Assets verknüpft, Readiness-Rollup zeigt Blocker. Der product-release-schedule-tick-Job prüft fällige Releases, der product-release-publish-Job schreibt zurück in Shopify-Metafields. Lock-Semantik verhindert Doppel-Publish.

  • ·Scheduled Publish in der Nacht
  • ·Readiness-Rollup pro Child
  • ·Lock-Semantik im Release
  • ·Unpublish und Channel-Rollback als Jobs

Acht weitere Bausteine. Im selben Workspace.

Brand

Markenbuch

Brand DNA pro Workspace: Palette, Typo, Tone, verbotene Wörter, Pose-Guidelines, Mood-Board, Logo.

Brand

Mood Boards

Printable über /identity/print, öffentlich teilbar mit optionalem Passwort. Items als Reference Image für AI Studio.

AI

AI Chat im Katalog

ai-ask über OpenRouter, default anthropic/claude-3.5-sonnet. Embeddings via Voyage debounced 30 s auf Produkttext-Änderung.

Versioned

Mikro-Releases · Logs

Eine Variant-Korrektur, ein Foto-Refresh. Selber Publish-Pfad, mit Logs, ohne Overhead.

Ops

Team-Rollen

workspace_members mit Rolle owner, admin, member. Invites per E-Mail, soft-deactivate via deactivated_at.

Media

Watermarking

Overlay eines Watermark-Assets mit Position, Skalierung, Opazität und Margin. Sharp pipeline.

AI

Eigene AI-Modelle

BYOK. Per-Generation cost_usd vom Anbieter echoed, totalCostUsd am Run, kein Token-Markup.

Media

Collage-Builder

Mehrere Library-Bilder zu einem neuen Asset komponieren. Output als AI-Reference brauchbar.

Architektur

Eine DB.Ein Worker. Wenige Abhängigkeiten.

Bun und ElysiaJS auf der Backend-Seite, Vue 3 mit SSR und Prerender auf der Frontend-Seite. Postgres mit Drizzle ORM, Graphile Worker als Postgres-backed Queue, kein Redis. Storage S3-kompatibel via Contabo, CDN über Bunny, E-Mail über Resend, alle EU-gehostet.

  • 01Adapter-Pattern für sources und channels. Woo, Shopware als zukünftige Adapter, kein Refactor
  • 02Append-only, monatlich partitionierter Audit-Log. Alte Partitionen detachable für Cold-Storage
  • 03C2PA-Spalten am Asset vorgemerkt für EU-AI-Act-Content-Labelling
  • 04SSR plus Prerender auf der Marketing-Seite. Sub-2-s TTFB auf DACH-Connections