尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Revista digital mensual por y para mujeres. Sitio Astro SSR con suscripciones digitales y Mail Club postal.
Astro 5 SSR en Vercel · Supabase (auth, base, Storage) · Stripe y Mercado Pago · Sender (correo) · visor PDF en React.
npm ci
cp .env.example .env # completar localmente; no compartir secretos
npm run dev
npm run check
npm test
npm run build
Los precios por plan, zona y proveedor viven en el código: src/lib/pricing.ts (digital) y src/lib/mail-club.ts (Mail Club y zonas). No se copian acá para que no se desactualicen.
Push a main despliega en Vercel. Antes de deployar, aplicar las migraciones SQL pendientes de supabase/migrations/ (en orden). Después del deploy:
node scripts/smoke-prod.mjs.GET /api/cron/reconcile sin autorización debe responder 401 (no 500). Requiere CRON_SECRET en Vercel Production.Webhooks: /api/webhook/stripe y /api/webhook/mercadopago. Mantener las firmas y secretos fuera del repo. Si no pueden guardar en la base responden 500 a propósito: el proveedor reintenta; revisar los logs antes de tocar nada a mano.
Migraciones pendientes de aplicar a mano en Supabase (en orden): 032_least_privilege_writes.sql y 033_edition_notified_at.sql. El código funciona antes de aplicarlas, salvo "Notificar suscriptoras" (necesita la 033).
Contacto de soporte para mensajes al público: src/lib/contact.ts (los textos legales y las FAQ lo repiten a mano).
Zona horaria Europe/Madrid. El cron (/api/cron/reconcile, 07:00 UTC) reconcilia pagos y envía recordatorios idempotentes.
| Día | Qué pasa |
|---|---|
| 14 | El cron recuerda a las admins crear o revisar el lote; no lo crea. |
| 15 | Corte: elegibilidad y dirección quedan congeladas en el snapshot. |
| 19 | El cron recuerda registrar el despacho; no lo realiza. |
| 20 | Administración registra la salida física; recién entonces se envían los avisos. |
past_due recuperable.Los que escriben van en dry-run por defecto; revisar antes de añadir --real.
| Comando | Para qué |
|---|---|
node scripts/smoke-prod.mjs | Verificación después de cada deploy. |
node --env-file=.env scripts/purge-mail-club-retention.mjs | Purga de retención Mail Club. |
node --env-file=.env scripts/cleanup-orphan-storage.mjs | Archivos huérfanos de Storage (editions y editions-pdfs). |
node --env-file=.env scripts/cleanup-mp-pending.mjs | Cancela preaprobaciones MP pendientes. |
node --env-file=.env scripts/update-mp-mailclub-price.mjs --amount <ARS> | Cambia el precio MP de Mail Club; --real solo tras aviso de 30 días. |
node --env-file=.env scripts/resync-stripe-periods.mjs | Resincroniza los períodos de Stripe con la base. |
node --env-file=.env scripts/dedupe-subscriptions.mjs | Deja una suscripción viva por persona (ver ROADMAP). |
node --env-file=.env scripts/export-newsletters.mjs | Exporta el newsletter histórico. |
node --env-file=.env scripts/send-mailclub-preview.mjs --email=<destino> --dry | Preview; sin --dry envía correo real. |
AGENTS.md: convenciones, invariantes y dónde vive cada flujo.ROADMAP.md: trabajo en curso, próximas mejoras y cambios grandes.