Actualidad de juegos, tech e IA en español, resumida en 3 líneas. Una sola pestaña, sin clickbait.
Live: https://pulso.aegismain.com (también https://pulso-dsk.pages.dev)
Pulso es un agregador independiente de actualidad gaming + tech + IA en español. Toma noticias de 17 fuentes públicas vía RSS, las deduplica con embeddings (la misma noticia en N webs aparece como una entrada con todas las fuentes), las resume con IA en 3 líneas y filtra clickbait. Todo en una sola pestaña, móvil-first, sin login y sin tracking.
- Feed unificado scroll infinito, móvil-first.
- Resumen IA en 3 líneas por noticia (Llama 3.3 70B Fast vía Cloudflare Workers AI).
- Detección de duplicados con embeddings BGE (umbral coseno 0.78).
- Filtro anti-clickbait (oculta clusters con score ≥ 8.5/10).
- Categorías: Gaming, Tech, IA, Hardware, Dev.
- Tags (PS5, Xbox, NVIDIA, OpenAI, etc.).
- Auto-traducción de fuentes en inglés.
- Tema oscuro / claro auto.
- "Leer luego" en localStorage (sin cuenta).
- Buscador full-text (FTS5).
- Compartir nativo + 👍 útil / 👎 clickbait.
- Trending hoy (basado en menciones cruzadas en últimas 24h).
- RSS de salida (
/rss.xml,/rss.xml?cat=ia). - Sitemap, OG, robots.
- Panel admin con basic auth (
/admin).
| Capa | Elección |
|---|---|
| Frontend | Astro 5 + Tailwind 4, output server |
| Hosting | Cloudflare Pages |
| BD | Cloudflare D1 (SQLite, 11 tablas, FTS5 para búsqueda) |
| Cron + scraping | Cloudflare Worker scheduled (cada 30 min) |
| IA | Cloudflare Workers AI · @cf/meta/llama-3.3-70b-instruct-fp8-fast (resumen+traducción+clickbait+tags en una sola llamada) y @cf/baai/bge-base-en-v1.5 (embeddings) |
| RSS parser | fast-xml-parser |
Coste mensual real V1: 0 € (todo dentro del free tier de CF).
┌─────────────────────────────┐
│ Cron Worker (every 30min) │ pulso-ingest.aegis-pulso.workers.dev
│ - rotation: 4 sources/run │
│ - 1 IA call per item │
│ - dedup vs últimas 48h │
└──────────┬──────────────────┘
│ writes
▼
┌───────────────┐
│ D1 (pulso) │ clusters · items · sources · votes · scrape_log + FTS5
└───────┬───────┘
│ reads
▼
┌─────────────────────────────┐
│ Astro app (CF Pages) │ pulso.aegismain.com
│ - SSR feed con filtros │
│ - RSS, sitemap, admin │
│ - APIs vote, cluster │
└─────────────────────────────┘
pulso/
├── PRD.md # producto: visión, alcance V1/V2, métricas
├── STATUS.md # estado actual + lo que queda
├── astro.config.mjs # adapter cloudflare server-rendered
├── wrangler.toml # bindings web (D1 + AI)
├── db/
│ ├── schema.sql # tablas + índices + FTS5
│ └── seed_sources.sql # 17 fuentes RSS iniciales
├── src/
│ ├── layouts/Base.astro # layout con header, theme toggle
│ ├── components/ # Card, FilterBar
│ ├── pages/
│ │ ├── index.astro # feed
│ │ ├── c/[id].astro # detalle cluster + fuentes
│ │ ├── leer-luego.astro # localStorage saved
│ │ ├── sobre.astro
│ │ ├── admin.astro # basic auth via env ADMIN_PASS
│ │ ├── rss.xml.ts # RSS general + por categoría
│ │ └── api/
│ │ ├── vote.ts
│ │ └── cluster.ts
│ ├── lib/db.ts # queries D1
│ ├── styles/global.css # tailwind 4 + tokens tema
│ └── env.d.ts
└── worker/ # Worker dedicado al cron de ingesta
├── wrangler.toml
├── src/
│ ├── index.ts # scheduled handler
│ ├── ingest.ts # pipeline RSS → IA → D1
│ ├── rss.ts # fetch + parse RSS/Atom
│ └── ai.ts # analyzeItem (single-call), embed, cosine
git clone https://github.com/daveCode-dot/pulso.git
cd pulso
npm install
export CLOUDFLARE_API_TOKEN=... # token con D1, Pages, Workers
export CLOUDFLARE_ACCOUNT_ID=...
# 1) D1
wrangler d1 create pulso # poner el id devuelto en wrangler.toml
wrangler d1 execute pulso --remote --file=db/schema.sql
wrangler d1 execute pulso --remote --file=db/seed_sources.sql
# 2) Worker (cron de ingesta)
cd worker && npm install && npx wrangler deploy
cd ..
# 3) Web (Pages)
npm run build
npx wrangler pages deploy dist --project-name pulso --commit-dirty=trueVer PRD.md § 8. Resumen:
- Salud técnica: uptime scraper ≥ 99%, Lighthouse ≥ 95, coste IA < 5 €/mes, dedup ratio > 30%.
- Uso: visitantes únicos/semana en curva creciente, tiempo medio > 1 min, ratio 👍:👎 > 4:1.
- Cualitativa: ¿yo mismo la uso por las mañanas?
Email diario top-5, Web Push, PWA instalable, búsqueda por fecha/fuente, afiliados, cuentas opcionales con sync.
MIT.