Lade dein Raumfoto hoch, wähle einen Look und kaufe den ganzen Raum mit einem Klick.
Translation pending
CommerceTypeScript · HTMLGitHub @bentus-codegodOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Ein sicherer Prototyp-Bausatz für dein KI-Interior-Produkt: Raumfoto hoch, Look wählen, gestalteten Raum sehen, den ganzen Look über Stripe kaufen. Er läuft sofort mit Platzhaltern — du steckst nur deine Keys rein. Das deckt Phase A–D deiner Schritt-für-Schritt-Anleitung ab. Der echte Betrieb mit Live-Zahlungen und vielen Personendaten ist Phase E — dazu unten mehr. Du brauchst Node.js (Version 20 oder neuer). Dann http://localhost:3000 öffnen. Ohne jeden Key läuft alles im Mock-Modus: Der Render ist ein Platzhalter, der komplette Ablauf ist trotzdem sichtbar.Read the full README ↗
Ein sicherer Prototyp-Bausatz für dein KI-Interior-Produkt: Raumfoto hoch, Look wählen, gestalteten Raum sehen, den ganzen Look über Stripe kaufen. Er läuft sofort mit Platzhaltern — du steckst nur deine Keys rein.
Das deckt Phase A–D deiner Schritt-für-Schritt-Anleitung ab. Der echte Betrieb mit Live-Zahlungen und vielen Personendaten ist Phase E — dazu unten mehr.
Du brauchst Node.js (Version 20 oder neuer).
npm install
cp .env.example .env.local # Werte eintragen (siehe unten)
npm run dev
Tests: npm test (Vitest) · Typen: npm run typecheck · beides: npm run check
Dann http://localhost:3000 öffnen. Ohne jeden Key läuft alles im Mock-Modus:
Der Render ist ein Platzhalter, der komplette Ablauf ist trotzdem sichtbar.
.env.local, nie im Code)| Variable | Wofür | Nötig? |
|---|---|---|
AI_PROVIDER | mock, comfyui, modelslab oder replicate | Standard mock |
COMFYUI_URL | eigene KI auf RunPod (siehe comfy/README.md) | nur bei comfyui |
MODELSLAB_API_KEY | echte Interior-Render-API | nur bei modelslab |
REPLICATE_API_TOKEN | alternatives Bildmodell | nur bei replicate |
STRIPE_SECRET_KEY | Checkout (Test-Modus, sk_test_…) | für echten Kauf-Flow |
STRIPE_WEBHOOK_SECRET | Stripe meldet bezahlte Bestellungen (whsec_…) | für Bestellstatus |
SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEY | Datenbank: Katalog, Bestellungen, Kosten-Protokoll | optional |
DAILY_AI_COST_CAP_EUR | harte Tages-Kostenbremse | Standard 5 |
LOGISTICS_SHARE | Budget-Anteil für Logistik (0–0,6) | Standard 0 |
UPSTASH_REDIS_REST_URL + _TOKEN | Rate-Limit über alle Server-Instanzen | optional |
ADMIN_TOKEN / CRON_SECRET | Produkt-Import (manuell / täglich) | für Import |
Ohne STRIPE_SECRET_KEY funktioniert alles außer dem Checkout-Button.
Ohne Supabase läuft alles mit data/catalog.json; Bestellungen und
Render-Kosten landen dann nur im Server-Log.
supabase/migrations/ in Namensreihenfolgesupabase/seed.sql — der Beispiel-Katalog (neu erzeugen mit
npm run seed:generate, wenn sich data/catalog.json ändert)SUPABASE_URL und SUPABASE_SERVICE_ROLE_KEY (Project Settings → API)
in .env.local bzw. bei Vercel eintragen.Ab dann kommen die Produkte aus der Tabelle products, jede Bestellung
landet in orders/order_items, und jeder Render in render_events.
Die Tagesübersicht für die Kostenrechnung: select * from render_costs_daily;
Alle Tabellen haben Row Level Security ohne Policies — nur der Server mit dem Service-Role-Key kommt heran, der Browser nie.
Feeds von Affiliate-Netzwerken, Händler-APIs und Lieferantenlisten werden über
/api/admin/import eingelesen, automatisch eingeordnet und täglich
aktualisiert. Anleitung mit Beispielen: docs/SCHNITTSTELLEN.md.
„Ganzen Look kaufen“ legt eine Bestellung mit Status pending an und fragt
bei Stripe die Lieferadresse (DE/AT/CH) ab. Ist die Zahlung durch, meldet
Stripe das an /api/stripe/webhook → Status paid, mit E-Mail und Adresse.
Einrichten: Stripe-Dashboard → Developers → Webhooks → Endpoint
https://DEINE-DOMAIN/api/stripe/webhook mit den Events
checkout.session.completed, checkout.session.async_payment_succeeded,
checkout.session.async_payment_failed, checkout.session.expired.
Lokal: stripe listen --forward-to localhost:3000/api/stripe/webhook.
app/page.tsx — der Wow-Flow (Upload → Raum & Look → Render → Shop the Look)components/CompareSlider.tsx — Vorher/Nachher-Schieberegler für das Ergebniscomponents/LookPreview.tsx + app/api/preview — Vorschau der Produkte eines Looks, bevor ein Foto da ist.claude/skills/ — geprüfte Design-Skills (Emil Kowalski, Taste), siehe docs/DESIGN-SKILLS-PRUEFUNG.mdlib/roomEdit.ts — Swipe, Tauschen und Kopplung (Sets, Material-Familien)lib/stylePrompt.ts — Freitext-Stil → Render-Promptlib/budget.ts — Aufteilung Budget in Einrichtung und Logistiklib/sources/ — Produkt-Import aus Feeds, Händler-APIs und Lieferantenlisten
(Mapping, automatische Einordnung, Bericht) → /api/admin/importlib/sourcing/container.ts — Container-/Frachtschätzung → /api/logistics/estimateapp/go/[sku] — Händler-Links mit Klick-Zählung; app/api/events — Swipe-Statistiklib/ai/measure.ts — Schnittstelle für automatische Raumvermessung (noch ohne Verfahren)docs/ — Schnittstellen, Konzept-Abgleich, Protokoll der Overnight-Sessionsapp/api/render — ruft das KI-Modell auf (serverseitig, geschützt)app/api/checkout — erzeugt die Stripe-Checkout-Session + Bestellungapp/api/stripe/webhook — Stripe meldet bezahlte/abgelaufene Bestellungenlib/ai/provider.ts — die Modell-Abstraktion (Modell wechselbar)lib/ai/renderRoom.ts — verbindet Render mit echten SKUslib/catalog.ts + data/catalog.json — Produkttypen, Looks, Beispiel-Katalog
(Möbel + Deko & Accessoires)lib/productRepo.ts — holt Produkte aus Supabase, sonst aus catalog.jsonlib/designBrain.ts — wählt Produkte nach Stil und Budget (Deko nur, wenn
sie noch ins Budget passt)lib/orders.ts — Bestellungen anlegen und Status setzenlib/renderLog.ts — Kosten-Protokoll pro Renderlib/imageResize.ts — verkleinert Fotos im Browser auf max. 1536 pxcomponents/Product3DViewer.tsx — 3D-Ansicht mit <model-viewer> (Modelle
in public/models/)Siehe DEPLOYMENT.md — bringt den Starter über GitHub + Vercel online und
richtet das zweigleisige Setup ein: eine stabile Live-Version (main) und ein
zweites Gleis (dev) mit eigener Preview-URL, an dem du gefahrlos weiterbaust.
lib/env.ts ist mit server-only geschützt —
der Build bricht ab, falls ein Key ins Frontend rutscht.AI_PROVIDER=replicate
und die Modell-Version in lib/ai/provider.ts.Dieser Bausatz bringt dich zu einem sauberen, sicheren Prototyp. Vor einem echten Launch mit Live-Zahlungen und vielen Personendaten gilt:
Ein vibe-gecodeter Prototyp zum Testen ist in Ordnung. Ein Produktivsystem mit echtem Geld und DSGVO-Daten ist kein Solo-Job.
supabase/ — Datenbank-Schema und Beispiel-Datenlib/fitCheck.ts + components/RoomMeasurements.tsx — optionale Raummaß-Eingabe
und Passform-Check („passt / knapp / passt nicht"). Richtwert gegen teure
Retouren, keine Garantie. AR/LiDAR-Messen kommt später in einer nativen App.lib/rateLimit.ts — Rate-Limit + Kosten-Caplib/validation.ts — Upload-Prüfunglib/env.ts — Secrets, nur serverseitig