Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Phase 5: Weekly digest email (new this week + closing in 7 days)

Abierto
#38 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
react, supabase, typescript

Línea de trabajo

Read PRD §8.12 and inspect the existing link-health cron, resource fields, profiles schema, and profile page. Then use the listed files—src/emails/weekly-digest.tsx, src/app/api/cron/weekly-digest/route.ts, src/lib/email.ts, and vercel.json—as entry points. Done means opted-in users receive the two requested sections with unsubscribe and preference controls on the scheduled weekly run.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Description

Implement weekly digest email as specified in PRD §8.12. This is a P2 requirement for Phase 5.

Acceptance Criteria (from PRD §8.12)

  • "New this week" + "closing in 7 days" — sent via Resend or Mailvex

Current State

  • No email infrastructure exists
  • Link-health cron runs weekly (Monday 03:00 UTC)
  • Resources have createdAt and deadline fields
  • Supabase Auth has user emails

Implementation Plan

  1. Choose email provider: Resend (recommended) or Mailvex (dogfooding)
  2. Create email template:
    • Section 1: New this week (resources created in last 7 days)
    • Section 2: Closing in 7 days (deadlines within 7 days)
    • Unsubscribe link
  3. Build email generation logic:
    • Query new resources: createdAt > now() - 7 days
    • Query closing deadlines: deadline BETWEEN now() AND now() + 7 days
    • Render HTML email (React Email or MJML)
  4. Schedule sending:
    • Vercel Cron (weekly, different day than link-health)
    • Or Supabase pg_cron
  5. User preferences:
    • Add emailDigest boolean to profiles table (default true)
    • Allow unsubscribe in email and on profile page

Files to Create

  • src/emails/weekly-digest.tsx (new) - React Email template
  • src/app/api/cron/weekly-digest/route.ts (new) - Cron endpoint
  • src/lib/email.ts (new) - Email sending utility (Resend client)
  • vercel.json - add weekly digest cron schedule

Email Template Structure

Subject: StudentStack Weekly — 3 new offers, 2 deadlines closing soon

┌─────────────────────────────────────────────┐
│  🎓 StudentStack Weekly Digest              │
├─────────────────────────────────────────────┤
│  📅 New This Week (3)                       │
│  ┌─────────────────────────────────────┐   │
│  │ GitHub Copilot — Free Student Plan  │   │
│  │ AI coding assistance • Free         │   │
│  │ [Claim Offer]                       │   │
│  └─────────────────────────────────────┘   │
│  ...                                       │
├─────────────────────────────────────────────┤
│  ⏰ Closing in 7 Days (2)                   │
│  ┌─────────────────────────────────────┐   │
│  │ Google Summer of Code 2026          │   │
│  │ Applications close Oct 15           │   │
│  │ [View Details]                      │   │
│  └─────────────────────────────────────┘   │
├─────────────────────────────────────────────┤
│  [Unsubscribe] • [Manage Preferences]       │
└─────────────────────────────────────────────┘

Dependencies

  • resend npm package
  • @react-email/components or react-email for templates
  • Vercel Cron or Supabase pg_cron for scheduling

Notes

  • Only send to users who opted in (emailDigest = true)
  • Batch send in chunks (Resend supports batch)
  • Track open/click rates via Resend dashboard
  • Consider: only send if there's actual new content
Lenguaje dominante
TypeScript
Estrellas
1
Forks
6
Merge medio
23 h 53 min
PR fusionados (30 d)
27

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Your-Voldemort/StudentStack

Todos los issues de Your-Voldemort/StudentStack

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.