SpandToon
Birden fazla manga ve webtoon sitesine hızla uyarlanabilen bir yayın altyapısı: her site kendi markası, teması ve modülleriyle aynı çekirdekten ayağa kalkıyor. Okuyucu, panel, oyunlaştırma ve reklam tek pakette.

Sorun
Neden yapıldı
Seri yayınlayan ekipler ya her siteyi sıfırdan kuruyor ya da hazır bir temanın sınırlarında kalıyor. Okur tarafı yalnızca "sayfaları alt alta göster"den ibaret, panel toplu yüklemeyi kaldırmıyor; reklam, üyelik ve topluluk sonradan yamanıyor.
Yaklaşım
Bir site değil, altyapı
Sistemi sıfırdan kurdum: 24 modül panelden açılıp kapanıyor, her kurulum kendi markası ve kendi veritabanıyla çalışıyor.
SpandToon tek bir site değil, siteleri üreten çekirdek. Marka, tema, metinler ve modüller ayardan geliyor; yeni bir manga ya da webtoon sitesi kod yazmadan, aynı altyapıdan hazırlanıyor. Canlıda bu altyapıyla çalışan bir site var; sahibinin isteğiyle adresini paylaşmıyorum.
Nasıl çalışıyor
Yüklemeden okura
-
Yükle
Bölüm toplu yüklenir, kopan yükleme kaldığı yerden sürer.
-
Zamanla
Bölüm istenen saatte kendiliğinden yayına girer.
-
Optimize et
Görseller küçültülüp CDN'e hazırlanır.
-
Koru
Sayfalar süreli bağlantılarla verilir.
-
Oku
Okur kaldığı yerden devam eder.
Teknik özet
- Uygulama
- Next.js 15, React 19, TypeScript
- Arayüz
- Tailwind 4, shadcn/ui
- Veri
- MySQL, Drizzle ORM
- Önbellek
- Redis
- Depolama
- Yerel disk, Cloudflare R2 ya da Bunny
- Panel
- 38 ekran, 5 rol
Önemli değişiklik
Ölçek ve koruma
- Yüz okuma, tek yazım. Görüntülenmeler bellekte biriktirilip toplu yazılıyor; popüler bir bölüm veritabanını boğmuyor, aynı okurun tekrar açması sayılmıyor.
- Korumalı ama hızlı görseller. Bölüm sayfaları süreli, imzalı bağlantılarla veriliyor; imza zaman dilimlerine göre üretildiği için CDN önbelleği bozulmuyor.
- Yük testi. Önbellekli ana sayfa tek sunucudan saniyede yaklaşık 30 bin istek karşıladı; 4.000 eş zamanlı bağlantıda hata sıfır.
- Gerçek trafik. Bu altyapıyla çalışan bir sitede 3.000 bölüm yayındayken 840 okur aynı anda okudu; 4 çekirdekli, 8 GB RAM'li tek bir sunucu takılmadan, bekletmeden hizmet verdi.
Sonuç
- eş zamanlı okur
3.000 bölüm, 4 çekirdek / 8 GB RAM - 840
- istek/sn, tek sunucu
4.000 bağlantıda 0 hata - ~30 bin
- açılır kapanır modül
- 24
- ilk commit'ten canlıya
- 6 hafta
- yönetim ekranı
- 38
- mini oyun
rozet, görev, günlük ödül - 4
Ekranlar


Ne öğrendim
Bir siteyi yazmak ile siteyi kuran sistemi yazmak farklı işler. Her özelliği bir modül olarak düşününce, yeni bir kurulum için kod değil yalnızca ayar değişiyor; bakım da tek bir kod tabanında kalıyor.
Sıradaki dal senin projen
Ne yapmak istediğini birkaç cümleyle yaz. Genelde aynı gün, en geç ertesi gün dönüyorum.
Şu an yeni işlere açığım: proje bazlı serbest işler, uzaktan ya da İstanbul’da yerinde. Bir web platformu, eğitilecek bir model ya da inatçı bir cihaz; hangisiyse yaz ya da ara.