Yapay Zekâ ile Etkileşimli Bir Aydınlatma Mağazası Kurun (Supabase + Hostinger)

Alışveriş yapanların lambaları yakmak için pirinç bir rayın üzerinde gezindiği, ardından ışığı kısıp satın aldığı bir aydınlatma mağazası açın. Canlı Demoyu Görüntüle (yeni sekmede açılır)

Yol Haritası ve Kaynaklar

Gereksinimler

Claude Desktop

Claude Code onun içinde çalışır ve mağazanızı özelleştirir. Ücretli bir Claude planı gerektirir.

Claude Desktop'ı İndirin

https://claude.ai/download

GitHub hesabı

Ücretsiz. LUMIÈRE'in size ait kopyası burada durur ve Hostinger onu buradan yayına alır.

GitHub Hesabı Oluşturun

https://github.com/signup

Hostinger barındırma

Canlı mağazanız burada çalışır. Planı 2. Adım'da seçersiniz.

Node.js'e, kod editörüne ya da terminale ihtiyacınız yok. Mağazanızı Hostinger derler ve çalıştırır, düzenlemeyi Claude yapar.

Aydınlatma Mağazası Başlangıç Paketinizi Alın

LUMIÈRE'i İnceleyin ve Kopyalayın

Önce bitmiş mağazayı deneyin: sarkıt lambaları yakmak için pirinç rayın üzerinde gezinin, onları sürükleyin ve dimmer'ını açmak için birine tıklayın. Demoda yönetim paneli ve ödeme yoktur.

LUMIÈRE Canlı Demosunu Açın

Bitmiş vitrin, tarayıcınızda çalışır halde.

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

LUMIÈRE'i GitHub'da Açın

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

Use this template'e, ardından Create a new repository'ye tıklayın Bir ad verin ve Public ya da Private seçin Create repository'ye tıklayın

Kopyanın Size Ait Olduğunu Doğrulayın

Deponun adresi github.com/ ile ve sizin kendi kullanıcı adınızla başlar

Adının altında GitHub, salhiworks/lumiere-lighting-store şablonundan oluşturulduğunu söyler

Bundan sonra yalnızca kendi deponuzu kullanırsınız. Hostinger onu 2. Adım'da yayına alır, Claude Desktop ise 3. Adım'da düzenler. Orijinal başlangıç paketi asla değişmez.

Hostinger'da yayına alın

Node.js Hosting Edinin

Önce yayınlayın, sonra özelleştirin: birkaç dakika içinde mağazanız gerçek bir web sitesi olur ve sonraki her değişiklik orada görünür.

Bir Hostinger Paketi Seçin

Unlimited paketini ya da bir Cloud paketini kullanın — LUMIÈRE statik bir web sitesi olarak değil, Node.js Web App olarak yayına alınır.

Deponuzu İçe Aktarın

Hostinger Websites Create site Web App

Başlamak için geçici bir alan adı seçin — kendi alan adınızı Adım 5'te bağlarsınız Import Git Repository'yi seçin GitHub'a yetki verin ve 1. Adım'da oluşturduğunuz kendi LUMIÈRE kopyanızı seçin — orijinal başlangıç paketini değil

Yapılandırın ve Dağıtın

Hostinger'ın algıladığı Next.js ayarlarını koruyun — mağazayı kendisi build eder ve başlatır Node.js 22'yi seçin Build betiğinin build olduğundan emin olun — asla build:demo değil, o kilitli demoyu build eder

Yayına almadan önce sitenizin adresini ortam değişkeni olarak ekleyin: az önce seçtiğiniz geçici adres. Nihai alan adınıza henüz ihtiyacınız yok — 5. Adım onu değiştirir ve yeniden yayına alır.

NEXT_PUBLIC_SITE_URL

NEXT_PUBLIC_SITE_URL

https:// ile başlayan geçici adresiniz

Mağazanın ihtiyacı olan bu kadar. Supabase ve Stripe ikisi de isteğe bağlıdır, bunları sonraya bırakın.

Deploy'a tıklayın ve build'in bitmesini bekleyin Geçici adresinizi açın

Mağazanızı Canlı Görün

