Kişisel proje · 2026
Wedding Media Collector
Kendi düğünüm için yaptım: misafirler bir QR kodu okutup fotoğraf ve videolarını paylaşıyor; uygulama ya da hesap gerekmeden.
- Rol
- Tek tasarımcı ve geliştirici — 10 günde 53 commit
- Yıl
- 2026
- Teknolojiler
- Next.js · Cloudflare Workers · D1 · R2 · Drizzle ORM · Better Auth · Zod · Turnstile · GSAP · Vitest · Playwright
Problem
Bir düğünde en güzel fotoğraflar yüz farklı telefona dağılır. Misafirlerin hiçbir şey indirmeden ya da üye olmadan, saniyeler içinde paylaşabilmesini istedim.
Yaklaşım
Tamamen Cloudflare odaklı bir mimari: OpenNext ile Workers üzerinde Next.js, Drizzle ile D1'de meta veriler, özel bir R2 bucket'ında medya dosyaları. Önizleme ve canlı ortamlar ayrı; her birinin kendi veritabanı ve bucket'ı var.
Misafirler QR koddaki listelenmemiş bağlantıyı açıyor; erişim sunucuda hash'lenmiş token'larla doğrulanıyor. Her yükleme; tür, boyut ve etkinlik kotasını kontrol eden, kısa ömürlü ve tek dosyaya özel imzalı bir yükleme izninden geçiyor. Önünde de Turnstile var.
Nasıl akıyor
01
Misafir QR'ı okutur
Listelenmemiş bağlantı, hesap yok
02
Erişim kontrolü
Hash'lenmiş token, sunucuda doğrulanır
03
Yükleme izni
Turnstile · tür · boyut · kota
04
Doğrudan yükleme
İmzalı tek dosya URL'i → özel R2
05
Moderasyonlu galeri
İsteğe bağlı organizatör onayı · meta veri D1'de
Neler geliştirdim
- Hesap gerektirmeyen, QR kodla misafir erişimi
- Özel depolamaya imzalı ve kota kontrollü doğrudan yükleme
- Moderasyonlu bir galeri ve organizatör paneli
- Vitest ile birim testleri, Playwright ile uçtan uca testler
Sonuç
On günde tasarlandı, geliştirildi, yayına alındı ve düğünde kullanıldı.