canberktamyigit.com
Klasik portfolyo siteleri statik ve sınırlı kalır. Bu platform; admin CRUD paneli, devlog sistemi ile gerçek bir SaaS ürünü gibi tasarlandı.
Proje sağlığı
%99 uygulama ilerlemesi
Problem
Çözüm
Öne Çıkan Özellikler
GitHub Commit → Devlog Otomasyonu
Repodaki commit'ler otomatik sürümlenip geliştirme günlüğüne dönüşüyor; portfolyo kendi kendini güncelliyor.
Otomatik TR/EN Çeviri
DeepL ve veritabanı önbelleğiyle tüm içerik iki dilde; sonradan eklenen içerik de otomatik çevriliyor.
Dinamik OG Görseli Üretimi
Edge Runtime'da her sayfa için sosyal medya önizleme görseli anlık üretiliyor.
Mimari & Veri Modeli
Medya
Cloudinary
Deploy
Vercel + Supabase
Arka Uç
Server Actions + API Routes
Ön Yüz
Next.js 15 App Router
Veritabanı
PostgreSQL + Prisma ORM
Özellikler
- — Tam CRUD admin paneli (projeler
- — devlog
- — timeline
- — teknolojiler
- — medya)
- — Dinamik OG görseli üretimi (/og route
- — Edge Runtime)
- — RSS feed (/feed.xml) — devlog akışı
- — Ctrl+K site geneli arama paleti
- — i18n dil desteği (TR / EN)
- — Müsaitlik rozeti — admin'den toggle edilebilir
- — GitHub aktivitesi widget'ı
- — Online CV sayfası + Yazdır/PDF
- — İletişim formu — Resend ile email bildirimi
- — JWT cookie auth — kütüphane bağımlılığı olmadan
Zorluklar
- — Next.js 15 Server Actions ile optimistic UI tasarımı
- — Edge Runtime'da dinamik OG görseli üretimi
- — JWT auth: jose kütüphanesiyle cookie bazlı session
- — Cloudinary upload signature sunucu tarafı imzalama
Öğrenimler
- — App Router Server/Client Component sınırları
- — Prisma ile PostgreSQL ilişki modelleme
- — Next.js middleware ile route koruması
- — Radix UI + Tailwind ile erişilebilir component sistemi
Yol haritası
- — Tam i18n (server-side içerik çevirisi)
Bu Projenin Geliştirme Günlükleri
guvenlik sertlestirmesi + Bento tasarim + hizli admin paneli
feat: guvenlik sertlestirmesi + Bento tasarim + hizli admin paneli Guvenlik - Herkese acik /api/debug/env kaldirildi (env isimleri ve admin kullanici adi sizdiriyordu) - renumberDevlogVersions server action'ina yetki kontrolu eklendi - Next.js 15.5.27'ye yukseltildi (RCE/SSRF/DoS advisory'leri), postcss override - JWT: algoritma/issuer/audience dogrulamasi, SameSite=Strict, sabit zamanli kimlik kontrolu - Upstash yokken bellek ici rate-limit yedegi; arama API'sine limit - URL alanlari yalnizca http(s); video/gorsel https; RSS CDATA kacisi; OG parametre siniri - Hata mesajlari artik ic detay sizdirmiyor; seed yalnizca SEED_ON_STARTUP=true ise calisir Tasarim - Bento duzeni: ana sayfa, projeler, yolculuk, gunlukler, teknolojiler, iletisim - Inter + JetBrains Mono (self-hosted), zumrut vurgu, aktif menu durumu - Gercek veriden haftalik commit ritmi grafigi; erisilebilirlik iyilestirmeleri Admin - Kalici layout (route group) + aninda yukleme iskeleti - Iyimser toggle'lar, onayli silme, bildirimler, Turkce dogrulama mesajlari - Gunluklerde coklu secim/toplu islem ve satir ici duzenleme - Yolculuk/teknoloji kayitlari duzenlenebilir; mesajlarda tumunu okundu/yanitla - Silmelerde public sayfalarin guncellenmemesi ve devlog sirasinin oynamasi duzeltildi
proje detayinda "One Cikan Ozellikler" bolumu
feat: proje detayinda "One Cikan Ozellikler" bolumu - Project.highlights (Json?) — proje basina zengin ozellik vitrini ([{title, description, icon}]); admin formunda JSON alani - Detay sayfasinda Problem/Cozum sonrasi, ikonlu cyan-vurgulu kartlar - 8 ikon secenegi: automation/data/security/speed/calendar/code/ai/template - Highlight title/description DeepL ile cevriliyor (localizeProject) - Ornek highlights: Diyet Takip (sablon ogun, JWT, randevu) + canberktamyigit (GitHub otomasyonu, TR/EN ceviri, OG image) - projectDetail.highlights dict (TR/EN) Not: highlights kolonu Supabase'de gerekir (ALTER TABLE "Project" ADD COLUMN IF NOT EXISTS "highlights" jsonb;). Kolon yoksa getProjectBySlug fallback'e duser; eklenince admin'den veya SQL ile doldurulur.