Geçici adresiniz LUMIÈRE mağazanızı açar

Rayın üzerinde gezinmek lambaları yakıyor ve her fotoğraf yükleniyor

Mağaza ve bir ürün sayfası açılıyor

Mağazanız canlı. Bundan sonra deponuzun main branch'ine gönderilen her değişiklik Hostinger tarafından otomatik olarak yeniden derlenir ve yayınlanır.

Claude Desktop ile Özelleştirin

Projenizi Claude Desktop'ta Açın

Claude Desktop Code Local

Documents gibi bir klasörde bir Local oturumu başlatın, deponuzun adresini aşağıya ekleyin ve gönderin:

Kopyanızı Klonlayın

Kendi LUMIÈRE deponuzu yeni bir alt klasöre indirir ve Claude'un onu güncelleyebildiğini kontrol eder.

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.

Deponuzun adresi

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

LUMIÈRE Klasörünüzü Açın

Yeni bir Local oturumu başlatın Claude'un az önce oluşturduğu klasörü açın — içinde README.md olanı Claude Desktop sorarsa klasöre güvenin

Claude mağazanızın bu kopyasını değiştirir ve değişiklikleri kendi GitHub deponuza gönderir. Ardından Hostinger canlı web sitenizi günceller.

Mağazanızı Claude'a Anlatın

Bildiklerinizi doldurun — gerisini boş bırakın, Claude LUMIÈRE'in sürümünü korur. Ardından LUMIÈRE oturumunuzda gönderin:

Aydınlatma Mağazamı Özelleştir

Adı, ürünleri, metinleri ve görünümü değiştirir; lamba animasyonlarını ve fotoğraf çiftlerini olduğu gibi korur.

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.

Mağaza adı

Atelier Nord

Aydınlatma stüdyonuzu farklı kılan ne?

Lizbon'da el yapımı, Avrupa'nın her yerine gönderilen küçük seri seramik ve pirinç sarkıt lambalar.

Görsel kimlik

Lambalarınız — her satıra bir tane: ad, yüzey, fiyat

Seramik kubbe, Kum, $240 Pirinç koni, Fırçalanmış, $310

Lamba fotoğrafları

Onaylamadan önce planı okuyun. Mağaza size ait gibi hissettirene kadar aynı oturumda Claude'dan başka değişiklikler isteyin.

Kendi Lamba Fotoğraflarınızı Kullanın

Satışa başlamadan önce demo fotoğraflarını değiştirin

16 demo lamba fotoğrafı orijinal bileşenin demosundan gelir ve hakları doğrulanmamıştır. Gerçek bir mağaza için size ait ya da lisansını aldığınız fotoğrafları kullanın.

Her lambanın iki fotoğrafa ihtiyacı vardır: biri sönük, biri yanık. Ray bir lambayı bu iki fotoğraf arasında geçiş yaparak yakar, bu yüzden tam olarak üst üste oturmaları gerekir:

Aynı kamera, konum ve ölçek — yalnızca ışık değişir

Şeffaf arka plan, fotoğrafa işlenmiş gölge olmadan

Kablo üst kenardan, ortadan çıkar

Dikey, her fotoğraf için aynı tuval — demo 557 × 900 px kullanır

Supabase olmadan, her çifti projenizdeki bu klasöre ürünün adıyla koyun — örneğin dome-enamel-off.webp ve dome-enamel-on.webp — ardından Claude'dan bunları kullanmasını ve yayınlamasını isteyin. Supabase ile çiftleri admin panelinden yüklersiniz ve panel bunları sizin için kontrol eder.

public/lamps/

Değişikliklerinizi Yayınlayın

Claude özelleştirilmiş mağazanızı kendi GitHub deponuza gönderir ve Hostinger canlı web sitenizi oradan yeniden derler. Değişikliklerden memnun olduğunuzda şunu gönderin:

Değişikliklerimi Yayınla

Mağazayı kontrol eder, ardından değişikliklerinizi commit'ler ve deponuzun main branch'ine gönderir.

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.

Değişikliklerinizi Canlı Görün

