Erstelle einen interaktiven Leuchten-Shop mit KI (Supabase + Hostinger)

Starte einen Leuchten-Shop, in dem Kunden über eine Messingschiene streichen, um die Lampen einzuschalten, und sie dann dimmen und kaufen. Live-Demo ansehen (öffnet in einem neuen Tab)

Roadmap & Ressourcen

Voraussetzungen

Claude Desktop

Claude Code läuft darin und passt deinen Shop an. Du brauchst einen kostenpflichtigen Claude-Plan.

Claude Desktop herunterladen

https://claude.ai/download

GitHub-Konto

Kostenlos. Hier liegt deine eigene Kopie von LUMIÈRE, und Hostinger stellt sie von hier aus bereit.

GitHub-Konto erstellen

https://github.com/signup

Hostinger-Hosting

Hier läuft dein Live-Shop. Einen Plan wählst du in Schritt 2.

Du brauchst weder Node.js noch einen Code-Editor oder ein Terminal. Hostinger baut und betreibt deinen Shop, und Claude übernimmt die Bearbeitung.

Hol dir den Starter für deinen Lichtshop

LUMIÈRE ansehen und kopieren

Probiere zuerst den fertigen Shop aus: Streich über die Messingschiene, um die Pendelleuchten einzuschalten, zieh sie und klicke auf eine, um ihren Dimmer zu öffnen. Die Demo hat keinen Admin-Bereich und keinen Checkout.

Die LUMIÈRE-Live-Demo öffnen

Die fertige Shop-Oberfläche, direkt in deinem Browser.

https://lumiere-lighting-store.vercel.app/

LUMIÈRE auf GitHub öffnen

https://github.com/salhiworks/lumiere-lighting-store

Klicke auf Use this template und dann auf Create a new repository Gib ihm einen Namen und wähle Public oder Private Klicke auf Create repository

Prüfe, dass es deine eigene Kopie ist

Die Adresse des Repositorys beginnt mit github.com/ und deinem eigenen Benutzernamen

Unter dem Namen steht bei GitHub, dass es aus salhiworks/lumiere-lighting-store erstellt wurde

Ab jetzt nutzt du nur noch dein eigenes Repository. Hostinger stellt es in Schritt 2 bereit, und Claude Desktop bearbeitet es in Schritt 3. Der ursprüngliche Starter bleibt unverändert.

Auf Hostinger bereitstellen

Node.js-Hosting holen

Erst veröffentlichen, dann anpassen: In wenigen Minuten ist dein Shop eine echte Website, und jede spätere Änderung erscheint dort.

Wähle einen Hostinger-Tarif

Nimm den Unlimited-Tarif oder einen Cloud-Tarif — LUMIÈRE wird als Node.js Web App bereitgestellt, nicht als statische Website.

Importiere dein Repository

Hostinger Websites Create site Web App

Wähle zum Start eine temporäre Domain — deine eigene verbindest du in Schritt 5 Wähle Import Git Repository Autorisiere GitHub und wähle deine eigene Kopie von LUMIÈRE, die du in Schritt 1 erstellt hast — nicht den ursprünglichen Starter

Konfigurieren und bereitstellen

Behalte die Next.js-Einstellungen, die Hostinger erkennt — Hostinger baut und startet den Shop selbst Wähle Node.js 22 Achte darauf, dass das Build-Skript build ist — niemals build:demo, das die gesperrte Demo baut

Bevor du deployst, füge die Adresse deiner Website als Umgebungsvariable hinzu: die temporäre Adresse, die du gerade gewählt hast. Deine endgültige Domain brauchst du noch nicht — Schritt 5 tauscht sie aus und deployt erneut.

NEXT_PUBLIC_SITE_URL

NEXT_PUBLIC_SITE_URL

Deine temporäre Adresse, beginnend mit https://

Mehr braucht der Shop nicht. Supabase und Stripe sind beide optional, lass sie also für später.

Klicke auf Deploy und warte, bis der Build fertig ist Öffne deine temporäre Adresse

