Aralıklı alışkanlık takibi. Klasik “her gün streak” yerine her alışkanlığın bir penceresi var: yaptığın günden itibaren ideal gün ve son gün hesaplanır, yapınca pencere sıfırlanır.
Örnek: Kedi kumu — her 3 günde bir, 1 gün tolerans. Çarşamba temizlersen:
| Gün | Durum |
|---|---|
| Perşembe, Cuma | 🟢 Rahat |
| Cumartesi | 🟡 İdeal gün |
| Pazar | 🔴 Son gün |
| Pazartesi | ⛔ Gecikti |
ne sıklıkla + tolerans ile tanımlanırsupabase/migrations/0001_init.sql dosyasını çalıştır.https://<app>/auth/callback adresini Redirect URLs’e ekle..env.example dosyasını .env.local olarak kopyala ve doldur.
npm run vapidCRON_SECRET: rastgele uzun bir değer (openssl rand -hex 32)npm install && npm run devsupabase/cron.sql içindeki URL ve secret’ı düzenleyip Supabase SQL Editor’de çalıştır.
Saatlik çalışır; her kullanıcıya kendi saat diliminde seçtiği saatte bildirim gider.iPhone’da bildirim için uygulamayı Safari → Paylaş → Ana Ekrana Ekle ile kurman gerekir (iOS 16.4+).
Cron’u elle denemek için:
curl -X POST -H "x-cron-secret: $CRON_SECRET" http://localhost:3000/api/cron/remind
npm test # pencere, istatistik, öneri ve hatırlatma mantığı testleri
npm run typecheck
npm run lint
npm run build
Çekirdek mantık saf fonksiyonlar halinde src/lib/ altında:
schedule.ts (pencere hesaplama), stats.ts (zamanında yapma oranı), suggest.ts (aralık önerisi), reminders.ts (bildirim metni).