Hostinger'ın mağazanızı yeniden derlemesi için birkaç dakika bekleyin Canlı adresinizi yeniden yükleyin Rayın üzerinde gezinin — her lamba yanar ve kablosu raya değer Bir lambaya tıklayın ve dimmer'ını hareket ettirin — ışık dışında hiçbir şey değişmez Mağazayı ve bir ürün sayfasını açın, sepete bir lamba ekleyin

Birkaç dakika sonra hâlâ bir şey değişmedi mi? Web App'inizde Settings & Redeploy bölümünü açın ve yeniden dağıtın (redeploy). Bir şey yanlış mı görünüyor? Aynı oturumda Claude'a anlatın, lamba rayına dokunmadan düzeltmesini isteyin, ardından tekrar yayınlayın.

Bilgisayarınızda Önizlemek mi İstiyorsunuz? (İsteğe Bağlı)

Buna hiç gerek yok. Değişiklikleri yayınlamadan önce görmek isterseniz oturumunuzda Claude'dan şunu isteyin: bağımlılıkları kur, npm run dev ile geliştirme sunucusunu başlat ve bana yerel adresi ver. Node.js 22 veya daha yenisi gerekir; eksikse Claude size söyler. Canlı mağazanız buna asla bağlı değildir.

Supabase ve Admin'i Bağlayın (İsteğe Bağlı)

Bir Supabase Projesi Oluşturun

Canlı mağazanız Supabase olmadan da çalışır — ihtiyacınız bundan ibaretse 5. Adım'a geçin. Ürünleri, fotoğrafları, stoğu ve siparişleri /admin adresindeki kendi admin panelinizde yönetmek için bağlayın.

Supabase Hesabı Oluşturun

https://supabase.link/r4gdwhi

New project'e tıklayın — herhangi bir bölge ve Free paketi uygundur Veritabanı şifresini güvenli bir yere kaydedin Proje hazır olduğunda Project ID'sini kopyalayın

Supabase Project Settings General

Claude'un Projenize Erişmesine İzin Verin

Bu, Claude'un veritabanınızı sizin için kurmasını sağlar. Claude Desktop'taki LUMIÈRE oturumunuzda:

Kenar çubuğunda Customize'ı, ardından Connectors'ı açın ve Supabase'i ekleyin — veya prompt kutusunun yanındaki + simgesine tıklayıp Add connectors'ı seçin Connect'e tıklayın ve tarayıcınızda erişimi onaylayın; projenizin bulunduğu organizasyonu seçin Claude bağlantıyı alsın diye aynı klasörde yeni bir Local oturumu başlatın

Supabase üzerinden tarayıcınızda oturum açarsınız — prompt'a hiçbir anahtar veya parola girmezsiniz. Bağlantı, onayladığınız organizasyondaki tüm projeleri görebilir; bu yüzden bir sonraki prompt Claude'u yalnızca LUMIÈRE projenizle sınırlar.

Supabase bağlayıcısını bulamıyor musunuz ya da kullanmak mı istemiyorsunuz? Sonraki prompt'u atlayın ve 4. Adım'ın sonundaki manuel kurulumu kullanın: aynı üç SQL dosyası, bağlayıcı gerekmez.

Veritabanını Claude'a Kurdurun

LUMIÈRE'i Supabase'de Kur

Claude başlangıç paketinin migration'larını ve ürünlerini uygular, güvenliği ve depolamayı kontrol eder, ardından size Hostinger için iki herkese açık değeri verir.

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.

Supabase Project ID'niz

abcdefghijklmnopqrst

Claude her işlemden önce sorar — okuyun, ardından izin verin. Sıra size geldiğinde durur.

Yönetici Hesabınızı Oluşturun

Supabase Authentication Users

Add user'a, ardından Create new user'a tıklayın E-postanızı ve güçlü bir şifre girin Auto Confirm User işaretli kalsın ve kullanıcıyı oluşturun Claude'a yönetici e-postanızı söyleyin — asla şifrenizi değil

Supabase Authentication Sign In / Providers

Allow new users to sign up'ı kapatın ve kaydedin — mağazada müşteri hesabı yoktur

Supabase Bağlantısı Yok mu? Elle Kurun