Sieh deinen Shop live

Deine temporäre Adresse öffnet deinen LUMIÈRE-Shop

Ein Streichen über die Schiene schaltet die Lampen ein, und jedes Foto lädt

Der Shop und eine Produktseite öffnen sich

Dein Shop ist live. Ab jetzt wird jede Änderung, die du in den main-Branch deines Repositorys pushst, von Hostinger automatisch neu gebaut und veröffentlicht.

Mit Claude Desktop anpassen

Öffne dein Projekt in Claude Desktop

Claude Desktop Code Local

Starte eine Local-Sitzung in einem Ordner wie Dokumente, trage unten die Adresse deines Repositorys ein und sende:

Deine Kopie klonen

Lädt dein eigenes LUMIÈRE-Repository in einen neuen Unterordner herunter und prüft, ob Claude es aktualisieren kann.

Clone {{REPOSITORY_URL}} into a NEW subfolder inside the folder I selected, named after the repository. Never clone directly into the selected folder and never overwrite existing files. If Git is missing, tell me exactly how to install it. Then check that you can push to this repository with git push --dry-run. If GitHub needs me to sign in, tell me exactly what to do, and never ask me to paste a password or token into the chat. When it is done, tell me which new folder to open in my next Claude Desktop Local session.

Die Adresse deines Repositorys

https://github.com/your-name/my-lighting-store

Deinen LUMIÈRE-Ordner öffnen

Starte eine neue Local-Sitzung Öffne den Ordner, den Claude gerade erstellt hat — den, in dem README.md liegt Wenn Claude Desktop fragt, vertraue dem Ordner

Claude ändert diese Kopie deines Shops und sendet die Änderungen an dein eigenes GitHub-Repository. Hostinger aktualisiert dann deine Live-Website.

Beschreib Claude deinen Shop

Füll aus, was du weißt — lass den Rest leer, dann behält Claude die Version von LUMIÈRE. Sende es anschließend in deiner LUMIÈRE-Sitzung:

Meinen Leuchten-Shop anpassen

Ändert Name, Produkte, Texte und Look und lässt die Lampenanimationen und Fotopaare genau so, wie sie sind.

This folder is my own copy of the LUMIÈRE lighting store. Before you change anything, read README.md, AGENTS.md, docs/ARCHITECTURE.md and docs/ASSETS.md. AGENTS.md matters: this version of Next.js differs from what you may know. Customize the store for my business. Store name: {{STORE_NAME}} What makes us different: {{STORE_STORY}} Visual identity: {{VISUAL_STYLE}} Products: {{PRODUCTS}} Photos: {{PHOTOS}} Where each change belongs: - Name, description and navigation: lib/site.ts and the wordmark in components/layout/wordmark.tsx - Products and collections: lib/catalog/demo-data.ts. Make the same changes in supabase/seed.sql, so a database I connect later starts with the same catalog. - Homepage and studio copy: components/home/ - Colours and fonts: app/globals.css and app/layout.tsx Keep these exactly as they are: - The Pendant Lamp Rail in components/ui/pendant-lamp-rail.tsx: brushing the rail to switch lamps on, dragging, the detail view with its dimmer, and every animation, timing and hit area - The paired photos: every product keeps one OFF and one ON photo of the same size, at /lamps/<product-id>-off.webp and /lamps/<product-id>-on.webp, following the rules in docs/ASSETS.md - The admin, checkout, Supabase migrations and environment variables - The dependencies: don't add new ones Prices are in cents, as the catalog already stores them ($240 = 24000). The store uses one currency, USD by default. First show me a short plan: every file you will change, and what changes in it. Wait for my approval. Then make the changes, and run npm install, npm run lint and npm run typecheck so the build can't break. Fix anything they report. Don't start a local server and don't push anything yet: I'll ask you to publish when I'm ready.

Shop-Name

Atelier Nord

Was macht dein Leuchtenstudio besonders?

Pendelleuchten aus Keramik und Messing in Kleinserie, handgefertigt in Lissabon und in ganz Europa versendet.

