chore: remove outdated documentation files for LemonSpace

- Deleted the LemonSpace Manifest v1.2, Phase 1 TODO, and PRD v1.1 documents as they are no longer relevant to the current project scope.
- This cleanup helps streamline the documentation and focuses on the latest project requirements and updates.
This commit is contained in:
Matthias
2026-03-27 10:14:42 +01:00
parent cf3a338b9f
commit 99a359f330
3 changed files with 93 additions and 166 deletions

View File

@@ -1,6 +1,6 @@
# 🍋 LemonSpace — Produkt-Manifest # 🍋 LemonSpace — Produkt-Manifest
**v1.2 — März 2026** **v1.4 — März 2026**
*Self-Hosted, Source-Available Creative Workspace* *Self-Hosted, Source-Available Creative Workspace*
@@ -115,9 +115,9 @@ Kompakt statt erschöpfend. Details wandern in eigene Architecture Decision Reco
| Auth | Better Auth (self-hosted, open-source) | ✅ | | Auth | Better Auth (self-hosted, open-source) | ✅ |
| 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, Text/Reasoning via Claude / GPT. | ✅ |
| Self-hosted KI | rembg, Real-ESRGAN, GFPGAN — kostenlos, separate Repos | ✅ | | Self-hosted KI | rembg, Real-ESRGAN, GFPGAN — kostenlos, separate Repos | ✅ |
| Payment | Lemon Squeezy (Merchant of Record, VAT-Handling) | ✅ | | Payment | Polar.sh (MoR, VAT, Better Auth Plugin @polar-sh/better-auth) | ✅ |
| Credits | Reservation + Commit. Gecachte Preise (Redis, TTL ~10min). Kein nachträglicher Ausgleich. | ✅ | | Credits | Reservation + Commit. Credit-Abstraktion (1 Cr = €0,01 OR intern). Markup: 2× Bild, 2,53× Agent. | ✅ |
| Pricing | 4 Tiers: Free / Starter €9 / Pro €49 / Business €99. 30% Marge, 70% → Credits. | ✅ | | 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 (€5200, Bonus-Staffel 013%). | ✅ |
| Lizenz | BSL 1.1, 3J Change Date → Apache 2.0. Private Nutzung frei. | ✅ | | 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`. | ✅ | | Repo-Strategie | Zwei unabhängige Repos (lemonspace-web + lemonspace-landing). Auth-Cookie-Sharing via `.lemonspace.io`. | ✅ |
| Frontend | Next.js 16 + Tailwind v4 + ShadCN | ✅ | | Frontend | Next.js 16 + Tailwind v4 + ShadCN | ✅ |
@@ -164,9 +164,9 @@ Ohne messbare Ziele ist jedes PRD Wünsch-dir-was. Diese Metriken entscheiden, o
| Metrik | Ziel (6 Monate) | Messung | | Metrik | Ziel (6 Monate) | Messung |
|--------|-----------------|---------| |--------|-----------------|---------|
| Conversion Free → Paid | > 5% | Lemon Squeezy Events | | Conversion Free → Paid | > 5% | Polar Events |
| COGS pro aktivem Workspace | < 70% des Abo-Preises | OpenRouter-Kosten / aktive User | | COGS pro aktivem Workspace | < 70% des Credit-Werts | OpenRouter-Kosten / aktive User |
| MRR | €2.000+ | Lemon Squeezy Dashboard | | MRR | €2.000+ | Polar Dashboard |
| Churn (monatlich) | < 8% | Subscription-Events | | Churn (monatlich) | < 8% | Subscription-Events |
--- ---
@@ -177,7 +177,7 @@ Ein AI-Kreativtool mit Free-Tier und Premium-Modellen braucht von Tag 1 Schutzma
### Geplante Maßnahmen ### Geplante Maßnahmen
- Daily Generation Caps pro Tier (Free: 10/Tag, Starter: 50, Pro: 200, Business: 500) - Daily Generation Caps pro Tier (Free: 10/Tag, Starter: 50, Pro: 200, Max: 500)
- Concurrency Limits: max. 2 parallele Generierungen (Free: 1) - Concurrency Limits: max. 2 parallele Generierungen (Free: 1)
- Rate Limiting auf allen API-Endpunkten (Redis-backed) - Rate Limiting auf allen API-Endpunkten (Redis-backed)
- Premium-Modelle erst ab Starter-Tier (Free nur Budget-Modelle) - Premium-Modelle erst ab Starter-Tier (Free nur Budget-Modelle)
@@ -215,8 +215,8 @@ Priorisiert nach Abhängigkeiten. Jeder Schritt hat ein klares Artefakt.
| 3 | Basis-Canvas mit @xyflow/react | Funktionierender Canvas mit Bild- und Prompt-Nodes | | 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 | | 4 | OpenRouter-Prototyp | Image Gen (Gemini 2.5 Flash) funktioniert im Canvas |
| 5 | Compare + Export | PNG/ZIP-Export aus Frame-Nodes | | 5 | Compare + Export | PNG/ZIP-Export aus Frame-Nodes |
| 6 | Better Auth + Credit-System | Login, Balance-Tracking, Reservation+Commit | | 6 | Better Auth + Polar + Credit-System | Login, Polar Checkout via @polar-sh/better-auth, Balance-Tracking, Reservation+Commit |
| 7 | Lemon Squeezy Integration | Checkout, Webhooks, Credit-Zuweisung | | 7 | Polar Webhook-Handling | Subscription-Events, automatische Credit-Zuweisung |
--- ---
@@ -228,10 +228,10 @@ Folgende Themen werden in eigenen Dokumenten vertieft. Das Manifest bleibt schla
|----------|--------| |----------|--------|
| System Design Doc | Tech Stack mit Versionen, Zwei-Repo-Strategie, Infra-Details, Convex-Architektur, Redis, Cloudflare | | 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 | | Node Spec Doc | Vollständige Node-Taxonomie (5 Kategorien, 25+ Typen), Datenmodell pro Node-Typ |
| Credit & Pricing Doc | Detaillierte Pricing-Tabellen, Credit-Mechanik, Reservation+Commit-Flow, Agent Partial Failure | | 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 |
| Self-Hosting Guide | docker-compose.yml, .env.example, Setup-README, Coolify-Anleitung | | 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, useSend, etc. |
--- ---
*LemonSpace Manifest v1.2 — März 2026* *LemonSpace Manifest v1.4 — März 2026*

View File

@@ -4,7 +4,7 @@
| Version | Status | Datum | Projekt | | Version | Status | Datum | Projekt |
|---------|--------|-------|---------| |---------|--------|-------|---------|
| v1.1 | Draft | März 2026 | lemonspace.app | | v1.3 | Draft | März 2026 | lemonspace.app |
--- ---
@@ -22,6 +22,8 @@
| v0.9 | Zwei-Repo-Strategie (Web-App + Landing Page), Auth-Cookie-Sharing | | v0.9 | Zwei-Repo-Strategie (Web-App + Landing Page), Auth-Cookie-Sharing |
| v1.0 | Self-Hosting-Strategie, Credit Reservation+Commit, UX-Latenzen/Skeleton-Nodes, Convex Lock-in dokumentiert | | v1.0 | Self-Hosting-Strategie, Credit Reservation+Commit, UX-Latenzen/Skeleton-Nodes, Convex Lock-in dokumentiert |
| v1.1 | Monorepo verworfen → Zwei unabhängige Repos (lemonspace-web + lemonspace-landing), Auth-Cookie-Sharing via .lemonspace.io | | v1.1 | Monorepo verworfen → Zwei unabhängige Repos (lemonspace-web + lemonspace-landing), Auth-Cookie-Sharing via .lemonspace.io |
| v1.2 | Pricing überarbeitet: Credit-Abstraktion (1 Cr = €0,01 intern), Tiers €8/€59/€119 (Business→Max), Top-Up-System (fix + Custom mit Bonus-Staffel), Marge nach LS-Gebühr + USt validiert |
| v1.3 | Payment: Lemon Squeezy → Polar.sh (niedrigere Gebühren, Better Auth Plugin, Open Source). Gebührenmodell angepasst: 4% + $0,40 + 1,5% intl. + 0,5% Subscription |
--- ---
@@ -154,7 +156,7 @@ Agent Nodes sind ein spezieller Node-Typ auf dem Canvas. Sie fungieren als Smart
| Canvas / Flow | @xyflow/react | ehem. react-flow-renderer | | Canvas / Flow | @xyflow/react | ehem. react-flow-renderer |
| Drag & Drop | dnd-kit | Empfohlen über react-dnd (bessere Performance) | | Drag & Drop | dnd-kit | Empfohlen über react-dnd (bessere Performance) |
| Deployment | Coolify | VPS-Deployment für alle Self-hosted Services | | Deployment | Coolify | VPS-Deployment für alle Self-hosted Services |
| Payment | Lemon Squeezy | Merchant of Record, VAT-Handling | | Payment | Polar.sh | MoR, VAT-Handling, Better Auth Plugin (@polar-sh/better-auth) |
| Input Validation | Zod | Frontend + Backend, Convex Mutations | | Input Validation | Zod | Frontend + Backend, Convex Mutations |
| In-Memory Store | Redis | Self-hosted via Coolify | | In-Memory Store | Redis | Self-hosted via Coolify |
| Rate Limiting | Redis-backed | Next.js Middleware / Route Handler | | Rate Limiting | Redis-backed | Next.js Middleware / Route Handler |
@@ -288,44 +290,95 @@ Node (Basis)
``` ```
CreditBalance CreditBalance
├── id, userId ├── id, userId
├── balance // tatsächlich verfügbare Credits (Euro-Cent) ├── balance // verfügbare Credits
├── reserved // aktuell gesperrte Credits (laufende Jobs) ├── reserved // aktuell gesperrte Credits (laufende Jobs)
├── available // computed: balance - reserved ├── available // computed: balance - reserved
├── monthlyAllocation // Credits aus dem Abo ├── monthlyAllocation // Credits aus dem Abo (50/400/3300/6700)
└── updatedAt └── updatedAt
CreditTransaction CreditTransaction
├── id, userId ├── id, userId
├── amount // positiv = Gutschrift, negativ = Verbrauch ├── amount // positiv = Gutschrift, negativ = Verbrauch (in Credits)
├── type // subscription | topup | usage | reservation | refund ├── type // subscription | topup | usage | reservation | refund
├── status // committed | reserved | released | failed ├── status // committed | reserved | released | failed
├── description // z.B. "Bildgenerierung Gemini 2.5 Flash Image" ├── description // z.B. "Bildgenerierung Gemini 2.5 Flash Image (8 Cr)"
├── nodeId? // Referenz auf den auslösenden Node ├── nodeId? // Referenz auf den auslösenden Node
├── openRouterCost? // tatsächliche OpenRouter-Kosten (gecacht) ├── creditCost // Credit-Preis der Operation
├── openRouterCost? // tatsächliche OpenRouter-Kosten in € (intern, für Marge-Tracking)
└── createdAt └── createdAt
Subscription Subscription
├── id, userId ├── id, userId
├── tier // free | starter | pro | business ├── tier // free | starter | pro | max
├── status // active | cancelled | past_due ├── status // active | cancelled | past_due
├── currentPeriodStart / currentPeriodEnd ├── currentPeriodStart / currentPeriodEnd
└── lemonSqueezySubscriptionId? └── polarSubscriptionId?
``` ```
--- ---
## 9. Pricing & Credit-System ## 9. Pricing & Credit-System
### Credit-Abstraktion
Nutzer arbeiten mit **Credits** statt mit Euro-Beträgen. Ein Credit entspricht intern €0,01 OpenRouter-Kosten (interner Wechselkurs, wird dem Nutzer nicht kommuniziert). Die Abstraktion entkoppelt das Pricing von API-Preisschwankungen und ermöglicht flexible Anpassungen.
### Abo-Stufen ### Abo-Stufen
| Tier | Preis/Monat | Marge (30%) | Credits (70%) | Credits gesamt | Zielgruppe | Preise kalkuliert mit ≥28% Netto-Marge nach Polar Gebühr (4% + $0,40 + 1,5% intl. + 0,5% Subscription) und 19% USt.
|------|-------------|-------------|---------------|----------------|------------|
| Free | €0 | — | — | €0,50 (Geschenk) | Testen & Evaluieren |
| Starter | €9 | €2,70 | €6,30 | €6,30 | Einzelnutzer |
| Pro | €49 | €12,98 | €34,30 | €36,02 (+5%) | Aktive Creator |
| Business | €99 | €22,77 | €69,30 | €76,23 (+10%) | Teams, hoher Durchsatz |
### Credit Reservation + Commit (Option C) | Tier | Preis/Monat | Credits/Monat | Echte Marge | €/Credit | Zielgruppe |
|------|-------------|---------------|-------------|----------|------------|
| Free | €0 | 50 | €0,50 (Akquise) | gratis | Testen & Evaluieren |
| Starter | €8 | 400 | ~€2,00 (33%) | €0,0200 | Einzelnutzer, Einstieg |
| Pro | €59 | 3.300 | ~€13,71 (29%) | €0,0179 | Aktive Creator |
| Max | €119 | 6.700 | ~€27,61 (29%) | Teams, hoher Durchsatz |
### Credit-Nachkauf (Top-Up)
Fixe Top-Up-Pakete + frei wählbarer Custom-Betrag (€5200). Top-Ups sind pro Credit immer teurer als das entsprechende Abo — regelmäßige Nachkäufer werden zum Upgrade animiert.
**Fixe Pakete:**
| Paket | Preis | Credits | Marge | €/Credit |
|-------|-------|---------|-------|----------|
| Klein | €5 | 250 | ~31% | €0,0200 |
| Mittel | €10 | 500 | ~34% | €0,0200 |
| Groß | €20 | 1.000 | ~36% | €0,0200 |
| XL | €50 | 3.000 | ~24% | €0,0167 |
**Custom Top-Up (€5200):** Bonus steigt stufenweise mit dem Betrag. Formel: `Credits = FLOOR(Netto × 0,70 × (1 + Bonus) ÷ Kurs)`. UI zeigt live: "€X → Y Credits".
| Bereich | Bonus | Min. Marge |
|---------|-------|------------|
| €59,99 | 0% | ~30% |
| €1019,99 | 3% | ~28% |
| €2049,99 | 6% | ~26% |
| €5099,99 | 10% | ~23% |
| €100200 | 13% | ~21% |
### Credit-Preise pro Operation
Credits = ROUND(API-Kosten × Markup ÷ Kurs). Agent-Calls haben höheren Markup (Wertschöpfung durch Orchestrierung).
| Operation | Modell | API-Kosten | Markup | Credits | Tier-Zugang |
|-----------|--------|------------|--------|---------|-------------|
| Bildgenerierung (Budget) | FLUX.2 Klein 4B | ~€0,02 | 2× | 4 Cr | Alle Tiers |
| Bildgenerierung (Standard) | Gemini 2.5 Flash Image | ~€0,04 | 2× | 8 Cr | Alle Tiers |
| Bildgenerierung (Standard+) | Gemini 3.1 Flash Image | ~€0,06 | 2× | 12 Cr | Alle Tiers |
| Bildgenerierung (Premium) | GPT-5 Image Mini | ~€0,08 | 2× | 16 Cr | Ab Starter |
| Bildgenerierung (Ultra) | GPT-5 Image | ~€0,18 | 2× | 36 Cr | Ab Starter |
| Bildgen. (Pro Text/4K) | Riverflow V2 Pro | ~€0,33 | 1,5× | 50 Cr | Ab Starter |
| Agent Reasoning (leicht) | Claude Sonnet | ~€0,03 | 3× | 9 Cr | Ab Starter |
| Agent Reasoning (mittel) | Claude Sonnet | ~€0,06 | 2,5× | 15 Cr | Ab Starter |
| Agent-Run (komplex) | Multi-Step Workflow | ~€0,15 | 2,5× | 38 Cr | Ab Starter |
| BG-Entfernung | rembg (self-hosted) | €0 | — | 0 Cr | Alle Tiers |
| Upscaling | Real-ESRGAN (self-hosted) | €0 | — | 0 Cr | Alle Tiers |
| Face Restoration | GFPGAN (self-hosted) | €0 | — | 0 Cr | Alle Tiers |
| Canvas-Operationen | — | €0 | — | 0 Cr | Alle Tiers |
| Export (PNG/ZIP) | — | €0 | — | 0 Cr | Alle Tiers |
### Credit Reservation + Commit
Credits werden vor jedem KI-Call reserviert und erst nach erfolgreichem Abschluss committed. Bei Fehler werden reservierte Credits automatisch freigegeben — kein manueller Refund-Prozess nötig. Credits werden vor jedem KI-Call reserviert und erst nach erfolgreichem Abschluss committed. Bei Fehler werden reservierte Credits automatisch freigegeben — kein manueller Refund-Prozess nötig.
@@ -333,39 +386,24 @@ Credits werden vor jedem KI-Call reserviert und erst nach erfolgreichem Abschlus
``` ```
1. RESERVE → CreditTransaction (type: reservation, status: reserved) 1. RESERVE → CreditTransaction (type: reservation, status: reserved)
CreditBalance.reserved += estimated_cost CreditBalance.reserved += estimated_credits
CreditBalance.available = balance - reserved CreditBalance.available = balance - reserved
2a. SUCCESS → Transaction status: committed 2a. SUCCESS → Transaction status: committed
CreditBalance.balance -= actual_cost CreditBalance.balance -= actual_credits
CreditBalance.reserved -= estimated_cost CreditBalance.reserved -= estimated_credits
2b. FAILURE → Transaction status: released 2b. FAILURE → Transaction status: released
CreditBalance.reserved -= estimated_cost CreditBalance.reserved -= estimated_credits
(balance bleibt unverändert — voller Refund) (balance bleibt unverändert — voller Refund)
``` ```
> **Preisbasis:** Credits werden auf Basis der gecachten OpenRouter-Preise (Redis, TTL ~10 Minuten) reserviert und abgebucht. Minimale Abweichungen zum tatsächlichen API-Preis werden bewusst akzeptiert. Keine nachträgliche Korrektur. > **Preisbasis:** Credit-Preise pro Operation sind fix definiert (siehe Tabelle). Der interne Wechselkurs (1 Credit = €0,01 OR-Kosten) ist ein internes Kalkulationsinstrument. Bei API-Preisänderungen werden die Credit-Preise pro Operation angepasst — nicht der Wechselkurs.
### Agent Partial Failure ### Agent Partial Failure
Bei Agent-Workflows läuft Reservation + Commit pro Suboperation. Schlägt Step 3 von 5 fehl: Steps 1+2 sind committed, Step 3 wird released, Steps 4+5 werden nicht mehr reserviert. Nur tatsächlich verbrauchte Credits werden berechnet. Bei Agent-Workflows läuft Reservation + Commit pro Suboperation. Schlägt Step 3 von 5 fehl: Steps 1+2 sind committed, Step 3 wird released, Steps 4+5 werden nicht mehr reserviert. Nur tatsächlich verbrauchte Credits werden berechnet.
### Credit-Verbrauch
| Operation | Modell / Service | Ungefähre Kosten |
|-----------|------------------|------------------|
| Bildgenerierung (Budget) | FLUX.2 Klein 4B | ~€0,010,03 |
| Bildgenerierung (Standard) | Gemini 2.5 Flash Image | ~€0,020,04 |
| Bildgenerierung (Premium) | GPT-5 Image / Nano Banana Pro | ~€0,100,20 |
| Agent Reasoning Call | Claude 3.5 Sonnet | ~€0,010,05 |
| BG-Entfernung | rembg (self-hosted) | Kostenlos |
| Upscaling | Real-ESRGAN (self-hosted) | Kostenlos |
| Face Restoration | GFPGAN (self-hosted) | Kostenlos |
| Canvas-Operationen | — | Kostenlos |
| Text-Overlay | — | Kostenlos |
| Export-Funktionen | — | Kostenlos |
--- ---
## 10. UX-Strategie für Latenzen ## 10. UX-Strategie für Latenzen
@@ -425,10 +463,10 @@ Agent Status: analyzing
| Drag & Drop von Bildern via dnd-kit | ☐ Offen | | Drag & Drop von Bildern via dnd-kit | ☐ Offen |
| Authentifizierung via Better Auth | ☐ Offen | | Authentifizierung via Better Auth | ☐ Offen |
| OpenRouter Integration (Image Gen, Gemini 2.5 Flash Image) | ☐ Offen | | OpenRouter Integration (Image Gen, Gemini 2.5 Flash Image) | ☐ Offen |
| Credit-System: Balance-Tracking, Reservation+Commit, Kosten-Voranzeige | ☐ Offen | | Credit-System: Balance-Tracking (in Credits), Reservation+Commit, Kosten-Voranzeige | ☐ Offen |
| Abo-Verwaltung: Free/Starter/Pro/Business Tiers, monatliche Credit-Zuweisung | ☐ Offen | | Abo-Verwaltung: Free/Starter/Pro/Max Tiers, monatliche Credit-Zuweisung (50/400/3300/6700) | ☐ Offen |
| Lemon Squeezy Integration: Checkout, Webhooks, Credit-Zuweisung | ☐ Offen | | Polar Integration: Checkout, Webhooks, Credit-Zuweisung | ☐ Offen |
| Credit-Nachkauf (Top-Up) zum Selbstkostenpreis | ☐ Offen | | Credit-Nachkauf: Fixe Top-Ups (€5/€10/€20/€50) + Custom (€5200 mit Bonus-Staffel) | ☐ Offen |
| Node-Status-Modell (idle/executing/done/error) direkt am Node | ☐ Offen | | Node-Status-Modell (idle/executing/done/error) direkt am Node | ☐ Offen |
| docker-compose.yml + .env.example + Setup-README | ☐ Offen | | docker-compose.yml + .env.example + Setup-README | ☐ Offen |
@@ -482,8 +520,8 @@ Agent Status: analyzing
|-------|----------------------| |-------|----------------------|
| Authentifizierung | ✅ Better Auth (self-hosted, open-source) | | Authentifizierung | ✅ Better Auth (self-hosted, open-source) |
| Tailwind v4 | ✅ v4 ist Standard, keine Migration nötig | | Tailwind v4 | ✅ v4 ist Standard, keine Migration nötig |
| Pricing / Credit-System | ✅ 4-Tier Abo + Credit-System, 30% Marge, Reservation+Commit | | Pricing / Credit-System | ✅ Credit-Abstraktion (1 Cr = €0,01 intern), 4 Tiers (Free/Starter €8/Pro €59/Max €119), Reservation+Commit, Top-Up fix + Custom |
| Payment Provider | ✅ Lemon Squeezy (Merchant of Record, VAT-Handling) | | Payment Provider | ✅ Polar (Merchant of Record, VAT-Handling) |
| Self-Hosting-Strategie | ✅ docker-compose.yml + .env.example + README, für technisch versierte Nutzer | | Self-Hosting-Strategie | ✅ docker-compose.yml + .env.example + README, für technisch versierte Nutzer |
| Convex Lock-in | ✅ Bewusst akzeptiert; Migrations-Pfad: Convex Cloud EU | | Convex Lock-in | ✅ Bewusst akzeptiert; Migrations-Pfad: Convex Cloud EU |
| OpenRouter Image-Modelle | ✅ 9 Modelle definiert, alle Tiers haben Zugriff | | OpenRouter Image-Modelle | ✅ 9 Modelle definiert, alle Tiers haben Zugriff |
@@ -527,7 +565,7 @@ Agent Status: analyzing
2. Convex Schema: Detailliertes Datenbankschema entwerfen (Node-Taxonomie + Credit-System inkl. CreditBalance.reserved/available) 2. Convex Schema: Detailliertes Datenbankschema entwerfen (Node-Taxonomie + Credit-System inkl. CreditBalance.reserved/available)
3. UI/UX Wireframes: Canvas-Interface, Node-Status-Modell, Skeleton-Nodes, Agent Clarification-UX skizzieren 3. UI/UX Wireframes: Canvas-Interface, Node-Status-Modell, Skeleton-Nodes, Agent Clarification-UX skizzieren
4. API-Prototyp: OpenRouter Anbindung testen — Image Gen (Gemini 2.5 Flash Image) und Text/Reasoning (Claude 3.5 Sonnet) 4. API-Prototyp: OpenRouter Anbindung testen — Image Gen (Gemini 2.5 Flash Image) und Text/Reasoning (Claude 3.5 Sonnet)
5. Lemon Squeezy Integration: Abo-Tiers anlegen, Webhook-Handling für Subscription-Events und Credit-Zuweisung 5. Polar Integration: Abo-Tiers anlegen, Webhook-Handling für Subscription-Events und Credit-Zuweisung
6. docker-compose.yml + .env.example + Setup-README ausarbeiten 6. docker-compose.yml + .env.example + Setup-README ausarbeiten
--- ---

View File

@@ -1,111 +0,0 @@
# 🍋 LemonSpace — Phase 1 MVP TODO
## 1. Projekt-Setup & Infrastruktur
- [ ] `lemonspace-web` Repo scaffolden (Next.js 16 + Tailwind v4 + ShadCN + Convex + BetterAuth)
- [ ] `lemonspace-landing` Repo scaffolden (Next.js 16 + Tailwind v4 + ShadCN)
- [ ] Auth-Cookie-Sharing: BetterAuth Cookie auf `.lemonspace.io` setzen, Landing Page liest Login-State
- [ ] Convex Self-hosted Backend aufsetzen (via Coolify)
- [ ] Redis aufsetzen (via Coolify)
- [ ] Sentry Cloud anbinden (Free Tier)
- [ ] Cloudflare DNS + DDoS-Schutz konfigurieren
- [ ] Rybbit Analytics deployen (via Coolify)
- [ ] useSend + Stalwart E-Mail-Stack deployen (via Coolify)
## 2. Authentifizierung
- [ ] Better Auth integrieren (Self-hosted)
- [ ] Login / Signup Flow
- [ ] E-Mail-Verifizierung (via useSend)
- [ ] Session-Management
## 3. Canvas — Kernfunktion
- [ ] Basis-Canvas mit @xyflow/react
- [ ] Zoom, Pan, Navigation
- [ ] Drag & Drop von Bildern via dnd-kit
- [ ] Node-Rendering-System (typisierte Bausteine)
- [ ] Node-Verbindungen (Edges) zwischen kompatiblen Nodes
- [ ] Gruppierung und Layering von Canvas-Elementen
## 4. Phase-1-Nodes
### Quelle
- [ ] **Bild-Node** — Upload (PNG, JPG, WebP) + URL-Einbindung
- [ ] **Text-Node** — Freitextfeld mit Markdown-Support
- [ ] **Prompt-Node** — Dedizierter Node für Modellinstruktionen, verbindet sich mit KI-Nodes
### KI-Ausgabe
- [ ] **KI-Bild-Node** — Output eines Bildgenerierungs-Calls, speichert Prompt, Modell, Parameter
### Canvas & Layout
- [ ] **Gruppe-Node** — Container, Collapse/Expand, benannte Scopes
- [ ] **Frame-Node** — Artboard mit definierter Auflösung, Export-Boundary
- [ ] **Notiz-Node** — Annotation, Markdown-Support, kein Datenanschluss
- [ ] **Compare-Node** — Zwei Bilder nebeneinander mit interaktivem Slider
## 5. KI-Integration
- [ ] OpenRouter-Anbindung (Image Generation)
- [ ] Initiales Modell: Gemini 2.5 Flash Image
- [ ] Modellauswahl-UI (mindestens Budget/Standard/Premium)
- [ ] Prompt → KI-Bild-Generierung End-to-End im Canvas
- [ ] Node-Status-Modell implementieren (`idle → executing → done | error`)
- [ ] Error-State direkt am Node mit Hinweistext
## 6. Credit-System
- [ ] Convex Schema: `CreditBalance` (balance, reserved, available, monthlyAllocation)
- [ ] Convex Schema: `CreditTransaction` (amount, type, status, nodeId, openRouterCost)
- [ ] Convex Schema: `Subscription` (tier, status, periodStart/End, lemonSqueezyId)
- [ ] Reservation + Commit Flow implementieren
- [ ] Kosten-Voranzeige vor Generierung
- [ ] OpenRouter-Preise cachen (Redis, TTL ~10min)
- [ ] Credit-Balance-Anzeige in der UI
## 7. Pricing & Payment
- [ ] Lemon Squeezy Integration: Checkout-Flow
- [ ] Webhook-Handling für Subscription-Events
- [ ] Automatische Credit-Zuweisung bei Abo-Start / Abo-Verlängerung
- [ ] 4 Tiers anlegen: Free (€0,50) / Starter €9 / Pro €49 / Business €99
- [ ] Credit-Nachkauf (Top-Up) zum Selbstkostenpreis
## 8. Abuse Prevention
- [ ] Daily Generation Caps (Free: 10, Starter: 50, Pro: 200, Business: 500)
- [ ] Concurrency Limits (Free: 1, Paid: 2 parallele Generierungen)
- [ ] Rate Limiting auf API-Endpunkten (Redis-backed)
- [ ] Premium-Modelle erst ab Starter-Tier
- [ ] Top-Up-Limit pro Monat
## 9. Export
- [ ] PNG-Export aus Frame-Nodes
- [ ] ZIP-Export (mehrere Frames / Varianten)
## 10. Convex Schema (Gesamtübersicht)
- [ ] `Canvas` — id, name, ownerId, createdAt, updatedAt
- [ ] `Node` — id, canvasId, type, position, size, data, createdAt
- [ ] `Edge` — id, canvasId, sourceNodeId, targetNodeId
- [ ] `CreditBalance` — siehe Credit-System
- [ ] `CreditTransaction` — siehe Credit-System
- [ ] `Subscription` — siehe Credit-System
- [ ] `User` — id, email, name, avatarUrl, createdAt
## 11. Nicht Phase 1 (bewusst ausgeklammert)
- Echtzeit-Kollaboration
- Agent Nodes
- Video-Generierung
- Freepik Asset Browser
- Style Transfer / GFPGAN / rembg / Real-ESRGAN
- Team-Features (Workspaces, Rollen, Rechte)
- docker-compose.yml für Self-Hosting
- E2E-Testing
---
*Reihenfolge orientiert sich an den Abhängigkeiten aus dem Manifest v1.2:*
*Repos scaffolden → Convex Schema → Canvas → OpenRouter → Compare + Export → Auth + Credits → Lemon Squeezy*