Ürün Güncellemeleri
Değişiklik Günlüğü
Ürünümüzdeki tüm yeni özellikler, iyileştirmeler ve düzeltmeleri buradan takip edebilirsiniz.
YakındaPlanlanan Güncellemeler
Gelecek Planlarımız
Sıradaki geliştirmeleri changelog akışının bir parçası olarak burada paylaşıyoruz.
Üzerinde Çalıştıklarımız
Bir sonraki sürümlerde görmeyi planladığımız iyileştirmeler.
- 👤PlanlandıKullanıcı profil sayfasının iyileştirilmesiHesap Deneyimi
- 🤖PlanlandıAI modellerinin geliştirilmesiModel Kalitesi
- ☁️PlanlandıCloud entegrasyonlarıAltyapı
- 🎥PlanlandıVideo oluşturmaYeni Medya
- 🎭PlanlandıYüz değiştirmeDeneysel Özellik
- ⚡PlanlandıEdit sayfası optimizasyonlarıPerformans
Ana Sayfa Best Practice Optimizasyonları
Performans
galleryImagesdizisi her render'da yeniden oluşturuluyordu;useMemoile stabilize edildi.window.location.hrefyerine Next.jsuseRouter().push()kullanılmaya başlandı (SPA navigasyonu korunuyor, tam sayfa yenileme engellendi).
UX / Animasyon
- FAQ accordion'una
AnimatePresencewrapper eklendi; kapanma animasyonu (exit) artık doğru çalışıyor. - Gallery
keyprop'u\${src}-${index}\yerine sadeceindexolarak düzeltildi (aynı src'nin tekrar etmesi nedeniyle oluşan key çakışması giderildi).
i18n
lang === 'tr' ? '...' : '...'şeklindeki tüm 40+ inline stringt()çağrısına dönüştürüldü.tr/home.jsonveen/home.jsondosyalarına eksik key'ler eklendi:hero.trust_*,hero.before/after_alt/label,how_steps.step[1-5]_label/badgeve ilgili tüm alt key'ler.
Etkilenen Dosyalar
- Güncellendi:
src/app/[lang]/page.tsx - Güncellendi:
src/languages/tr/home.json - Güncellendi:
src/languages/en/home.json
Mobil Header ve Menü Performans/Tasarım Optimizasyonları
Performans
Headeriçindeki storage/user-logout listener'ları tek sefer ([]) çalışacak şekilde refactor edildi;useAppStore.getState()ile stable store erişimi sağlandı. Her user güncellemesinde listener re-register olmuyor.refreshTokenBalancecallback'i stable hale getirildi (bağımlılıklar kaldırıldı, içeridegetStatekullanılıyor). Gereksiz re-render ve effect retrigger önlendi.- Sticky header mobilde
backdrop-blurkaldırıldı (md:breakpoint altında aktif); düşük-orta seviye Android cihazlarda kaydırma jank'i giderildi. - Mobil menü içindeki Dashboard CTA'da pahalı ikinci gradient + blur katmanı kaldırıldı; tek gradient +
shadow-mdile sadeleştirildi.
UX / A11y
- Mobil menü artık DOM'da kalıcı (
opacity + translate-yile 200ms animasyon,motion-reducedesteğiyle). Açılış/kapanış akıcılaştı. - Backdrop overlay eklendi; dışarı tıklayarak kapatma aktif.
- Body scroll-lock: menü açıkken arka plan kaymıyor (iOS bounce sorunu çözüldü),
overscroll-containmenü içi için. - Klavye erişilebilirliği:
ESCile kapanma,role="dialog" aria-modal aria-hiddenve buton tarafındaaria-controls="mobile-menu" aria-expanded. - Rota değişiminde (
pathname) menü otomatik kapanıyor. - Uzun menü için
max-h-[calc(100dvh-4rem)] overflow-y-auto— notch/klavye uyumlu. - Dokunmatik hedefler Dashboard linkinde
min-h-[44px]; hamburger butonu 9×9 → 10×10.
Etkilenen Dosyalar
- Güncellendi:
src/components/header/header.tsx - Güncellendi:
src/components/header/mobile-menu.tsx
Hero Section Premium Çekim Görseli Güncellendi
Görsel Güncelleme
- Ana sayfa hero bölümündeki "Premium Çekim" ön kartı (After / AI sonucu),
edited-image.pngile değiştirildi.
Etkilenen Dosyalar
- Güncellendi:
src/app/[lang]/page.tsx
Cookie Banner UI Fixes
UX İyileştirmeleri
- Ana çerez banner'ı (Cookie Banner) açıldığında arkada yanlışlıkla beliren bulanıklık (backdrop blur) efekti kaldırıldı. Böylece kullanıcılar çerez banner'ı açıkken siteyi incelemeye devam edebilirler.
Cookie Settings Modal UI Fixes
UX İyileştirmeleri
- Cookie settings modal'ine backdrop blur overlay eklendi.
- Mobil cihazlar için modal'in responsivitesi iyileştirildi.
- Küçük ekranlarda modal yüksekliği ve kaydırma sorunları düzeltildi.
- Arkaplan'a tıklayarak kapanma özelliği eklendi.
Dashboard Button Link and Design Update
UX İyileştirmeleri
- Header'daki Dashboard butonunun yönlendirmesi
/profileyerine/editolarak güncellendi. - Dashboard butonunun tasarımı stüdyo konseptine uygun, daha modern ve dinamik bir hale getirildi.
- Mobil menüye de Dashboard butonu eklendi.
Etkilenen Dosyalar
- Güncellendi:
src/components/header/header.tsx - Güncellendi:
src/components/header/mobile-menu.tsx
Cloudflare Pages Wrangler Validation Düzeltmesi
Düzeltme
- Cloudflare Pages deploy validation sürecini bozan
wrangler.tomliçindeki desteklenmeyen[build]bloğu kaldırıldı. - Pages build komutunun
wrangler.tomlyerine Cloudflare Dashboard build settings üzerinden yönetilmesi gerektiği dokümante edildi.
Beklenen Sonuç
- Cloudflare Pages artık
Configuration file for Pages projects does not support "build"hatasıyla erken aşamada durmayacak. wrangler.tomlsadece Pages uyumlu metadata (pages_build_output_dir, compatibility ayarları) içerecek.
Etkilenen Dosyalar
- Güncellendi:
wrangler.toml - Güncellendi:
CLOUDFLARE_DEPLOYMENT.md
Cloudflare Pages Build Düzeltmesi (`/api/proxy-image`)
Düzeltme
- Cloudflare Pages build sürecini düşüren
src/app/api/proxy-image/route.tsroute'unaexport const runtime = 'edge'eklendi. next-on-pagesuyarısını azaltmak ve Pages konfigürasyonunu netleştirmek içinwrangler.tomliçinepages_build_output_dir = ".vercel/output/static"tanımı eklendi.
Beklenen Sonuç
- Cloudflare Pages build'i artık
/api/proxy-imageroute'unun runtime eksikliği nedeniyle durmayacak. - Yeni frontend bundle deploy edilebildiği için AI Edit polling düzeltmeleri canlı ortama taşınabilecek.
Etkilenen Dosyalar
- Güncellendi:
src/app/api/proxy-image/route.ts - Güncellendi:
wrangler.toml
AI Edit Polling Lifecycle ve Concurrency Düzeltmesi
Düzeltme
src/app/[lang]/edit/page.tsxiçindeki AI Edit async polling akışı component-level ref yapısına taşındı.- Aktif AI Edit job takibi eklendi; eski/stale polling sonuçlarının yeni state'i ezmesi engellendi.
- Interval cleanup mantığı unmount ve model değişimi sırasında merkezi olarak uygulanacak şekilde düzenlendi.
isEditingkilidi ve loading overlay'i polling tamamlanana kadar korunacak hale getirildi.
Optimizasyon
- Polling state'i local closure değişkenleri yerine
useRefile yönetildiği için yeniden render dışı stabil takip sağlandı. - Gereksiz paralel poll istekleri
aiEditPollInFlightRefile önlendi. - Yeni AI Edit yaşam döngüsü yardımcıları ile stop/finalize davranışı tek kaynaktan yönetildi.
Beklenen Sonuç
- Kullanıcı aynı anda birden fazla AI Edit job'ı başlatamaz.
- Uzun süren async edit işlemlerinde overlay erken kapanmaz.
- Sayfa unmount olduğunda veya model değiştiğinde açık polling interval'i temizlenir.
Etkilenen Dosyalar
- Güncellendi:
src/app/[lang]/edit/page.tsx
Nano Banana API Env Kontrolü Düzeltmesi
Düzeltme
src/app/api/nano-banana/route.tsiçinde try-on yolunda yanlış env kontrolü (GOOGLE_VISION_API_KEY) yerine doğru değişkene (GOOGLE_GEMINI_API_KEY) geçildi. Cloudflare Pages ortamında Vision anahtarı olmadığı için 500 hatası dönebiliyordu; düzeltildi.
Not
- Cloudflare Pages ortam değişkenlerinde
GOOGLE_GEMINI_API_KEYtanımlı olmalıdır.
Etkilenen Dosyalar
- Güncellendi:
src/app/api/nano-banana/route.ts
Kalan Majör Yükseltmeler Finalize Edildi
Güncellemeler
zod@^4.1.12,zustand@^5.0.8,tailwind-merge@^3.3.1,@runwayml/sdk@^3.4.0
Sonuç
npm install,npm run type-check,npm run buildbaşarılı.- Kod tabanı Next 15/React 19 ile ve yeni majörlerle uyumlu şekilde derleniyor.
Etkilenen Dosyalar
- Güncellendi:
package.json
Next 15/React 19 Geçişi ve Toolchain Güncellemesi
Yükseltmeler
- Next.js
next@^15.5.6, Reactreact@^19.2.0,react-dom@^19.2.0 - TypeScript
typescript@^5.7.2,tsconfig.jsontarget: ES2020,lib: [dom, dom.iterable, ES2020] - ESLint
eslint@^9.14.0,eslint-config-next@^15.5.6 - Tip paketleri:
@types/react@^19.0.8,@types/react-dom@^19.0.3,@types/node@^22.9.0 - Diğer:
framer-motion@^12.23.24,@tanstack/react-query@^5.90.5,lucide-react@^0.546.0,sharp@^0.34.4,replicate@^1.3.0,postcss@^8.4.49,tailwindcss@^3.4.14,@tailwindcss/typography@^0.5.15,@google/genai@^1.25.0,@hookform/resolvers@^5.2.2
Düzeltme
src/app/api/upload/route.tsiçinde Uint8Array spread kullanımından kaynaklıTS2802hatası giderildi. Base64 dönüşümü, Edge uyumlu döngü ile gerçekleştirildi.
Sonuç
npm installsorunsuz tamamlandı,npm run type-checkvenpm run buildbaşarılı. Lint uyarıları gözlendi; kırıcı lint hatası yok.
Etkilenen Dosyalar
- Güncellendi:
package.json,tsconfig.json,src/app/api/upload/route.ts
Auth Sayfaları ve Mock Akışlar Eklendi
Yeni Özellikler
/loginve/registersayfaları eklendi (src/app/(auth)/login/page.tsx,src/app/(auth)/register/page.tsx).(auth)özel layout oluşturuldu (src/app/(auth)/layout.tsx).- Ortak auth bileşenleri:
AuthCard,FormField,SubmitButton,GoogleButton(inline SVG) (src/components/auth/*). - Google ile giriş butonu eklendi (mock akış) ve her iki sayfada gösteriliyor.
Teknik Ayrıntılar
- Form doğrulama için
zodvereact-hook-formentegre edildi; resolver olarak@hookform/resolverskullanıldı. - Şifre politikası: En az 8 karakter, en az bir büyük, bir küçük harf ve bir sayı (regex:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,}$). - Mock API uçları eklendi:
POST /api/auth/login→src/app/api/auth/login/route.tsPOST /api/auth/register→src/app/api/auth/register/route.tsGET /api/auth/google/mock→src/app/api/auth/google/mock/route.ts(redirect ile sahte login)- Bağımlılıklar eklendi:
react-hook-form,zod,@hookform/resolvers(package.json).
Etkilenen/Yeni Dosyalar
- Yeni:
src/app/(auth)/layout.tsx - Yeni:
src/app/(auth)/login/page.tsx - Yeni:
src/app/(auth)/register/page.tsx - Yeni:
src/components/auth/auth-card.tsx,src/components/auth/form-field.tsx,src/components/auth/submit-button.tsx,src/components/auth/google-button.tsx - Yeni:
src/app/api/auth/login/route.ts,src/app/api/auth/register/route.ts,src/app/api/auth/google/mock/route.ts - Güncellendi:
package.json(bağımlılıklar)
Beklenen Sonuç
- Kullanıcılar e-posta/şifre veya Google (mock) ile akışları deneyebilir.
- Backend kimlik doğrulama entegrasyonu eklendiğinde UI değişmeden gerçek akışa geçilebilir.
Header Logo Ana Sayfa Yönlendirmesi
Yeni Özellik
- Header'daki logo artık tıklanabilir ve ana sayfaya yönlendiriyor
Linkbileşeni ile/rotasına yönlendirme eklendi- Hover efekti ile kullanıcı deneyimi iyileştirildi
Teknik Ayrıntılar
next/linkimport'u eklendi- Logo kısmı
Linkbileşeni ile sarıldı hover:opacity-80 transition-opacityCSS sınıfları ile görsel geri bildirim
Etkilenen Dosyalar
- Güncellendi:
src/components/conditional-header.tsx
Beklenen Sonuç
- Kullanıcılar header logosuna tıklayarak kolayca ana sayfaya dönebilir
- Modern web standartlarına uygun navigasyon deneyimi
Single/Combo Sekme Ayrışması ve Multi-Garment Alt Giyim Düzeltmesi
Düzeltme
- Combo akışında gönderilen alt giyim (bottom) parçasının modele uygulanmaması problemi giderildi.
- Çözüm: Çoklu kıyafet akışında (
upper + lower)inlineDatabloklarının önüne açıklayıcı metinler eklendi ve sırayla hangi görselin neyi temsil ettiği netleştirildi (MODEL → UPPER → LOWER). Böylece model, hangi görselin üst ve alt parça olduğunu karıştırmadan uygular.
Teknik Ayrıntılar
src/app/api/nano-banana/route.tsiçinde multi-garment içerikleri şu sırayla gönderilir: 1)text: MODEL PHOTO açıklaması 2)inlineData:modelImage3)text: UPPER GARMENT açıklaması 4)inlineData:clothingImage(upper) 5)text: LOWER GARMENT açıklaması 6)inlineData:additionalClothing[0].imageData(lower)
UX/State Ayrışması
- Single sekmesinde yüklenen tek parça kıyafetlerin listesi artık yalnızca
singlesekmesinde görünür;combosekmesine geçinceselectedUploadedItemsıfırlanır. - Sol alttaki "AI ile Dene" butonu aktif sekmeye göre doğru akışı tetikler:
single: Seçili tek parça varsa çalışır.combo: Üst ve alt giyim birlikte varsa çalışır.
Etkilenen Dosyalar
- Güncellendi:
src/components/edit/clothing-panel.tsx - Güncellendi:
src/app/api/nano-banana/route.ts
Beklenen Sonuç
- Single yüklemeleri combo sekmesinde görünmez ve iki akış birbirini etkilemez.
- Çoklu kıyafet denemelerinde alt parça (bottom) model üzerinde doğru şekilde uygulanır.
InsightFace (Replicate) Face Swap Entegrasyonu
Yeni Özellik
- Yeni API ucu:
src/app/api/face-swap-insight/route.ts→ Replicate üzerindeki InSwapper modeline proxy. AiEditPanelFace Swap akışı önce bu ucu dener; başarısız olursa Nano Banana faceswap fallback’ine geçer.
Teknik Ayrıntılar
- Giriş:
{ userImage: base64, targetImage: base64 } - Çıkış:
{ success: true, imageUrl: dataURL } - Güvenlik:
REPLICATE_API_TOKENortam değişkeni gerekli. İsteğe bağlıREPLICATE_MODEL_VERSIONile model versiyonu override edilebilir. - Doğallık için client tarafında hafif renk/aydınlık harmonizasyonu uygulanır.
Etkilenen/Yeni Dosyalar
- Yeni:
src/app/api/face-swap-insight/route.ts - Güncellendi:
src/components/edit/ai-edit-panel.tsx(önce InsightFace, sonra Nano Banana fallback)
Face Swap: Ardışık Yüklemelerde Model Güncelleme Düzeltmesi
Düzeltme
- İkinci ve sonraki Face Swap yüklemelerinde model görselinin değişmemesi sorununu giderdik.
- Çözüm: Data URL sonucu her seferinde Blob'a çevrilip yeni bir
blob:Object URL oluşturuluyor; önceki blob URLURL.revokeObjectURL(...)ile serbest bırakılıyor. Böylece React state değişimi garanti ediliyor.
Etkilenen Dosya
- Güncellendi:
src/app/edit/page.tsx(onFaceSwapAppliediçinde blob URL oluşturma ve revoke mantığı)
Face Swap Prompt Güçlendirmesi ve Akış Güncellemesi
Teknik Güncelleme
/api/nano-banana/route.tsiçinde Face Swap prompt güçlendirildi:- Saç dahil tüm baş bölgesi transferi (FACE AND HAIR) vurgulandı.
- Sahne/ışık-tonu uyumu ve kenar/hairline blend talimatları eklendi.
- Düz (frontal) yüz yönelimi zorunluluğu eklendi.
AiEditPanelFace Swap Apply akışı/api/face-swapyerineoperationType='faceswap'ile/api/nano-bananaüzerinden çalışacak şekilde güncellendi (selfie + target model base64 JSON).
Etkilenen Dosyalar
- Güncellendi:
src/app/api/nano-banana/route.ts - Güncellendi:
src/components/edit/ai-edit-panel.tsx
Edit Header: Face Swap Girişi ve AI Panel Entegrasyonu
Yeni Özellik
- Edit sayfası header'ına "Face Swap" butonu eklendi. Buton tıklandığında sağdaki AI Düzenleme Paneli özel bir "Face Swap modu" ile açılır.
- Bu modda panelin üst kısmında selfie yükleme alanı, kalite uyarıları (placeholder) ve "Uygula" butonu bulunur. Başarılı olduğunda dönen
imageUrlseçili model olarak atanır ve header yanında "Kişiselleştirilmiş" rozeti gösterilir.
Teknik Ayrıntılar
src/app/edit/page.tsx: Face Swap butonu AI panelifaceSwapMode=trueile açar;isPersonalizedrozeti eklendi.src/components/edit/ai-edit-panel.tsx: Yeni opsiyonel prop'lar:faceSwapMode,baseModelUrl,onFaceSwapApplied. Üstte selfie yükleme ve "Uygula" akışı eklendi.- i18n: Face Swap ile ilgili metin anahtarları sözlüklere eklendi (
src/i18n/en.json,src/i18n/tr.jsonaltınafaceSwap.*). - Clothing Panel DEĞİŞMEDİ: Face Swap sadece header üzerinden tetiklenir ve AI panel içinde yürür.
Etkilenen/Yeni Dosyalar
- Güncellendi:
src/app/edit/page.tsx - Güncellendi:
src/components/edit/ai-edit-panel.tsx - Güncellendi:
src/i18n/en.json,src/i18n/tr.json - (Geri Alındı)
src/components/edit/clothing-panel.tsxiçindeki geçici Face Swap entegrasyonu kaldırıldı
Notlar
- Backend yüz değiştirme uç noktası
/api/face-swapentegrasyonu ileride devreye alınacaktır. Şu an hata dönerse kullanıcıya anlaşılır mesaj gösterilir.
Edit Başlığı Markalama: "TryOn Studio"
Metin/Marka Güncellemesi
- Edit sayfasındaki başlık metni markaya uygun olacak şekilde güncellendi: "TryOnX Studio" → "TryOn Studio".
Etkilenen Dosyalar
- Güncellendi:
src/i18n/en.json(common.studio_title) - Güncellendi:
src/i18n/tr.json(common.studio_title)
Beklenen Sonuç
- Edit sayfasında görünen stüdyo başlığı artık "TryOn Studio" olarak görüntülenir (TR/EN).
Combo Sekmesinde Hedef Bölge Gizlendi
UX Düzenlemesi
- Üst+Alt (combo) akışında “Hedef Bölge” seçeneği artık gösterilmiyor. Combo akışı zaten
upper + lowerolarak sabit çalıştığı için kullanıcı seçimi etkisizdi. - Tek parça (single) akışında “Hedef Bölge” seçeneği görünmeye devam eder.
- "Fit" (normal/slim/oversize) seçeneği her iki akışta da görünür ve API'ye iletilir.
Etkilenen Dosyalar
- Güncellendi:
src/components/edit/clothing-panel.tsx(OptionsBlock koşullu render: hedef bölge sadeceactiveTab==='single'iken)
Beklenen Sonuç
- Kullanıcıda kafa karışıklığı azalır; combo akışında etkisiz bir kontrol gösterilmez.
Try-On Sonrası AI Panel Otomatik Açılıyor
Davranış Değişikliği
- "Try with AI" (virtual try-on) işlemi başarıyla tamamlandığında sağdaki AI Düzenleme Paneli artık otomatik olarak açılır.
- Amaç: Kullanıcının deneme sonucu üzerinden hızlıca düzenlemeye devam edebilmesini sağlamak.
Etkilenen Dosyalar
- Güncellendi:
src/app/edit/page.tsx(handleTryOnResultiçerisindesetIsAiPanelOpen(true)).
Clothing Panel: "Your Model" Yükleme UI Eklendi
Yeni Özellik
- "Your Model" (self) sekmesi aktifken kullanıcı artık kendi model fotoğrafını panel içinden yükleyebilir, önizleyebilir, değiştirebilir veya kaldırabilir.
- Yüklenen fotoğraf
data URLolarakonModelSelectileEditPage'e aktarılır;handleTryOnResultzaten data URL'i desteklediği için try-on akışı sorunsuz çalışır.
Teknik Ayrıntılar
src/components/edit/clothing-panel.tsx:- Yeni state/ref:
selfModelDataUrl,selfModelInputRef. - Yeni handler:
handleSelfModelUpload(files); tip/boyut doğrulaması (JPEG/PNG/WEBP/GIF/BMP/HEIC/HEIF, <=10MB), base64 dönüşümü veonModelSelect(dataUrl)çağrısı. - UI: self sekmesinde gizli input, yükleme kartı, önizleme, "Change" ve "Remove" aksiyonları.
- Kalıcılık:
localStorage('self_model_data_url')ile son yüklenen self model hatırlanır; self sekmesine geçince otomatik yüklenir. src/i18n/en.json:clothing.model.*altına self upload metinleri eklendi (self_upload_title,self_upload_button,self_change_button,self_remove_button,self_preview_alt,self_selected_badge,self_hint).
Beklenen Sonuç
- Kullanıcılar kendi fotoğraflarını kolayca model olarak kullanabilir ve try-on deneyimini kişiselleştirebilir.
Uygulama Geneli i18n Tamamlandı (TR/EN)
Kapsam ve Durum
- Landing ve Edit akışının tamamındaki kullanıcıya görünen tüm metinler
t()ile sözlüklerden okunacak şekilde i18n'e geçirildi. - TR varsayılan dil, EN sözlüğü aynı anahtar yapısı ile dolduruldu. Dil değiştirici (TR/EN) header üzerinde hazır.
Etkilenen/Yeni Dosyalar
- Güncellendi:
src/app/page.tsx(Landinghome.*) - Güncellendi:
src/app/edit/page.tsx(mevcut i18n kullanımı korunup genişletildi) - Güncellendi:
src/components/conditional-header.tsx(nav etiketleri + dil toggle) - Güncellendi:
src/components/conditional-footer.tsx(telif metni) - Güncellendi:
src/components/clothing-selector.tsx - Güncellendi:
src/components/photo-upload.tsx - Güncellendi:
src/components/tryon-canvas.tsx - Güncellendi:
src/components/edit/clothing-panel.tsx - Güncellendi:
src/components/edit/control-panel.tsx - Güncellendi:
src/components/edit/ai-edit-panel.tsx - Güncellendi:
src/components/edit/ai-response-card.tsx - Güncellendi:
src/components/edit/thumbnail-gallery.tsx - Güncellendi:
src/components/edit/video-player.tsx - Güncellendi:
src/components/edit/model-viewer.tsx - Güncellendi:
src/i18n/tr.json,src/i18n/en.json(home, header, footer, clothing, clothingSelector, controlPanel, aiEditPanel(+presets), aiResponseCard, thumbnail, videoPlayer, modelViewer, photoUpload, tryonCanvas)
Notlar
- Interpolasyon:
{year},{index},{name},{value},{status},{text}gibi dinamik değerler destekleniyor. - Anahtar bulunamadığında
t()anahtar stringini döndürerek UI kırılmasını önler (geliştirme sırasında görünür uyarı etkisi yaratır). - Debug/console log metinleri geliştirici amaçlı olup i18n kapsamı dışında bırakıldı; istenirse ayrıca İngilizceleştirilebilir.
Clothing Panel i18n'e geçirildi
Dönüşüm
src/components/edit/clothing-panel.tsxiçindeki tüm kullanıcıya görünen metinlert()ile sözlüklerden okunacak şekilde dönüştürüldü.- Etkilenen metinler: başlıklar, tab etiketleri, yükleme alanı metinleri, format/hata mesajları, model seçim alanı, durum rozetleri ve alt kısımdaki "AI ile Dene" buton metni/tooltips.
Etkilenen Dosyalar
- Güncellendi:
src/components/edit/clothing-panel.tsx - Güncellendi:
src/i18n/tr.json(clothing bölümü eklendi) - Güncellendi:
src/i18n/en.json(clothing bölümü eklendi)
Not
- Interpolasyon kullanımı: öğe sayısı gibi dinamik metinlerde
{count}değişkeni desteklenir.
i18n Altyapısı: TR Kaynak Dil ve Edit Page Migrasyonu
Yeni
- Hafif i18n iskeleti eklendi: JSON sözlükler (
tr.json,en.json),createTranslator(t)yardımcı fonksiyonu,I18nProviderveuseI18n()hook. - Varsayılan dil Türkçe olacak şekilde global provider entegre edildi (
src/components/providers.tsx). src/app/edit/page.tsxiçindeki görünen sabit metinler sözlüğe taşınarakt()ile kullanılacak hale getirildi (alert mesajları, buton etiketleri, başlıklar, tooltipler, video başlığı).
Etkilenen/Yeni Dosyalar
- Yeni:
src/i18n/tr.json,src/i18n/en.json,src/i18n/index.ts,src/i18n/provider.tsx,src/i18n/useI18n.ts,src/i18n/types.ts - Güncellendi:
src/components/providers.tsx(I18nProvider sarmalaması) - Güncellendi:
src/app/edit/page.tsx(UI metinlerit()ile)
Notlar
- Anahtar bulunamadığında
t()anahtarı döndürerek kırılmayı önler. - Basit interpolasyon desteği:
{name},{count}vb. değişkenler şablonda yerini alır. - TR tamamlandıktan sonra EN çevirileri aynı anahtar yapısı ile hızla doldurulabilir.
Try-On Sonuçları Geçmişe Ekleniyor ve Gösteriliyor
Davranış Değişikliği
- Başarılı
virtual try-onsonucu artık hem ana görüntüleyicide gösteriliyor hem deeditHistorylistesine yeni bir öğe olarak ekleniyor ve otomatik seçiliyor. - Böylece oluşturulan sonuçlar her zaman sağdaki dikey thumbnail galerisinde görünür ve kullanıcı geçmişte gezinip geri dönebilir.
Etkilenen Dosyalar
src/app/edit/page.tsx(fonksiyon:handleTryOnResultiçinde başarılı yanıt işleme)
Notlar
- History öğesi
EditHistoryItemyapısına uygun olarak meta ile birlikte eklenir;modelalanı yoksa varsayılangemini-2.5-flash-image-previewkullanılır.
Üst Giyim Prompt Güçlendirildi
İyileştirme
nano-bananatry-on akışında ÜST GİYİM (upper) prompt’una, kıyafetin model üzerinde açıkça ve görünür şekilde değişmesini zorunlu kılan net bir talimat eklendi:- "Ensure the TOP garment is clearly and visibly changed on the model to MATCH the provided CLOTHING IMAGE (color, print/wordmarks, neckline, sleeves, silhouette, and fit must be recognizable at first glance)."
Etkilenen Dosyalar
src/app/api/nano-banana/route.ts(fonksiyon:createUpperOnlyPrompt)
Beklenen Sonuç
- Özellikle düz/sade üst kıyafetlerde bile değişimin ilk bakışta fark edilir olması.
Face Swap Özelliği Kaldırıldı
Değişiklikler
- UI:
src/components/edit/clothing-panel.tsxiçinden Face Swap toggle, kullanıcı fotoğrafı yükleme alanı, ilgili state ve callback'ler kaldırıldı. - Edit Sayfası:
src/app/edit/page.tsxiçindekifaceSwappedModel,userPhotoBase64,isFaceSwapping,handleFaceSwap,handleTryOnWithSwappedModelve tüm kullanım yerleri kaldırıldı. Akış sadeceselectedModelvetryOnResultile sadeleştirildi. - API:
src/app/api/face-swap/route.tsvesrc/app/api/ai/face-swap/route.tsartık410 Gonedönüyor (özellik devre dışı).src/app/api/nano-banana/route.tsiçinde Face Swap ile ilgilioperationType==='faceswap'dalı ve prompt kaldırıldı; bu tip istekler410 Goneile reddediliyor. - Lib:
src/lib/api.tsiçindekiperformFaceSwapyardımcı fonksiyonu kaldırıldı.src/lib/config.tsiçindekiai.replicate.models.faceSwapvefeatures.faceSwapbayrakları temizlendi.
Sonuçlar
- Kod tabanı sadeleşti ve bakım yükü azaldı.
- Try-on ve AI Edit akışları Face Swap bağımlılığı olmadan tutarlı çalışıyor.
2025-09-07
- 12:24: Tekrar yükleme (aynı dosyayı seçince yüklenmeme) hatası düzeltildi. Gizli
input[type="file"]değerleri yükleme SONRASI ve tıklama ÖNCESİ sıfırlanıyor; kullanıcı fotoğrafı ve kıyafet görselleri kaldırıldığında veya değiştirildiğindeURL.revokeObjectURL(...)ile blob URL'leri serbest bırakılıyor. Dosya:src/components/edit/clothing-panel.tsx. - 12:03: UI düzeni iyileştirildi: Yükleme alanı üstte, "Hedef Bölge/Kesim/Üstü zorla değiştir" kontrolleri alta taşındı. Kullanıcı akışı sadeleşti ve rakip düzenine uygun hale getirildi. Dosya:
src/components/edit/clothing-panel.tsx. - 12:00: Try-on seçenekleri eklendi:
region (upper/lower/dress),fit (normal/slim/oversize),forceReplaceUpper. Bu seçeneklerClothingPanel→EditPage→APIakışında iletiliyor ve promptlara ek direktif olarak yansıtılıyor. Dosyalar:clothing-panel.tsx,app/edit/page.tsx,app/api/nano-banana/route.ts. - 11:38: KULLANICI DENEYİMİ İYİLEŞTİRMESİ: Kıyafet kategorisi seçici UI eklendi. Kullanıcılar yüklenen kıyafetlerin kategorisini (Üst Giyim/Alt Giyim/Elbise) manuel olarak değiştirebilir. Dropdown menü ile kolay kategori seçimi, emoji ikonları ve görsel geri bildirim.
UploadedClothinginterface'ineclothingCategoryalanı eklendi. Dosya:src/components/edit/clothing-panel.tsx. - 11:34: KRİTİK DÜZELTME: Kıyafetlerin modele düzgün yansımaması sorunu çözüldü. Alt giyim prompt'unda "UPPER GARMENT" yerine "LOWER GARMENT" kullanılacak şekilde düzeltildi. Tek parça kıyafetler için 'single' tipi 'dress' olarak normalize edildi. Çoklu kıyafet akışında ana kıyafet 'upper', ek kıyafet 'lower' olarak sabitlendi. Dosyalar:
src/app/api/nano-banana/route.ts,src/components/edit/clothing-panel.tsx. - 09:45: Tek parça (upper) prompt güçlendirildi: CLOTHING IMAGE'ı birebir uygulanacak üst parça olarak vurgulandı; yaka/sleeve/silhouette/fit eşleşmesi ve tipografik logo/print koruma talimatları netleştirildi. İçerik sonundaki açıklama mesajı normalize İngilizce garment etiketi ile güncellendi. Dosya:
src/app/api/nano-banana/route.ts. - 01:17: ModelViewer içinde "AI Sonucu" yazılı overlay etiketi kaldırıldı; görsel üzerinde gereksiz metin kalabalığı azaltıldı. Dosya:
src/components/edit/model-viewer.tsx. - 01:10: Pan alanı genişletildi: Görsel oluşturma alanı artık tam alan üzerinde (inset-0) etkileşimli; önceki çerçeve (inset-4) kısıtı kaldırıldı. Header'a zoom butonlarının yanına Reset (100%) eklendi.
ModelViewer'aresetSignalprop'u ve çift tık ile reset davranışı eklendi. Dosyalar:src/components/edit/model-viewer.tsx,src/app/edit/page.tsx. - 01:00: Model görüntüleyicide sorunsuz zoom & pan etkileşimi eklendi. Mouse wheel/trackpad pinch ile zoom (ctrl/cmd destekli), mouse sürükleme ve tek parmak touch ile pan, ok tuşları ile pan; +/− ile zoom; R ile reset eklendi. Transformlar tek bir wrapper üzerinde
translate + scaleile uygulanıyor.onZoomChangeprop'u ile üstteki zoom kontrolleriyle tam senkron çalışır. Dosyalar:src/components/edit/model-viewer.tsx,src/app/edit/page.tsx. - 00:24: Strengthened try-on prompts to PRESERVE existing brand logos/prints/labels/embroidery exactly (position/scale/orientation/colors) and forbid hallucinating new graphics. Applied to upper/lower/dress/multi-garment prompts. File:
src/app/api/nano-banana/route.ts. - 00:16: When re-running try-on with the SAME selected model, the previous try-on result is now automatically appended to history before replacing it. A
lastModelKeyForTryOnstate tracks the model key (faceSwappedModel or selectedModel). Files:src/app/edit/page.tsx. - 00:07: Self model pipeline fixed: when user selects "Kendiniz", the uploaded photo is now passed as a data URL to
onModelSelect, andEditPage.handleTryOnResultdetects data URLs to extract base64 without fetch. Also ensured bottom action button always shows "AI ile Dene" and does not depend on Face Swap in self mode. Files:src/components/edit/clothing-panel.tsx,src/app/edit/page.tsx. - 00:03: Added "Kendiniz" option to gender dropdown in Clothing Panel and implemented a dedicated self section. Selecting "Kendiniz" now auto-enables Face Swap mode (keeps current model), shows quick actions to open Face Swap and upload photo, and guides the user to proceed with try-on. File:
src/components/edit/clothing-panel.tsx. - 00:00: Converted gender selection in Clothing Panel to a stylish dropdown (replacing the previous toggle buttons) while preserving the model grid and selection behavior. File:
src/components/edit/clothing-panel.tsx. Added accessibleselectwith Tailwind styling;useEffectcontinues to auto-select the default model per gender.
2025-09-06
- 16:45: Added right-side AI Edit Panel (
src/components/edit/ai-edit-panel.tsx) with collapsible design, preset prompts, custom prompt textarea (500 chars), real-time counter, strength slider (0.1–1.0), and response card. - 16:45: Added vertical Thumbnail Gallery (
src/components/edit/thumbnail-gallery.tsx) to display original try-on image and edit history as small thumbnails with selection and badges. - 16:45: Implemented AI Response Card (
src/components/edit/ai-response-card.tsx) to show prompt, strength, duration and model info with gradient style. - 16:45: Integrated panel and gallery into Edit page (
src/app/edit/page.tsx): added state management (editHistory,selectedImageIndex,isAiPanelOpen,aiLastResponse), auto-open panel after try-on, and full wiring. - 16:45: Updated
ControlPanel(src/components/edit/control-panel.tsx) to include an "AI Düzenle" button that opens the panel when a result exists. - 16:45: Added API stub for AI editing at
src/app/api/nano-banana-edit/route.tsreturning simulated results and meta. - 16:56: Polished
AiEditPanelto match provided design: gradient header icon, compact 2x2 quick actions, list-style preset items with emojis, disabled textarea when no image, percentage label for slider, Hafif/Güçlü labels, and sticky bottom action bar with primary gradient button. - 16:56: Refactored
ThumbnailGalleryto fixed 24-width sidebar equivalent (w-24) with "Geçmiş" header and list-style thumbnails (3:4 aspect), matching screenshot layout. - 16:59: Completely redesigned
AiEditPanelto match exact UI from provided screenshot: gradient purple header background, colorful quick action cards with gradients, emoji-based preset list with gray backgrounds, custom slider styling with purple fill, and bottom action bar with "Send element" button. - 17:02: Removed "Send console errors" button from AI Edit Panel, simplified bottom action bar to show only the main "AI ile Düzenle" button at full width.
- 18:30: Collapsible AI Edit Panel improvements: added right-edge toggle button to reopen panel when closed, persisted panel open state in localStorage, and introduced keyboard shortcuts (Esc to close, Ctrl/Cmd+E to toggle). Removed FAB to avoid overlay conflicts and white-space issues.
- 18:38: Converted AI Edit Panel to absolute overlay (right:0, top:0) and added conditional right padding (
pr-[320px] md:pr-[380px]) to the main content container to prevent overlap with the bottom control panel and gallery. - 18:52: Fixed double-inference bug in single garment flow by removing internal API call from
src/components/edit/clothing-panel.tsxand delegating inference to parentsrc/app/edit/page.tsxonly. - 18:52: Normalized
clothingType(mapssingle→kıyafet) insrc/app/edit/page.tsxandsrc/app/api/nano-banana/route.tsto prevent malformed prompts and improve model guidance. - 18:52: Added safe debug logging (base64 length metrics, flags) to
handleTryOnResultandnano-bananaAPI route for better observability without leaking image contents. - 18:59: Converted all try-on prompts to English and specialized by garment type: added separate prompts for upper-only, lower-only, dress, and retained multi-garment prompt. Normalized
clothingTypemapping (single→upper, dress aliases→dress) insrc/app/api/nano-banana/route.ts. - 19:02: Edit flow policy updated in
src/app/edit/page.tsx: AI Edit requests now ALWAYS use the ORIGINAL try-on output as the base image when sending to/api/nano-banana-edit. New results are appended to history with a new sequential item and auto-selected. - 19:15: Enabled Enter-to-submit in AI Edit Panel textarea (
src/components/edit/ai-edit-panel.tsx). Shift+Enter inserts a newline; Enter triggers submit. - 19:22: Unified Download behavior. Bottom control panel Download button now uses the same logic as the header and downloads the currently selected image (history item if selected, otherwise original try-on). Also added blob fallback for non-data URLs to ensure downloads work reliably (
src/app/edit/page.tsx,src/components/edit/control-panel.tsx). - 19:23: UI polish in Clothing Panel: moved the plus icon to the LEFT of the "Tek Parça Kıyafet Ekle" text and adjusted paddings/gaps for better fit on narrow widths (
src/components/edit/clothing-panel.tsx). - 19:29: Refactored Try-On trigger flow. Removed per-item "AI ile Dene" button under uploaded items and introduced a fixed bottom-left main button in
ControlPanelthat becomes enabled when a try-on trigger is available (uploaded single item selected, or both upper+lower provided). Wiring done viaregisterTryOnTriggerfromClothingPanel→EditPage→ControlPanel. Files:src/components/edit/clothing-panel.tsx,src/app/edit/page.tsx,src/components/edit/control-panel.tsx. - 21:37: Successfully installed all project dependencies via npm install. Resolved npm cache permission issues and installed 463 packages with 0 vulnerabilities. All dependencies from package.json are now available including Next.js 14.2.32, React 18.3.1, TypeScript 5.9.2, and AI/ML libraries (@google/genai, @runwayml/sdk, replicate).
- 21:40: Created
.env.localand populated required environment variables with placeholders. Keys:NEXT_PUBLIC_APP_NAME,NEXT_PUBLIC_APP_URL,NEXT_PUBLIC_BASE_URL,GOOGLE_VISION_API_KEY,REPLICATE_API_TOKEN,RUNWAYML_API_KEY,CLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRET,OPENAI_API_KEY,STABILITY_API_KEY,GOOGLE_CLOUD_PROJECT_ID,GOOGLE_CLOUD_STORAGE_BUCKET,MAX_FILE_SIZE,API_RATE_LIMIT. Notes:.env*.localis git-ignored; fill real secrets locally and rotate keys if exposed. - 21:49: Added horizontal bottom history gallery for small screens and limited vertical gallery to md+ only. Implemented
HorizontalThumbnailGallery(src/components/edit/horizontal-thumbnail-gallery.tsx) and integrated it insrc/app/edit/page.tsxbelowModelViewer(visible onmd:hidden). VerticalThumbnailGallerynow wrapped withhidden md:block. Spacer for AI panel reservation is also limited to md+ (hidden md:block). - 21:56: Next.js config updated for v14 App Router best practices. Removed deprecated
experimental.appDirand top-levelapioptions, migratedimages.domainstoimages.remotePatterns, keptimages.formatsandcompiler.removeConsole. File:next.config.js. Note: Dev server restart may be required to clear warnings. - 21:58: Removed deprecated
@next/fontfrom dependencies inpackage.json. Project search shows no code importing@next/font, so codemod is unnecessary for now. Action required: reinstall packages and restart the dev server to clear the warning.
Try-On ve AI Düzenleme Paneli Ayrıştırıldı
Düzeltmeler
- Bağımsız Try-On: Sol panel try-on işlemi AI düzenleme geçmişinden ayrıştırıldı
- Conflict Çözümü: Try-on sonuçları artık AI düzenleme thumbnail'ları ile karışmıyor
- Görsel Öncelik: Try-on sonucu > Face swap > Orijinal model sıralaması
- Panel Kontrolü: Try-on sonrası AI paneli otomatik açılmıyor
Yapılan İyileştirmeler
tryOnResultstate'i bağımsız çalışıyor- Try-on sonuçları
editHistory'ye eklenmek yerine ayrı tutuluyor - Görsel seçim mantığı try-on öncelikli olarak güncellendi
- İndirme fonksiyonu try-on sonuçlarını destekliyor
API Response Debug Logging Eklendi
Düzeltmeler
- Detaylı API Logging: Google AI API response'unu adım adım izleme
- Response Analizi: Candidates, parts ve image data kontrolü
- Hata Tespiti: API'nin döndürdüğü veri yapısını detaylı loglama
- Görsel Data Kontrolü: Base64 image data'nın varlığı ve boyutu kontrolü
Yapılan İyileştirmeler
nano-banana/route.ts: Comprehensive response logging eklendi- API response'unun her aşaması loglanıyor
- Image data bulunup bulunmadığı detaylı kontrol ediliyor
- Text response ve image data ayrı ayrı loglanıyor
Kıyafet Kategori Sistemi Sadeleştirildi
Düzeltmeler
- Kategori Seçici Kaldırıldı: Gereksiz kıyafet kategori seçim UI'ı kaldırıldı
- Varsayılan Kategori:
clothingCategoryfield'ı interface'den çıkarıldı - Hedef Bölge Tasarımı: Kullanıcı dostu buton tabanlı seçim sistemi eklendi
- Kesim Stili UI: Modern kart tasarımı ile görsel iyileştirme
Yapılan İyileştirmeler
UploadedClothinginterface sadeleştirildi- Hedef bölge seçimi: Emoji ikonlu buton grid (👔 Üst, 👖 Alt, 👗 Elbise)
- Kesim stili seçimi: Açıklamalı buton grid (Normal, Slim, Oversize)
- Gereksiz kategori değiştirme mantığı temizlendi
Google Vision API Quota Aşımı Sorunu Çözüldü
Tespit Edilen Gerçek Sorun
- API Quota: Google Vision API günlük kullanım kotası aşıldı (429 Too Many Requests)
- Hata Kodu:
GoogleGenerativeAIFetchError: Resource has been exhausted (e.g. check quota)
Düzeltmeler
- Quota Hatası Yakalama: 429 status code için özel hata mesajı eklendi
- Kullanıcı Bilgilendirme: Quota aşımı durumunda açıklayıcı çözüm önerileri
- Debug Logging: Try-on işlemlerinde detaylı hata yakalama ve logging eklendi
Yapılan İyileştirmeler
nano-banana/route.ts: Quota aşımı için özel error handlingEditPage: Quota hatası için kullanıcı dostu uyarı mesajı- Hata mesajlarında çözüm önerileri (quota artırma, bekleme, farklı key)
AI ile Dene Butonu Hata Düzeltmeleri
Düzeltmeler
- Kritik: "AI ile Dene" butonunun çalışmaması sorunu araştırıldı ve çözüldü
- API Key:
.env.exampledosyası oluşturuldu -GOOGLE_VISION_API_KEYeksikliği tespit edildi - Hata Yönetimi: Try-on işlemlerinde detaylı hata yakalama ve logging eklendi
- Debug: Clothing panel ve edit sayfasında kapsamlı debug logları eklendi
Tespit Edilen Ana Sorunlar
Yapılan İyileştirmeler
ClothingPanel: Try-on başlatma ve callback çağrısı için detaylı loglarEditPage: API çağrısı öncesi/sonrası durum kontrolü ve hata yakalama.env.example: Gerekli environment variables için şablon dosya- Hata mesajlarında daha açıklayıcı bilgiler
Kullanıcı Aksiyonları Gerekli
Face Swap Özelliği Tamamlandı
Eklenen Özellikler
- Face Swap API: Google Nano Banana API kullanarak yüz değiştirme özelliği
- Dual API Yapısı: Face swap için ayrı endpoint, kıyafet deneme için mevcut Nano Banana API
- Face Swap UI: ClothingPanel'e face swap toggle ve fotoğraf yükleme alanı
- Entegre Akış: Face swap + kıyafet deneme kombinasyonu
API Yapısı
/api/face-swap: Özel face swap endpoint'i (Google Nano Banana)/api/nano-banana: Tüm kıyafet deneme promptları korundu- Face swap ve try-on işlemleri ayrı API'ler üzerinden
Teknik Detaylar
- Face swap prompt optimizasyonu
- Base64 görsel işleme
- Hata yönetimi ve kullanıcı geri bildirimi
- State yönetimi ve loading durumları
UX Özellikleri
- Face swap modu toggle'ı
- Drag & drop fotoğraf yükleme
- Gerçek zamanlı önizleme
- Loading ve hata durumu göstergeleri
Edit Sayfası Authentication Koruması
Güvenlik
- Middleware Authentication:
/[lang]/editrotası için authentication kontrolü eklendi - Cookie-based Auth:
auth-tokencookie ile oturum yönetimi - Protected Routes: Giriş yapmamış kullanıcılar login sayfasına yönlendiriliyor
- Return URL: Login sonrası kullanıcı geldiği sayfaya geri dönüyor
API Değişiklikleri
- Login API:
auth-tokencookie set etme eklendi (httpOnly, secure, sameSite) - Register API: Kayıt sonrası otomatik login için cookie set etme eklendi
- Logout API: Yeni endpoint oluşturuldu (
/api/auth/logout)
Frontend Değişiklikleri
- Login Page:
returnUrlquery parameter desteği eklendi - Middleware: Edit sayfası için authentication kontrolü ve redirect logic
- Cookie Settings: 7 gün geçerlilik süresi, güvenli cookie ayarları
Özellikler
- Edit sayfasına erişim için login zorunlu
- Login/Register sonrası otomatik yönlendirme
- Güvenli cookie yönetimi (httpOnly, secure)
- Logout fonksiyonalitesi
Static Export ve Node.js 20 Geçişi
Değişiklikler
- Node.js: 18.17.0 → 20.18.0 (Next.js 15.5.2 gereksinimi)
- Build Mode: Static export (
output: 'export') - Cloudflare Adapter:
@cloudflare/next-on-pageskaldırıldı (güvenlik açıkları) - Wrangler: 3.86.1 → 4.45.3
Güvenlik
- 0 vulnerabilities - Tüm güvenlik açıkları temizlendi
- 194 gereksiz paket kaldırıldı
- Dev dependencies optimize edildi
Build Output
- Output directory:
out/(static export) - Build command:
npm run build - Deploy:
wrangler pages deploy out
Breaking Changes
- API routes artık çalışmıyor (static export)
- Server-side rendering devre dışı
- Middleware devre dışı
Bundle Size Optimizasyonu ve Cloudflare Pages Yapılandırması
Optimizasyonlar
- Next.js Config: Aggressive code splitting, framework bundle separation, vendor chunking
- Framer Motion: Centralized animation utilities, minimal imports
- Image Optimization: Cloudflare Pages uyumluluğu için devre dışı bırakıldı
- Console Removal: Production build'lerde console.log'lar otomatik kaldırılıyor
Cloudflare Pages Setup
@cloudflare/next-on-pages@^1.13.5adapter eklendiwrangler@^3.86.1CLI tool eklendi@cloudflare/workers-types@^4.20241127.0type definitions- Build scripts:
pages:build,pages:deploy,pages:dev wrangler.tomlve.node-versionyapılandırma dosyaları oluşturuldu
Bundle Size Analizi
- Önceki: 14.09 MB (25 modül)
- Hedef: < 10 MB
- En büyük dosyalar: register (1.76 MB), login (1.75 MB), edit (1.58 MB)
Dokümantasyon
OPTIMIZATION_PLAN.mdoluşturuldu (detaylı optimizasyon planı)- Bundle size metrikleri ve monitoring stratejisi
- Gelecek optimizasyon adımları belirlendi
Teknik Değişiklikler
- Webpack config: splitChunks optimizasyonu
- Framework, framer-motion, lucide-react ayrı chunk'lara bölündü
- Vendor libraries package bazında chunk'landı
Etkilenen Dosyalar
- Güncellendi:
next.config.js,package.json,src/components/animations/index.tsx - Oluşturuldu:
wrangler.toml,.node-version,OPTIMIZATION_PLAN.md
Breaking Changes
- Image optimization devre dışı (Cloudflare Images kullanılabilir)
- Bazı Next.js özellikleri edge runtime'da çalışmayabilir
Version Downgrade
- Next.js 16.0.0 → 15.5.2 (Cloudflare adapter max supported version)
- eslint-config-next 16.0.0 → 15.5.2
.npmrceklendi:legacy-peer-deps=true(Cloudflare Pages build fix)
Sonraki Adımlar
Sizden Gelen İstekler
Platformda görmek istediğiniz özellikleri bizimle paylaşın. İhtiyaçlarınızı dinliyor ve gelişimimizi buna göre şekillendiriyoruz.
İletişim Formuna İlet