Visuelle Identität

Deine Lampen — eine pro Zeile: Name, Oberfläche, Preis

Keramikkuppel, Sand, $240 Messingkegel, Gebürstet, $310

Lampenfotos

Lies den Plan, bevor du ihn freigibst. Bitte Claude in derselben Sitzung um weitere Änderungen, bis sich der Shop nach dir anfühlt.

Eigene Lampenfotos verwenden

Ersetze die Demo-Fotos, bevor du verkaufst

Die 16 Demo-Lampenfotos stammen aus der Demo der ursprünglichen Komponente, und ihre Rechte sind nicht geprüft. Nutze für einen echten Shop Fotos, die dir gehören oder für die du eine Lizenz hast.

Jede Lampe braucht zwei Fotos: eines ausgeschaltet und eines eingeschaltet. Die Schiene schaltet eine Lampe ein, indem sie beide überblendet, deshalb müssen sie exakt übereinanderliegen:

Gleiche Kamera, Position und Größe — nur das Licht ändert sich

Transparenter Hintergrund, ohne eingebrannten Schatten

Das Kabel kommt mittig vom oberen Rand

Hochformat, dieselbe Leinwand für jedes Foto — die Demo nutzt 557 × 900 px

Ohne Supabase legst du jedes Paar in diesem Ordner deines Projekts ab, benannt nach dem Produkt — zum Beispiel dome-enamel-off.webp und dome-enamel-on.webp — und bittest Claude dann, sie zu verwenden und zu veröffentlichen. Mit Supabase lädst du die Paare stattdessen im Admin hoch, und er prüft sie für dich.

public/lamps/

Deine Änderungen veröffentlichen

Claude sendet deinen angepassten Shop an dein eigenes GitHub-Repository, und Hostinger baut daraus deine Live-Website neu. Wenn du mit den Änderungen zufrieden bist, sende:

Meine Änderungen veröffentlichen

Prüft den Shop, committet dann deine Änderungen und pusht sie in den main-Branch deines Repositorys.

Publish my customized store. 1. Make sure npm run lint, npm run typecheck and npm run build all pass, and fix anything that fails. 2. Make sure .env.local and any other secrets are not committed. 3. Commit all my changes with a clear message and push them to the main branch of my own GitHub repository. Never push to any other repository. If GitHub needs me to sign in, tell me exactly what to do. When it is done, tell me the commit you pushed.

Deine Änderungen live sehen

Warte ein paar Minuten, bis Hostinger deinen Shop neu gebaut hat Lade deine Live-Adresse neu Streich über die Schiene — jede Lampe leuchtet auf und ihr Kabel trifft die Schiene Klicke auf eine Lampe und bewege ihren Dimmer — nur das Licht ändert sich Öffne den Shop und eine Produktseite und leg eine Lampe in den Warenkorb

Nach ein paar Minuten hat sich nichts geändert? Öffne Settings & Redeploy in deiner Web App und stelle neu bereit. Sieht etwas falsch aus? Beschreibe es Claude in derselben Sitzung, bitte ihn, es zu beheben, ohne die Lampenschiene anzufassen, und veröffentliche dann erneut.

Vorschau auf deinem Computer? (Optional)

Das musst du nie tun. Wenn du Änderungen vor dem Veröffentlichen sehen möchtest, bitte Claude in deiner Sitzung: Installiere die Abhängigkeiten, starte den Entwicklungsserver mit npm run dev und nenne mir die lokale Adresse. Dafür brauchst du Node.js 22 oder neuer, und Claude sagt dir Bescheid, falls es fehlt. Dein Live-Shop hängt nie davon ab.

Supabase & Admin verbinden (optional)

Ein Supabase-Projekt erstellen

Dein Live-Shop funktioniert schon ohne Supabase — springe zu Schritt 5, wenn dir das reicht. Verbinde es, um Produkte, Fotos, Bestand und Bestellungen in deinem eigenen Admin unter /admin zu verwalten.

Supabase-Konto erstellen

https://supabase.link/r4gdwhi

