All personal projects
Personalized AI & Technology Intelligencein-progress

KnowledgeHub

Personalized AI & technology intelligence, delivered weekly.

Next.js 16React 19TypeScriptTailwind CSS 4shadcn/uiPrismaPostgreSQLRedisPythonOpenAIResendTurborepoDocker

Intelligence Pipeline

KnowledgeHub

Interactive preview — try the live demo for the full experience

7Workspaces
11Topic categories
5 seededRSS sources
5Ranking signals

KnowledgeHub is a personalized technology intelligence platform — not simply a newsletter. A Python collector worker continuously ingests articles from curated RSS sources and scrapers, enriches them with AI (summaries, topics, keywords, embeddings, quality scores), and stores them in a shared PostgreSQL database. A composite recommendation engine ranks content per user from topic weights, engagement, freshness, and diversity — without relying solely on LLM prompts. Users receive beautifully formatted, tracked weekly editions via email.

Python collector worker decoupled from Next.js, sharing a Prisma-managed PostgreSQL schema

5-signal composite recommendation engine (quality, affinity, engagement, freshness, diversity) with Redis caching

Offline-capable ingestion pipeline with OpenAI enrichment and heuristic fallbacks when keys are absent

Full admin dashboard for sources, articles, worker runs, newsletters, and analytics

  • SaaS marketing landing with sample newsletter preview and onboarding flow
  • Magic-link authentication and weighted topic preferences across 11 categories
  • RSS and scraper collection with AI enrichment, embeddings, and global quality scoring
  • Personalized newsletter generation with HTML rendering and click/open tracking
  • Composite ranking with greedy diversity selection and 5-minute Redis cache TTL
  • Admin console — users, news sources, articles, newsletter editions, worker executions
  • Domain-driven modules with typed domain events for future ML and search features
  • Docker Compose local stack with PostgreSQL 16 and Redis 7
  • Graceful degradation — Redis, OpenAI, and Resend are optional for local development
  • Turborepo monorepo with shared scoring primitives across TypeScript and Python

Built as a Turborepo monorepo: `apps/web` (Next.js 16 App Router with domain modules for auth, preferences, recommendation, newsletter, analytics, admin), `workers/collector` (Python feedparser + BeautifulSoup pipeline writing via SQLAlchemy to the same Prisma schema), and packages for database, shared scoring/topics/events, and shadcn/ui. The recommendation engine blends five weighted signals in TypeScript; the collector enriches and embeds offline when OpenAI is unavailable. Email delivery uses Resend with open-pixel and click tracking feeding engagement signals back into ranking.

  • 01Composite scoring beats prompt-only personalization for explainability, cost control, and tunable ranking
  • 02Optional Redis, OpenAI, and Resend degrade gracefully — the full stack runs locally without external services
  • 03Shared scoring primitives in `@workspace/shared` keep the web app and Python worker conceptually aligned