Listeye dön
Creator Economy/57

Newsletter Arşiv Önerici (Kişisel)

Substack/Beehiiv abone listesini yüklersin, AI her aboneye okuma geçmişine göre arşivden 3 yazı öneren e-posta yollar.

Zaman
6 saat
bootcamp süresi
Kim ödeyecek
Kreatörlere
Substack/Beehiiv yazarları (1k
Para hedefi
$3.9k MRR
Abonelik
Stack
Next.js + Supabase + Claude
AI merkezde
/01

Kimin derdi bu?

Gerçek bir insan, gerçek bir acı. Kafanda canlandır.

Kim
Substack/Beehiiv yazarları (1k-50k abone) — eski yazılar arşivde kayboluyor
Canı yanan yer
Yeni abone sadece son yazıyı görüyor; eski içerikten para kazanmıyor; engagement düşük
Şu an nasıl yapıyor
Manuel digest e-postası ayda 1, jenerik linkler
/02

6 saate sığar mı?

Bootcamp modunda sıkıştırılmış senaryo.

M — 8-10 saat. RAG embedding + per-user ranking + e-posta gönderim.

/03

Ne ile inşa edeceksin?

Sıfırdan yazmayacaksın — bu parçaları birleştireceksin.

FrameworkNext.js 15 App Router
UIshadcn/ui + Tailwind
DatabaseSupabase Postgres + pgvector
AuthSupabase Auth
AIClaude Sonnet 4.6 + voyage-3
DeployVercel
Entegrasyonlar
Resend / PostmarkSubstack RSS / Beehiiv API
/04

Hangi parçalar?

Her parça ayrı bir commit. Sırayla yakala.

  1. 1Newsletter arşiv import (RSS / API)
  2. 2Yazı embedding'leri
  3. 3Abone aktivite import (open/click)
  4. 4Per-user arşiv ranking
  5. 5Kişiselleştirilmiş digest e-posta
  6. 6Open/click tracking + iyileştirme
/05

Piyasada kimler var?

Rakip değil, referans. Sen onlardan küçük, hızlı ve yakın olacaksın.

/06

Neden evet, neden hayır?

Kısa bir gerçeklik testi.

Neden evet

Net retention metric (open rate ↑), dar niche, kreatör para kazanmasıyla doğrudan ilişkili

Neden hayır

Substack API kapalı (RSS yetiyor); küçük TAM

/07

Para nereden gelir?

Bir çerçeve, değil kesin plan. İlk 100 kullanıcıya odaklan.

Fiyat
$25/ay (1k abone), $79/ay (10k abone)
Hedef ARR
100 kullanıcı × $39 = $3.9k MRR
Model
Subscription
/08

Claude Code'a ver

Aşağıdaki prompt'u olduğu gibi kopyala, Claude Code'a yapıştır. Stack, veri modeli, 6 saatlik inşa sırası ve başarı kriterleri içinde.

prompt.md
# Newsletter Arşiv Önerici

**Ne inşa ediyoruz:** Newsletter arşivini import edip, abonenin geçmiş okumalarına göre kişiselleştirilmiş 3 yazı öneren haftalık digest e-postası gönderen araç.

**Kullanıcının işi (JTBD):** 200 yazılık arşivim var ve yeni abone sadece son 3'ü okuyor. Her aboneye benim seçilmiş eski 3 yazımı haftalık göndermek istiyorum, böylece eski içerik canlı kalsın.

---

## Stack
- Next.js 15 App Router
- Tailwind + shadcn/ui
- Supabase Postgres + pgvector
- Claude Sonnet 4.6, voyage-3
- Resend (transactional)
- Vercel cron jobs
- Deploy: Vercel

## Veri modeli
```sql
create extension if not exists vector;

create table newsletters (
  id uuid primary key default gen_random_uuid(),
  user_id uuid references auth.users not null,
  name text, rss_url text
);

create table posts (
  id uuid primary key default gen_random_uuid(),
  newsletter_id uuid references newsletters on delete cascade,
  external_id text unique, title text, url text,
  content text, embedding vector(1024), published_at timestamptz
);

create table subscribers (
  id uuid primary key default gen_random_uuid(),
  newsletter_id uuid references newsletters,
  email text, joined_at timestamptz, segment text
);

create table activities (
  id uuid primary key default gen_random_uuid(),
  subscriber_id uuid references subscribers on delete cascade,
  post_id uuid references posts, action text,
  occurred_at timestamptz default now()
);

create table digests (
  id uuid primary key default gen_random_uuid(),
  subscriber_id uuid references subscribers,
  posts_picked uuid[], sent_at timestamptz, opened boolean default false
);
```

## Ana akışlar
1. Newsletter RSS bağla, arşivi çek + embed.
2. Abone CSV import (e-posta + ne okuduğu).
3. Haftalık cron: her abone için en alakalı 3 eski yazı seç (cosine + recency penalty).
4. Claude per-user e-posta intro yazsın.
5. Resend ile gönder + open/click track.

## 6 saatlik inşa sırası
- 0:00–1:00 — Scaffold + auth + newsletter setup
- 1:00–2:00 — RSS pull + embedding pipeline
- 2:00–3:00 — Abone import + activity CSV
- 3:00–4:30 — Per-user ranking + Claude intro
- 4:30–5:30 — Resend e-posta + tracking
- 5:30–6:00 — Vercel deploy + test gönderim

## Başarı kriteri
- [ ] 50 yazı ve 100 abone import edildi
- [ ] Test gönderim 1 aboneye gitti
- [ ] Önerilen yazılar abonenin okumadığı 3 farklı yazı
- [ ] Open/click track çalışıyor
- [ ] Mobil e-posta render düzgün

## Dikkat
- Resend ücretsiz katmanı 100/gün — büyüyen liste pahalı, fiyatlama tabanı buradan.
- Substack RSS açık ama tam içerik genelde yok — özet yeter.
- "Bu içeriği daha önce gördüm" gizleme şart.
- GDPR: abone listesi user'a ait, sil yoksa sil özelliği koy.

Bu sana uymadı mı?

Hepsini gör