Klicke auf New project — jede Region und der Free-Tarif passen Bewahre das Datenbankpasswort sicher auf Kopiere die Project ID, sobald das Projekt bereit ist

Supabase Project Settings General

Claude Zugriff auf dein Projekt geben

So kann Claude deine Datenbank für dich einrichten. In deiner LUMIÈRE-Sitzung in Claude Desktop:

Öffne in der Seitenleiste Customize, dann Connectors, und füge Supabase hinzu — oder klicke neben dem Prompt-Feld auf + und wähle Add connectors Klicke auf Connect und bestätige den Zugriff in deinem Browser, indem du die Organisation wählst, die dein Projekt enthält Starte eine neue Local-Sitzung im selben Ordner, damit Claude die Verbindung übernimmt

Du meldest dich im Browser über Supabase an — kein Schlüssel und kein Passwort gehört in einen Prompt. Die Verbindung kann alle Projekte der Organisation sehen, die du freigibst, deshalb beschränkt der nächste Prompt Claude auf dein LUMIÈRE-Projekt.

Du findest den Supabase-Connector nicht oder möchtest keinen verwenden? Überspringe den nächsten Prompt und nutze die manuelle Einrichtung am Ende von Schritt 4: dieselben drei SQL-Dateien, ohne Connector.

Lass Claude die Datenbank einrichten

LUMIÈRE auf Supabase einrichten

Claude wendet die Migrationen und Produkte des Starters an, prüft Sicherheit und Speicher und gibt dir dann die zwei öffentlichen Werte für Hostinger.

Connect this LUMIÈRE store to my Supabase project {{PROJECT_REF}}. Work only on that project and never touch any other. Read README.md ("Connect Supabase"), docs/SUPABASE.md and docs/ADMIN.md first, and follow them. Use only the SQL this project already has. Don't write new tables, policies or setup SQL, and don't change the store's code. How to reach Supabase: - Use the Supabase connection in this session if it is connected. - Otherwise, use the Supabase CLI if I'm signed in, with the commands in docs/SUPABASE.md. - If neither works, stop and tell me exactly what to do. Never ask me for a password, an access token or a Secret key. Tell me what each step does before you run it: 1. Apply supabase/migrations/20261101120000_catalog_and_admin.sql, then supabase/migrations/20261101150000_orders_checkout.sql, in that order. They create the tables, the Row Level Security policies and the lamp-photos storage bucket. 2. Run supabase/seed.sql to add the three collections and the eight pendants. 3. Verify the setup: Row Level Security is on for every table, the lamp-photos bucket exists, there are 8 products and 3 collections, and Supabase's security advisor shows no warnings. Fix nothing by hand: tell me what's wrong. 4. Read my Project URL and Publishable key from the project, and show them to me as NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, ready to copy into Hostinger. Never read, use or write the Secret key or service_role key, and don't create .env.local. Then stop and tell me to create my admin user in the Supabase Dashboard. When I give you my admin email, never my password, add that user to public.admin_users with the SQL in docs/ADMIN.md, check that the row exists, and tell me to sign in at /admin on my live store.

Deine Supabase Project ID

abcdefghijklmnopqrst

Claude fragt vor jeder Aktion — lies sie und erlaube sie dann. Claude hält an, wenn du an der Reihe bist.

Dein Admin-Konto erstellen

Supabase Authentication Users

Klicke auf Add user und dann auf Create new user Gib deine E-Mail und ein starkes Passwort ein Lass Auto Confirm User angehakt und erstelle den Benutzer Nenne Claude deine Admin-E-Mail — niemals dein Passwort

Supabase Authentication Sign In / Providers

Schalte Allow new users to sign up aus und speichere — der Shop hat keine Kundenkonten

Keine Supabase-Verbindung? Richte es von Hand ein

Öffne in deinem Supabase-Projekt den SQL Editor. Führe diese drei Dateien aus deinem LUMIÈRE-Ordner in dieser Reihenfolge aus. Öffne jede, kopiere alles, füge es in eine neue Abfrage ein und klicke auf Run. Jede lässt sich gefahrlos erneut ausführen.

