Saltar al contenido

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.

Panel lateral de Interest Pulse en Chrome con un feed personalizado de actualidad
La extensión se abre junto a cualquier página y mantiene visibles fuente, fecha, certeza y contexto de recomendación.

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

  1. 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.
  2. Mantener reglas de ranking y contratos de API en paquetes compartidos, con cada fuente externa detrás de un adaptador reemplazable.
  3. 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í.

  1. 01 Experiencia en navegador Svelte 5 · Chrome MV3 · CRXJS

    Panel lateral, opciones y service worker con permisos mínimos al instalar.

  2. 02 API de producto NestJS · Zod contracts

    Una API por dispositivo sirve feeds, intereses, señales, privacidad y compras.

  3. 03 Pipeline editorial BullMQ · Redis · source adapters

    Conectores independientes ingieren, normalizan y ordenan sin atar el producto a un proveedor.

  4. 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és

    Un feed oportuno junto a cada pestaña del navegador.

  • Antes

    Recomendaciones con razones y procedencia opacas.

    Después

    Fuentes, certeza y “por qué ves esto” en cada tarjeta.

  • Antes

    Personalización que exige acceso amplio desde el inicio.

    Después

    Permisos 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

22 commits
1 repositorio
1 meses activos
sept 2026 Mes más intenso: sept 2026 · 22 commits sept 2026
  • 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.