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.
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
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
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
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
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
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.
Markenbuch
Brand DNA pro Workspace: Palette, Typo, Tone, verbotene Wörter, Pose-Guidelines, Mood-Board, Logo.
Mood Boards
Printable über /identity/print, öffentlich teilbar mit optionalem Passwort. Items als Reference Image für AI Studio.
AI Chat im Katalog
ai-ask über OpenRouter, default anthropic/claude-3.5-sonnet. Embeddings via Voyage debounced 30 s auf Produkttext-Änderung.
Mikro-Releases · Logs
Eine Variant-Korrektur, ein Foto-Refresh. Selber Publish-Pfad, mit Logs, ohne Overhead.
Team-Rollen
workspace_members mit Rolle owner, admin, member. Invites per E-Mail, soft-deactivate via deactivated_at.
Watermarking
Overlay eines Watermark-Assets mit Position, Skalierung, Opazität und Margin. Sharp pipeline.
Eigene AI-Modelle
BYOK. Per-Generation cost_usd vom Anbieter echoed, totalCostUsd am Run, kein Token-Markup.
Collage-Builder
Mehrere Library-Bilder zu einem neuen Asset komponieren. Output als AI-Reference brauchbar.
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