Vaka çalışmasıYayında
Hockey Pick’em & Sub Pulse
Reddit’in geliştirici platformunda iki uygulama: ücretsiz bir hokey tahmin oyunu ve moderatörler için uyarılı haftalık sağlık raporu.
- Rol
- Tek başıma — tasarım, kod, politikalar, yayın
- Ne zaman
- 2026
- Backend
- Full-stack
Sub Pulse’un sayfası henüz herkese açık değil; politikaları açık. Kaynak kod gizli.
Kimin için
- Para, oran ya da ayrı bir site olmadan günlük bir tahmin oyunu isteyen Reddit’teki hokey toplulukları.
- Topluluklarının ve mod kuyruklarının nasıl gittiğini her hafta beş araç açmadan bilmek isteyen subreddit moderatörleri.
Ne yaptım
- Hockey Pick’em: oyuncuların kazananı seçip uzatmayı tahmin ettiği günlük bir maç listesi; tahminler maç başlayınca sunucuda kilitleniyor, canlı periyot ve süre, sezonluk ve haftalık liderlik tabloları ve isteğe bağlı flair.
- Sub Pulse: modmail’e (isteğe bağlı Discord ya da Telegram’a) giden tek sayfalık haftalık özet — aktivite, büyüme, mod kuyruğu, mod işlemleri, banlar, admin işlemleri — ayrıca histerezisli uyarılar ve yalnızca modların gördüğü bir panel postu.
- Her şey Devvit’in serverless runtime’ında çalışıyor: scheduler işleri, Reddit’in barındırdığı Redis ve beyan edilmiş bir dış alan adı izin listesi.
- İki uygulamanın kullanım koşullarını ve gizlilik politikalarını yazıp yayınladım; veri silmeyi baştan kurdum: kullanıcı bazlı silme, silinen hesaplar için günlük tarama ve saklama süreleri.
Nasıl çalışıyor
1Kur ve seç
Moderatör uygulamayı kurar ve lig modunu ya da bir takımı (Pick’em), ya da özet kanalını ve uyarı seviyelerini (Sub Pulse) seçer. O seçene kadar hiçbir şey paylaşılmaz.
2Zamanla
Saatlik ve beş dakikalık işler fikstürü ve canlı skorları senkronlar ya da mod kuyruğunu yoklayıp günün sayaçlarını toplar.
3Oyna / izle
Oyuncular maç başlamadan tahmin yapar; moderatörler canlı bir panel postu ve kuyruk taşınca bir uyarı alır — başlarken bir kez, düzelince bir kez.
4Puanla / raporla
Biten maçlar kısa parçalar halinde tam bir kez puanlanır; her pazartesi özet, haftayı bir önceki haftayla karşılaştırır.
5Unut
Saklama süreleri, kullanıcılar için bir silme düğmesi ve silinen hesaplar için günlük tarama, yalnızca uygulamanın ihtiyaç duyduğunu tutar.
Önemli kararlar
01
Tam bir kez, parça parça puanla
Yerine: Maçlar bitince her şeyi tek uzun bir işte puanlamak.
Neden: Serverless işlerin süre sınırı var ve tekrar denenebiliyorlar. Biten her maç en fazla yirmi saniyelik parçalarla tam bir kez puanlanıyor; büyük bir topluluk birkaç koşuda bitiyor ve bir retry asla iki kez puan vermiyor.
02
Histerezisli state machine olarak uyarılar
Yerine: Eşik her aşıldığında uyarı göndermek.
Neden: Sınırının etrafında gezinen bir kuyruk moderatörleri beş dakikada bir rahatsız ederdi. Her uyarı başladığında bir kez, eşiğin yarısının altına inince bir kez tetikleniyor; admin işlemi uyarıları saatte en fazla bire toplanıyor.
03
İçeriği değil, sayıları sakla
Yerine: Daha zengin raporlar için post ve modmail metinlerini tutmak.
Neden: Moderatörler hiç sahip olmadığı şeyi sızdıramayacak bir araca güvenir. Sub Pulse süreli sayaçlar ve kimlikler tutuyor, metinleri asla; iki uygulama da neyi ne kadar sakladığını açıkça belgeliyor.
04
Kanal başına sahiplenilen gönderim
Yerine: Özeti tek geçişte bütün kanallara göndermek.
Neden: Modmail, Discord ve Telegram birbirinden bağımsız bozuluyor. Her kanal haftalık gönderimini sahipleniyor; bir sonraki saatlik tetik yalnızca başarısız olanı yeniden deniyor — kimse aynı özeti iki kez almıyor.
Mimari
İki uygulama da aynı şekilde: arayüz bir Reddit postunda, mantık Devvit’in serverless handler’ları ve scheduler’ında, durum Reddit’in barındırdığı Redis’te.
Sayılar
- uygulama, Reddit’in platformunda
- 2
- test dosyası
- 33
- canlı skor ve kuyruk yoklama aralığı
- 5 dk
- saklanan post ya da modmail metni
- 0
Teknolojiler
Platform
- Devvit Web
- Reddit API
- Scheduler
- Redis
Uygulama
- TypeScript
- React
- Vite
- Tailwind CSS
Kalite
- Vitest
- ESLint
Galeri

Hockey Pick’em’in developers.reddit.com’daki herkese açık sayfası.
Uzun versiyonu ister misin — kod, pipeline, ödünleşimler?
E-posta gönder