supabase/migrations/20261101120000_catalog_and_admin.sql

supabase/migrations/20261101150000_orders_checkout.sql

supabase/seed.sql

Kopiere deine Project URL und den Publishable key aus Connect in Hostinger, wie im nächsten Schritt gezeigt. Nachdem du oben deinen Admin-Benutzer erstellt hast, trage unten deine E-Mail ein und führe dies im SQL Editor aus:

Mich zum Administrator machen

insert into public.admin_users (user_id) select id from auth.users where email = '{{ADMIN_EMAIL}}';

Deine Admin-E-Mail

you@example.com

Die Supabase-Variablen auf Hostinger hinzufügen

Dein Live-Shop liest Supabase über zwei öffentliche Werte. Öffne im Dashboard deiner Web App Environment Variables und füge hinzu:

NEXT_PUBLIC_SUPABASE_URL NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY

NEXT_PUBLIC_SUPABASE_URL

Supabase Project URL

NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY

Supabase Publishable key

Claude hat dir beide Werte gegeben. Du findest sie auch in Connect.

Öffne Connect

https://supabase.com/dashboard/project/_?showConnect=true

Nur öffentliche Werte

Füge hier niemals den Secret key oder den service_role key von Supabase hinzu. Alles, was mit NEXT_PUBLIC_ beginnt, ist im Browser sichtbar.

Speichere die Variablen — Hostinger baut deinen Shop damit neu Nicht neu gebaut? Stelle über Settings & Redeploy neu bereit Öffne /admin auf deiner Live-Adresse und melde dich mit deiner Admin-E-Mail an

Im Admin-Bereich fügst du Produkte hinzu und bearbeitest sie, lädst OFF/ON-Fotopaare hoch und verwaltest Bestand und Bestellungen. Jedes Speichern aktualisiert die Schiene, den Shop und die Produktseiten.

Domain verbinden & starten

Deine Domain verbinden

Hostinger Your Web App Connect domain

Gib deine Domain ein und folge den Schritten zur Verbindung Domain woanders registriert? Trag die DNS-Einträge, die Hostinger anzeigt, bei deinem Registrar ein Behalte alle bestehenden E-Mail-Einträge Warte, bis die Domain als verbunden angezeigt wird und SSL aktiv ist

Bis DNS-Änderungen überall ankommen, kann es einige Stunden dauern — bis zu 24 Stunden.

Eine eigene Domain mit deiner Website oder Web App verbinden

Die vollständige Anleitung, auch für Domains, die woanders registriert sind.

/video/connect-a-custom-domain-to-your-website-or-web-app

Zu deiner Domain wechseln und neu bereitstellen

Dein Shop baut seine Links, seine Sitemap und die sichere Admin-Anmeldung aus dieser einen Adresse. Öffne im Dashboard deiner Web App Environment Variables und ändere sie auf deine Domain:

NEXT_PUBLIC_SITE_URL

NEXT_PUBLIC_SITE_URL

Deine Domain, beginnend mit https://

Speichere die Variable Stelle über Settings & Redeploy neu bereit, damit die neue Adresse eingebaut wird Warte, bis der Build abgeschlossen ist

Deinen Live-Shop testen

Öffne deine Domain und prüfe:

Die Adresse beginnt mit https:// und das Schloss wird angezeigt

Ein Streichen über die Schiene schaltet die Lampen ein, und jedes Foto lädt

Der Shop und eine Produktseite öffnen sich, und eine Lampe landet im Warenkorb

Mit Supabase: Du kannst dich unter /admin anmelden

Eine erfundene Adresse wie /shop/no-such-lamp zeigt die Seite „Nicht gefunden“

Dein Lichtshop ist live auf deiner eigenen Domain. Um ihn später zu ändern, bearbeite Produkte im Admin — oder bitte Claude um Code-Änderungen und deren Veröffentlichung: Hostinger baut deinen Shop bei jedem Push auf main neu.