İçeriğe geç

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

  1. 01

    Misafir QR'ı okutur

    Listelenmemiş bağlantı, hesap yok

  2. 02

    Erişim kontrolü

    Hash'lenmiş token, sunucuda doğrulanır

  3. 03

    Yükleme izni

    Turnstile · tür · boyut · kota

  4. 04

    Doğrudan yükleme

    İmzalı tek dosya URL'i → özel R2

  5. 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ı.