feat(docs): update LemonSpace manifest and PRD for v2.0 release
- Updated version from v1.5 to v2.0 in both the LemonSpace Manifest and PRD documents. - Expanded Phase 1 scope to include video and asset nodes, and integrated non-destructive image editing capabilities. - Enhanced node taxonomy to reflect 6 categories with 27 node types. - Added details on offline sync features and optimistic updates in the documentation. - Improved clarity and structure of the product vision and problem statement sections.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 🍋 LemonSpace — Produkt-Manifest
|
||||
|
||||
**v1.5 — April 2026**
|
||||
**v2.0 — April 2026**
|
||||
|
||||
*Self-Hosted, Source-Available Creative Workspace*
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## 1. Vision
|
||||
|
||||
LemonSpace ist eine self-hosted, source-available Alternative zu Freepik Spaces. Eine visuelle Arbeitsfläche, auf der kreative Teams aus wenigen Input-Assets schnell kampagnenfähige Bildvarianten erzeugen — mit KI-gestützter Generierung, durchdachter Latenz-UX und voller Kontrolle über ihre Daten.
|
||||
LemonSpace ist eine self-hosted, source-available Alternative zu Freepik Spaces. Eine visuelle Arbeitsfläche, auf der kreative Teams aus wenigen Input-Assets schnell kampagnenfähige Bildvarianten erzeugen — mit KI-gestützter Generierung, non-destruktiver Bildbearbeitung, durchdachter Latenz-UX und voller Kontrolle über ihre Daten.
|
||||
|
||||
Das Produkt positioniert sich nicht als generisches „AI Creative Workspace", sondern löst ein spezifisches Problem: **Vom Rohbild zur fertigen Kampagnenvariante in Minuten statt Stunden** — auf eigener Infrastruktur oder als gehosteter Service.
|
||||
|
||||
@@ -44,40 +44,50 @@ Freepik Spaces zeigt, dass KI-gestützte Canvas-Workflows funktionieren. Aber:
|
||||
|
||||
Phase 1 löst genau einen End-to-End-Job so gut, dass Nutzer wiederkommen oder zahlen:
|
||||
|
||||
> **Upload Bilder → Prompt / Brief → Bildvarianten generieren → Vergleichen → Export**
|
||||
> **Upload Bilder → Prompt / Brief → Bildvarianten generieren → Bearbeiten (Adjustments) → Vergleichen → Export**
|
||||
>
|
||||
> *Alles, was diesen Flow nicht direkt besser macht, ist erstmal verdächtig.*
|
||||
|
||||
### Konkret bedeutet das für Phase 1
|
||||
|
||||
1. Nutzer lädt 1–5 Produktbilder auf den Canvas (Bild-Node)
|
||||
2. Schreibt einen Prompt oder Brief direkt am Canvas (Prompt-Node — jetzt Phase 1)
|
||||
2. Schreibt einen Prompt oder Brief direkt am Canvas (Prompt-Node)
|
||||
3. Generiert 4–8 Bildvarianten per KI (KI-Bild-Nodes)
|
||||
4. Vergleicht Ergebnisse nebeneinander (Compare-Node — jetzt Phase 1)
|
||||
5. Exportiert fertige Varianten als PNG oder ZIP (Export — jetzt Phase 1)
|
||||
4. Wendet non-destruktive Bildbearbeitung an (Kurven, Farbe, Licht, Detail)
|
||||
5. Vergleicht Ergebnisse nebeneinander (Compare-Node)
|
||||
6. Exportiert fertige Varianten als PNG (Export)
|
||||
|
||||
> **Inkonsistenzen aus v1.0 behoben:** Prompt-Node und Compare-Node sind in Phase 1 vorgezogen, weil sie für den Kern-Job essenziell sind. Export (PNG/ZIP) ist ebenfalls Phase 1 — ohne Export gibt es kein „Job done".
|
||||
> **Phase-1-Umfang erweitert (v2.0):** Video- und Asset-Nodes wurden vorgezogen, Bildbearbeitungs-Nodes (Kurven, Farbe, Licht, Detail, Render) mit vollständiger WebGL-Pipeline implementiert. Der MVP-Job umfasst jetzt auch die non-destruktive Bildbearbeitung als integralen Bestandteil.
|
||||
|
||||
---
|
||||
|
||||
## 5. Node-System — Phase 1
|
||||
|
||||
Nur die Nodes, die den MVP-Job ermöglichen. Die vollständige Node-Taxonomie (5 Kategorien, 25+ Node-Typen) wird in einem separaten **Node Spec Doc** dokumentiert.
|
||||
15 Node-Typen sind in Phase 1 implementiert. Die vollständige Node-Taxonomie (6 Kategorien, 27 Node-Typen) wird im PRD dokumentiert.
|
||||
|
||||
| Node | Kategorie | Rolle im MVP-Job |
|
||||
|------|-----------|------------------|
|
||||
| Bild | Quelle | Upload eigener Bilder (PNG, JPG, WebP) oder Einbindung per URL |
|
||||
| Text | Quelle | Freitextfeld für Copy, Brief, Beschreibungen — semantisch kein Prompt |
|
||||
| Prompt | Quelle | Dedizierter Node für Modellinstruktionen. Verbindet sich mit KI-Nodes |
|
||||
| KI-Bild | KI-Ausgabe | Output eines Bildgenerierungs-Calls. Speichert Prompt, Modell, Parameter |
|
||||
| Gruppe | Layout | Container für Nodes. Collapse/Expand, benannte Scopes |
|
||||
| Frame | Layout | Artboard mit definierter Auflösung. Export-Boundary für PNG/ZIP |
|
||||
| Notiz | Layout | Annotation auf dem Canvas. Markdown, kein Datenanschluss |
|
||||
| Compare | Layout | Zwei Bilder nebeneinander mit interaktivem Slider |
|
||||
| Node | Kategorie | Implementiert | Rolle im MVP-Job |
|
||||
|------|-----------|---------------|------------------|
|
||||
| Bild | Quelle | ✅ | Upload eigener Bilder (PNG, JPG, WebP) oder Einbindung per URL |
|
||||
| Text | Quelle | ✅ | Freitextfeld für Copy, Brief, Beschreibungen |
|
||||
| Video | Quelle | ✅ | Video-Upload und Playback |
|
||||
| Asset | Quelle | ✅ | Stock-Assets aus Asset Browser |
|
||||
| Prompt | KI-Ausgabe | ✅ | Dedizierter Node für Modellinstruktionen |
|
||||
| KI-Bild | KI-Ausgabe | ✅ | Output eines Bildgenerierungs-Calls |
|
||||
| Kurven | Bildbearbeitung | ✅ | Tonwert-Kurven, Levels, Histogram |
|
||||
| Farbe | Bildbearbeitung | ✅ | HSL, Color Balance, Temperature/Tint |
|
||||
| Licht | Bildbearbeitung | ✅ | Brightness, Contrast, Exposure, HDR, Vignette |
|
||||
| Detail | Bildbearbeitung | ✅ | Sharpen, Clarity, Denoise, Grain |
|
||||
| Render | Bildbearbeitung | ✅ | Materialisiert den Adjustment-Stack als neues Bild |
|
||||
| Gruppe | Layout | ✅ | Container für Nodes, Collapse/Expand |
|
||||
| Frame | Layout | ✅ | Artboard mit definierter Auflösung |
|
||||
| Notiz | Layout | ✅ | Annotation auf dem Canvas |
|
||||
| Compare | Layout | ✅ | Zwei Bilder nebeneinander mit Slider |
|
||||
|
||||
### Ausblick: Spätere Phasen
|
||||
|
||||
Transformation (BG entfernen, Upscale, Crop), Steuerung & Flow (Splitter, Loop, Agent, Mixer, Weiche), erweiterte Layout-Nodes (Text-Overlay, Kommentar, Präsentation) und weitere Quell-Nodes (Video, Asset, Farbe/Palette). Details im Node Spec Doc.
|
||||
**Phase 2:** Farbe/Palette (Quelle), KI-Text, KI-Video (KI-Ausgabe), Crop/Resize, BG entfernen, Upscale (Transformation), Splitter, Loop, Agent (Steuerung), Text-Overlay (Layout).
|
||||
|
||||
**Phase 3:** Style Transfer, Gesicht (Transformation), Mixer, Weiche (Steuerung), Kommentar, Präsentation (Layout).
|
||||
|
||||
---
|
||||
|
||||
@@ -103,6 +113,12 @@ Sobald ein Agent seinen Execution-Plan erstellt hat, erscheinen Skeleton-Nodes a
|
||||
|
||||
Opt-in via Browser Notifications API: Bei Tab-Wechsel und fertigem Job erhält der Nutzer eine native Benachrichtigung. Nicht erzwungen.
|
||||
|
||||
### Offline-Sync & Optimistic Updates
|
||||
|
||||
- **IndexedDB-Sync-Queue:** Persistente Queue für Canvas-Mutations mit Retry-Backoff und 24h-TTL
|
||||
- **localStorage-Cache:** Snapshot + leichtgewichtiger Op-Mirror für sofortige UI
|
||||
- **Optimistic IDs:** Temporäre IDs mit `optimistic_`-Prefix, automatisches Remapping bei Server-Bestätigung
|
||||
|
||||
---
|
||||
|
||||
## 7. Bewusste Entscheidungen
|
||||
@@ -113,18 +129,21 @@ Kompakt statt erschöpfend. Details wandern in eigene Architecture Decision Reco
|
||||
|-------|-------------|--------|
|
||||
| Backend | Convex (self-hosted). Bewusster Lock-in für Realtime, Storage, Jobs. Migrations-Pfad: Convex Cloud EU. | ✅ |
|
||||
| Auth | Better Auth + Magic Link (via polar-sh/better-auth plugin) | ✅ |
|
||||
| AI Layer | OpenRouter als primäre AI-Schicht. 9 Image-Modelle, Text/Reasoning via Claude / GPT. | ✅ |
|
||||
| AI Layer | OpenRouter als primäre AI-Schicht. 9 Image-Modelle, Phase 1: nur Gemini 2.5 Flash aktiv. | ✅ |
|
||||
| Self-hosted KI | rembg, Real-ESRGAN, GFPGAN — kostenlos, separate Repos | ✅ |
|
||||
| Payment | Polar.sh (MoR, VAT, Better Auth Plugin @polar-sh/better-auth) | ✅ |
|
||||
| Credits | Reservation + Commit. Credit-Abstraktion (1 Cr = €0,01 OR intern). Markup: 2× Bild, 2,5–3× Agent. | ✅ |
|
||||
| Pricing | 4 Tiers: Free (50 Cr) / Starter €8 (400 Cr) / Pro €59 (3.300 Cr) / Max €119 (6.700 Cr). ≥29% Marge nach LS + USt. Top-Up: fix (€5/€10/€20/€50) + Custom (€5–200, Bonus-Staffel 0–13%). | ✅ |
|
||||
| Pricing | 4 Tiers: Free (50 Cr) / Starter €8 (400 Cr) / Pro €59 (3.300 Cr) / Max €119 (6.700 Cr). ≥29% Marge. Top-Up: fix + Custom. | ✅ |
|
||||
| Lizenz | BSL 1.1, 3J Change Date → Apache 2.0. Private Nutzung frei. | ✅ |
|
||||
| Repo-Strategie | Zwei unabhängige Repos (lemonspace-web + lemonspace-landing). Auth-Cookie-Sharing via `.lemonspace.io`. | ✅ |
|
||||
| Frontend | Next.js 16 + Tailwind v4 + ShadCN | ✅ |
|
||||
| Canvas | @xyflow/react + dnd-kit | ✅ |
|
||||
| Bildbearbeitung | WebGL + GLSL Shader als primäre Engine. WASM-Backend vorbereitet. Client-seitig, credit-frei. | ✅ |
|
||||
| Preset-Persistierung | User-Presets in Convex (`adjustmentPresets`-Tabelle) | ✅ |
|
||||
| Offline Sync | IndexedDB Queue + localStorage Cache + Optimistic Updates | ✅ |
|
||||
| Sidebar | Resizable via react-resizable-panels, Rail-Mode (collapsible) | ✅ |
|
||||
| E-Mail | useSend + Stalwart (Self-Hosted). Für lemonspace.app pragmatisch externer SMTP möglich. | ✅ |
|
||||
| Kollaboration | Phase 3. Phase 1 fokussiert auf Solo-/Kleinteam-Workflows. | ⏳ |
|
||||
| Abuse Prevention | Daily Caps, Concurrency Limits, Freemium-Guardrails — Design TBD. | ⏳ |
|
||||
|
||||
---
|
||||
|
||||
@@ -137,11 +156,11 @@ Fokus heißt Nein sagen. Diese Features sind bewusst ausgeklammert, nicht verges
|
||||
| Echtzeit-Kollaboration | Kein Kernbedürfnis des primären ICP in Phase 1. Solo-/Kleinteam reicht. |
|
||||
| Agent Nodes | Zu komplex für MVP. Erst bauen, wenn der Basis-Job validiert ist. |
|
||||
| Video-Generierung | Anderer Job, andere Kosten, anderer ICP. |
|
||||
| Freepik Asset Browser | Nice-to-have, nicht Kern-Job. |
|
||||
| Style Transfer / GFPGAN | Transformation-Nodes kommen in Phase 2–3. |
|
||||
| Team-Features | Workspaces, Rollen, Rechte, Seat-Management — erst wenn Business-Tier validiert. |
|
||||
| docker-compose.yml | Self-Hosting dokumentieren, aber nicht den Hosted-MVP verzögern. |
|
||||
| E2E-Testing | Neubewertung bei Skalierung. |
|
||||
| Modellauswahl-UI | Phase 1 nur ein Modell (Gemini 2.5 Flash). Auswahl-UI folgt in Phase 2. |
|
||||
|
||||
---
|
||||
|
||||
@@ -175,16 +194,14 @@ Ohne messbare Ziele ist jedes PRD Wünsch-dir-was. Diese Metriken entscheiden, o
|
||||
|
||||
Ein AI-Kreativtool mit Free-Tier und Premium-Modellen braucht von Tag 1 Schutzmaßnahmen. Kein Randthema.
|
||||
|
||||
### Geplante Maßnahmen
|
||||
### Implementierte Maßnahmen
|
||||
|
||||
- Daily Generation Caps pro Tier (Free: 10/Tag, Starter: 50, Pro: 200, Max: 500)
|
||||
- Concurrency Limits: max. 2 parallele Generierungen (Free: 1)
|
||||
- Rate Limiting auf allen API-Endpunkten (Redis-backed)
|
||||
- Premium-Modelle erst ab Starter-Tier (Free nur Budget-Modelle)
|
||||
- Top-Up-Limit pro Monat (verhindert Missbrauch des Selbstkostenpreises)
|
||||
- Account-Verifizierung per E-Mail, optional Telefon bei Abuse-Verdacht
|
||||
|
||||
> **Offene Entscheidung:** Konkretes Design der Caps und Limits wird nach ersten Nutzungsdaten kalibriert. Initiale Werte sind konservativ.
|
||||
- Top-Up-Limit pro Monat
|
||||
- Account-Verifizierung per E-Mail
|
||||
|
||||
---
|
||||
|
||||
@@ -208,15 +225,20 @@ BSL 1.1 mit 3-Jahres-Change-Date zu Apache 2.0. Nach Change Date ist jedes Relea
|
||||
|
||||
Priorisiert nach Abhängigkeiten. Jeder Schritt hat ein klares Artefakt.
|
||||
|
||||
| # | Schritt | Artefakt |
|
||||
|---|---------|----------|
|
||||
| 1 | Repos scaffolden | `lemonspace-web` (Next.js + Convex + BetterAuth) + `lemonspace-landing` (Next.js) |
|
||||
| 2 | Convex Schema entwerfen | Schema-Datei mit Node-Typen + Credit-System |
|
||||
| 3 | Basis-Canvas mit @xyflow/react | Funktionierender Canvas mit Bild- und Prompt-Nodes |
|
||||
| 4 | OpenRouter-Prototyp | Image Gen (Gemini 2.5 Flash) funktioniert im Canvas |
|
||||
| 5 | Compare + Export | PNG/ZIP-Export aus Frame-Nodes |
|
||||
| 6 | Better Auth + Polar + Credit-System | Login, Polar Checkout via @polar-sh/better-auth, Balance-Tracking, Reservation+Commit |
|
||||
| 7 | Polar Webhook-Handling | Subscription-Events, automatische Credit-Zuweisung |
|
||||
| # | Schritt | Artefakt | Status |
|
||||
|---|---------|----------|--------|
|
||||
| 1 | Repos scaffolden | `lemonspace-web` + `lemonspace-landing` | ✅ |
|
||||
| 2 | Convex Schema entwerfen | Schema-Datei mit Node-Typen + Credit-System | ✅ |
|
||||
| 3 | Basis-Canvas mit @xyflow/react | Funktionierender Canvas mit Bild- und Prompt-Nodes | ✅ |
|
||||
| 4 | OpenRouter-Prototyp | Image Gen (Gemini 2.5 Flash) funktioniert im Canvas | ✅ |
|
||||
| 5 | Compare + Export | PNG-Export aus Frame-Nodes | ✅ |
|
||||
| 6 | Better Auth + Polar + Credit-System | Login, Checkout, Balance-Tracking, Reservation+Commit | ✅ |
|
||||
| 7 | Polar Webhook-Handling | Subscription-Events, automatische Credit-Zuweisung | ✅ |
|
||||
| 8 | WebGL Image Pipeline | Adjustment-Nodes mit GLSL-Shadern | ✅ |
|
||||
| 9 | Vollständige OpenRouter Integration | Alle 9 Modelle + Modellauswahl-UI | ☐ |
|
||||
| 10 | Agent Node | Analyse, Clarification, Execution, Output | ☐ |
|
||||
| 11 | Self-hosted KI-Services | rembg, Real-ESRGAN, GFPGAN | ☐ |
|
||||
| 12 | docker-compose.yml + Setup-README | Self-Hosting-Anleitung | ☐ |
|
||||
|
||||
---
|
||||
|
||||
@@ -226,12 +248,13 @@ Folgende Themen werden in eigenen Dokumenten vertieft. Das Manifest bleibt schla
|
||||
|
||||
| Dokument | Inhalt |
|
||||
|----------|--------|
|
||||
| PRD | Vollständige Node-Taxonomie, Tech Stack, Datenmodell, Pricing-Details, Phasen-Plan |
|
||||
| System Design Doc | Tech Stack mit Versionen, Zwei-Repo-Strategie, Infra-Details, Convex-Architektur, Redis, Cloudflare |
|
||||
| Node Spec Doc | Vollständige Node-Taxonomie (5 Kategorien, 25+ Typen), Datenmodell pro Node-Typ |
|
||||
| Credit & Pricing Doc | Detaillierte Pricing-Tabellen, Credit-Abstraktion, Tier-Kalkulation (nach LS + USt), Top-Up-System (fix + Custom mit Bonus-Staffel), Reservation+Commit-Flow, Agent Partial Failure |
|
||||
| Credit & Pricing Doc | Detaillierte Pricing-Tabellen, Credit-Abstraktion, Tier-Kalkulation, Top-Up-System, Reservation+Commit-Flow |
|
||||
| Self-Hosting Guide | docker-compose.yml, .env.example, Setup-README, Coolify-Anleitung |
|
||||
| ADR-Sammlung | Architecture Decision Records für Convex, OpenRouter, BSL 1.1, useSend, etc. |
|
||||
| ADR-Sammlung | Architecture Decision Records für Convex, OpenRouter, BSL 1.1, WebGL, etc. |
|
||||
| CLAUDE.md (pro Ordner) | Implementierungsdokumentation, synchronisiert mit Codebase |
|
||||
|
||||
---
|
||||
|
||||
*LemonSpace Manifest v1.5 — April 2026*
|
||||
*LemonSpace Manifest v2.0 — April 2026*
|
||||
|
||||
Reference in New Issue
Block a user