Supabase projenizde SQL Editor'ı açın. LUMIÈRE klasörünüzdeki bu üç dosyayı bu sırayla çalıştırın. Her birini açın, tamamını kopyalayın, yeni bir sorguya yapıştırın ve Run'a tıklayın. Her biri güvenle yeniden çalıştırılabilir.

supabase/migrations/20261101120000_catalog_and_admin.sql

supabase/migrations/20261101150000_orders_checkout.sql

supabase/seed.sql

Project URL ve Publishable key değerlerinizi Connect'ten kopyalayıp bir sonraki adımda gösterildiği gibi Hostinger'a yapıştırın. Yukarıda admin kullanıcınızı oluşturduktan sonra e-postanızı aşağıya ekleyin ve bunu SQL Editor'da çalıştırın:

Beni Yönetici Yap

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

Yönetici e-postanız

you@example.com

Supabase Değişkenlerini Hostinger'a Ekleyin

Canlı mağazanız Supabase'e iki herkese açık değerle erişir. Web App'inizin panelinde Environment Variables bölümünü açın ve şunları ekleyin:

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 size iki değeri de verdi. Bunlar Connect içinde de bulunur.

Connect'i açın

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

Yalnızca herkese açık değerler

Supabase Secret key veya service_role anahtarını buraya asla eklemeyin. NEXT_PUBLIC_ ile başlayan her şey tarayıcıda görünür.

Değişkenleri kaydedin — Hostinger mağazanızı bunlarla yeniden derler Yeniden derlenmedi mi? Settings & Redeploy üzerinden yeniden dağıtın (redeploy) Canlı adresinizde /admin sayfasını açın ve admin e-postanızla giriş yapın

Yönetim panelinde ürün ekler ve düzenler, OFF/ON fotoğraf çiftleri yükler, stoku ve siparişleri yönetirsiniz. Her kayıt rayı, mağazayı ve ürün sayfalarını günceller.

Alan Adınızı Bağlayın ve Yayına Çıkın

Alan Adınızı Bağlayın

Hostinger Your Web App Connect domain

Alan adınızı girin ve bağlantı adımlarını izleyin Alan adınız başka bir yerde mi kayıtlı? Hostinger'ın gösterdiği DNS kayıtlarını kayıt şirketinize ekleyin Mevcut e-posta kayıtlarını koruyun Alan adı bağlı olarak görünene ve SSL etkin olana kadar bekleyin

DNS değişikliklerinin herkese ulaşması birkaç saat sürebilir — en fazla 24 saat.

Web Sitenize veya Web App'inize Özel Alan Adı Bağlayın

Başka yerde kayıtlı alan adları da dahil, adım adım tam anlatım.

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

Alan Adınıza Geçin ve Yeniden Dağıtın

Mağazanız bağlantılarını, site haritasını ve yönetim panelinin güvenli girişini bu tek adresten oluşturur. Web App'inizin panelinde Environment Variables'ı açın ve bunu alan adınızla değiştirin:

NEXT_PUBLIC_SITE_URL

NEXT_PUBLIC_SITE_URL

https:// ile başlayan alan adınız

Değişkeni kaydedin Yeni adresin build'e eklenmesi için Settings & Redeploy'dan yeniden dağıtın Build'in bitmesini bekleyin

Canlı Mağazanızı Test Edin

Alan adınızı açın ve kontrol edin:

Adres https:// ile başlıyor ve kilit simgesi görünüyor

Rayın üzerinde gezinmek lambaları yakıyor ve her fotoğraf yükleniyor

Mağaza ve bir ürün sayfası açılır, bir lamba sepete eklenir

Supabase ile: /admin adresinden giriş yapabiliyorsunuz

/shop/no-such-lamp gibi uydurma bir adres, bulunamadı sayfasını gösteriyor

Aydınlatma mağazanız kendi alan adınızda canlı. Sonradan değiştirmek için ürünleri admin panelinden düzenleyin — veya Claude'dan kod değişiklikleri yapmasını ve bunları yayınlamasını isteyin: Hostinger, main'e yapılan her push'ta mağazanızı yeniden derler.