Expediente 08 · Extensión
INTEREST PULSE
Un panel lateral de Chrome que convierte intereses dispersos en un feed oportuno con fuentes, certeza y contexto.
- Svelte 5
- Chrome MV3
- NestJS
- PostgreSQL
- Redis
- TypeScript
El reto
Las novedades sobre lo que una persona sigue están dispersas entre medios, tiendas, comunidades y feeds de producto. Una extensión útil debía encontrar qué cambió sin convertirse en otro recomendador opaco ni pedir acceso invasivo al instalarse.

El enfoque
Construí Interest Pulse como un monorepo TypeScript con una extensión Manifest V3 en Svelte 5, una API NestJS y un pipeline editorial basado en conectores. Contratos compartidos y reglas puras mantienen el feed explicable, mientras permisos opcionales, análisis local del historial y borrado por dispositivo integran la privacidad en la arquitectura.
Decisiones clave
- Usar un panel lateral en vez de reemplazar la nueva pestaña, para mantener el feed disponible sin apropiarse de un hábito del navegador.
- Mantener reglas de ranking y contratos de API en paquetes compartidos, con cada fuente externa detrás de un adaptador reemplazable.
- Inferir intereses de navegación en el dispositivo, exigir revisión antes de guardar y mantener los patrocinios fuera del puntaje orgánico.
Arquitectura técnica
Arquitectura full stack diseñada y construida de punta a punta por mí.
- 01 Experiencia en navegador Svelte 5 · Chrome MV3 · CRXJS
Panel lateral, opciones y service worker con permisos mínimos al instalar.
- 02 API de producto NestJS · Zod contracts
Una API por dispositivo sirve feeds, intereses, señales, privacidad y compras.
- 03 Pipeline editorial BullMQ · Redis · source adapters
Conectores independientes ingieren, normalizan y ordenan sin atar el producto a un proveedor.
- 04 Datos y dominio PostgreSQL · pgvector · Drizzle
Eventos, fuentes, intereses y señales minimizadas comparten reglas puras y contratos tipados.
Módulos
De qué está hecho el producto, tal como lo dividen sus propias pantallas.
- 01 Feed en panel lateral
Novedades sobre artistas, juegos y series sin abandonar la pestaña activa.
- 02 Perfil de intereses
Intereses explícitos y sugerencias inferidas localmente con procedencia visible.
- 03 Ingesta de fuentes
Conectores reemplazables normalizan noticias y lanzamientos en un modelo de eventos.
- 04 Ranking y explicaciones
Reglas puras puntúan actualidad y afinidad, y explican cada recomendación.
- 05 Señales y aprendizaje
Señales agrupadas de lectura, guardado y descarte afinan el perfil.
- 06 Controles de privacidad
Exportación, borrado y permisos opcionales permanecen explícitos y reversibles.
- 07 Compras y patrocinios
El contenido comercial queda fuera del ranking orgánico y usa solo intereses confirmados.
Antes → después
- Antes
Intereses dispersos entre medios, tiendas y comunidades.
DespuésUn feed oportuno junto a cada pestaña del navegador.
- Antes
Recomendaciones con razones y procedencia opacas.
DespuésFuentes, certeza y “por qué ves esto” en cada tarjeta.
- Antes
Personalización que exige acceso amplio desde el inicio.
DespuésPermisos opcionales, análisis local y procedencia borrable.
Tecnologías
- Svelte 5
- Chrome MV3
- NestJS
- PostgreSQL
- Redis
- TypeScript
El resto de la caja
- CRXJS
- Drizzle ORM
- pgvector
- BullMQ
- Zod
- Turbo
- Vitest
- Vite
Marcas de Simple Icons; los conceptos sin marca están dibujados en casa.
Bitácora
sept 2026 → sept 2026 · 1 meses activos
- extension monorepo extensión de navegador · 22 commits sept 2026 → sept 2026
En el árbol
- 10 controladores de API
- 9 migraciones
- 24 archivos de prueba
- 238 archivos versionados
Leído del historial Git local el 6 oct 2026. Solo agregados.
El resultado
La Fase 1 funciona de punta a punta con conectores reales, un feed ordenado en el panel lateral, señales agrupadas, controles de intereses y una superficie separada de compras. La foto del repositorio público reúne 22 commits, 10 controladores de API, nueve migraciones y 24 archivos de prueba, dejando las decisiones de producto y los límites de privacidad inspeccionables junto a la implementación.
Código público — las decisiones de producto y la implementación están abiertas a revisión.
